[PATCH] Compiling av7110 firmware into the driver (was. Re: [linux-dvb] How to compile the firmware into the driver?)

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Mon Dec 5 17:20:52 CET 2005


Oliver Endriss wrote:
> Oliver Endriss wrote:
> 
>>Klaus Schmidinger wrote:
>>
>>>Johannes Stezenbach wrote:
>>>
>>>>On Sun, Dec 04, 2005, Klaus Schmidinger wrote:
>>>>
>>>>
>>>>>I have downloaded the latest driver snapshot from
>>>>>
>>>>> http://linuxtv.org/downloads/snapshots/v4l-dvb-20051202.tar.gz
>>>>>
>>>>>and the latest firmware from
>>>>>
>>>>> http://linuxtv.org/downloads/firmware/dvb-ttpci-01.fw-2622
>>>>>
>>>>>and expanded the driver source into
>>>>>
>>>>> /home/kls/vdr/DVB-v4l-dvb.2005-12-02
>>>>>
>>>>>
>>>>>What is the simplest method to build this driver and have
>>>>>it compile the firmware into it?
>>>>>
>>>>>I tried writing
>>>>>
>>>>>CONFIG_DVB_AV7110_FIRMWARE=y
>>>>>CONFIG_DVB_AV7110_FIRMWARE_FILE=./dvb-ttpci-01.fw
>>>>
>>>>
>>>>We agreed to drop support for this during the merge of the trees
>>>>(there was some build problem, can't remember what it was,
>>>>but I thought no one uses this anyway so let's drop it).
>>>
>>>Does this mean that it should no longer be possible to compile
>>>the firmware into the driver? Well, apparently it _is_ possible,
>>>so please don't drop this - it's the way I want to do this, because
>>>this hotplug stuff may be good for a user system, but on my system
>>>I want to be able to easily switch driver versions by simply
>>>setting a symlink.
>>>
>>>I've decided to give the dvb-kernel driver another chance today,
>>>so please don't scare me away from it again ;-)
>>
>>Please be patient. I will look into this.
> 
> 
> Ok, please test the attached patch.
> Compiling av7110 firmware into the driver should work again.
> 
> Signed-off-by: Oliver Endriss <o.endriss at gmx.de>
> 
> I don't see any reason why this should not be applied to CVS.
> 
> Oliver
> 
> 
> 
> ------------------------------------------------------------------------
> 
> Index: v4l/Makefile
> ===================================================================
> RCS file: /cvs/video4linux/v4l-dvb/v4l/Makefile,v
> retrieving revision 1.116
> diff -p -u -r1.116 Makefile
> --- v4l/Makefile	29 Nov 2005 16:03:52 -0000	1.116
> +++ v4l/Makefile	4 Dec 2005 19:06:33 -0000
> @@ -162,6 +162,18 @@ endif
>  ifeq ($(CONFIG_DVB_AV7110_OSD),y)
>   EXTRA_CFLAGS += -DCONFIG_DVB_AV7110_OSD=1
>  endif
> +ifeq ($(CONFIG_DVB_AV7110_FIRMWARE),y)
> +src := $(PWD)
> +
> +$(src)/av7110.c:	$(obj)/av7110_firm.h
> +
> +$(obj)/fdump:
> +	$(CC) -o $@ $(src)/fdump.c
> +
> +$(obj)/av7110_firm.h:	$(obj)/fdump
> +	$(obj)/fdump $(CONFIG_DVB_AV7110_FIRMWARE_FILE) dvb_ttpci_fw $@
> +endif
> +
>  
>  #################################################
>  # compile modules
> @@ -406,7 +418,7 @@ rmmodules::
>  clean::
>  	@find . -name '*.c' -type l -exec rm '{}' \;
>  	@find . -name '*.h' -type l -exec rm '{}' \;
> -	-rm -f *~ *.o *.ko *.mod.c
> +	-rm -f *~ *.o *.ko *.mod.c av7110_firm.h fdump
>  
>  distclean:: clean
>  	-rm -f .version .*.o.flags .*.o.d .*.o.cmd .*.ko.cmd

I just updated from the CVS into

   /home/kls/vdr/DVB-v4l-dvb.2005-12-05

applied your patch and did

--- /home/kls/vdr/DVB.head/v4l-dvb/v4l/Make.config      2005-11-29 14:36:59.000000000 +0100
+++ Make.config 2005-12-05 17:14:21.089979980 +0100
@@ -19,7 +19,7 @@

  # doesn't build on kernels older than 2.6.12

-CONFIG_VIDEO_BUF_DVB           := n
+CONFIG_VIDEO_BUF_DVB           := m
  CONFIG_VIDEO_CX88_DVB          := n
  CONFIG_VIDEO_SAA7134_DVB       := n

@@ -90,5 +90,7 @@
   CONFIG_DVB_TTUSB_DEC          := m
   CONFIG_VIDEO_SAA7146          := m
   CONFIG_VIDEO_SAA7146_VV       := m
+ CONFIG_DVB_AV7110_FIRMWARE    := y
+ CONFIG_DVB_AV7110_FIRMWARE_FILE := ./dvb-ttpci-01.fw
  endif

Finally I copied the file dvb-ttpci-01.fw-2622 into

   /home/kls/vdr/DVB.head/v4l-dvb/v4l/dvb-ttpci-01.fw

The 'make' call then gave me

kls at hawk:/home/kls/vdr/DVB-v4l-dvb.2005-12-05 > make
make -C /home/kls/vdr/DVB-v4l-dvb.2005-12-05/v4l
make[1]: Entering directory `/home/kls/vdr/DVB-v4l-dvb.2005-12-05/v4l'
echo "No version yet."
No version yet.
uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$/) { printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",$1,$2,$3,$1,$2,$3,$4); };' > ./.version
make[1]: Leaving directory `/home/kls/vdr/DVB-v4l-dvb.2005-12-05/v4l'
make[1]: Entering directory `/home/kls/vdr/DVB-v4l-dvb.2005-12-05/v4l'
cc -o fdump /home/kls/vdr/DVB-v4l-dvb.2005-12-05/fdump.c
cc: /home/kls/vdr/DVB-v4l-dvb.2005-12-05/fdump.c: No such file or directory
cc: no input files
make[1]: *** [fdump] Error 1
make[1]: Leaving directory `/home/kls/vdr/DVB-v4l-dvb.2005-12-05/v4l'
make: *** [all] Error 2


Did I do something wrong?

Klaus



More information about the linux-dvb mailing list