[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 18:06:37 CET 2005


Klaus Schmidinger wrote:
> 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

Found it - this must, of course, be

CONFIG_VIDEO_BUF_DVB           := y

Sorry about that.

After changing

CONFIG_DVB_AV7110_FIRMWARE_FILE := ./dvb-ttpci-01.fw

in v4l/Make.config to

CONFIG_DVB_AV7110_FIRMWARE_FILE := /home/kls/vdr/DVB-v4l-dvb.2005-12-05/v4l/dvb-ttpci-01.fw

(full path name required, but that's no problem since I have to
edit v4l/Make.config, anyway) it works as expected.

Thanks a lot, Oliver!

Klaus

>  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