[linux-dvb] How to compile the firmware into the driver?
Klaus Schmidinger
Klaus.Schmidinger at cadsoft.de
Sun Dec 4 15:59:55 CET 2005
Gerald Raaf wrote:
> Am Sonntag, 4. Dezember 2005 15:28 schrieb Klaus Schmidinger:
>
>>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
>>>
>>>into /usr/src/linux/.config and create a symlink in
>>>/home/kls/vdr/DVB-v4l-dvb.2005-12-02/linux/drivers/media/dvb/ttpci
>>>
>>>-rw-r--r-- 1 kls users 239956 Dec 4 13:13 dvb-ttpci-01.fw-2622
>>>lrwxrwxrwx 1 kls users 20 Dec 4 13:13 dvb-ttpci-01.fw ->
>>>dvb-ttpci-01.fw-2622
>>>
>>>but apparently that doesn't impress the make process.
>>>
>>>
>>>Is there a simple trick to do this?
>>
>>Ok, so I think I've managed to do this, by editing some source files.
>>I'm still hoping there is a clean way to do this, though.
>>
>>So now I have all the *.ko files in
>>/home/kls/vdr/DVB-v4l-dvb.2005-12-02/v4l, but I can't seen to find out how
>>to properly load them. There used to be an 'insmod.sh' script before the
>>v4l/dvb merge, but that's no
>>longer there.
>>
>>Does anybody know how to properly load the *.ko files?
>>Note that I do _not_ want to do "make install", because I
>>want to be able to have several driver versions in their
>>own directories, and want to switch between these by simply
>>placing a symlink. Therefore I need a way to load and unload
>>the modules from a given driver directory, without copying anything
>>to /lib/modules/...
>
>
> go to the directory where the *.ko files are.
> insmod *.ko
This didn't work...
> I think you can use an insmod.sh from old directory.
...but this did - the sequence is important.
I wonder why this script isn't part of the driver source any more...
> What did you change to create the firmware (av7110_firm.h)? Because i didn't
> manage to do this.
--- /home/kls/vdr/DVB.head/v4l-dvb/v4l/Make.config 2005-11-29 14:36:59.000000000 +0100
+++ Make.config 2005-12-04 14:43:03.919359189 +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
--- /home/kls/vdr/DVB.head/v4l-dvb/linux/drivers/media/dvb/ttpci/av7110.c 2005-11-27 00:46:56.000000000 +0100
+++ av7110.c 2005-12-04 14:54:58.478392378 +0100
@@ -1461,6 +1461,7 @@
return 0;
}
+#define CONFIG_DVB_AV7110_FIRMWARE_FILE
#ifdef CONFIG_DVB_AV7110_FIRMWARE_FILE
#include "av7110_firm.h"
static void put_firmware(struct av7110* av7110)
Don't know why I had to also change av7110.c, because I would have
expected the CONFIG_DVB_AV7110_FIRMWARE_FILE macro to be set in
Make.config, but at least that way it worked.
Maybe (hopefully!) there is a simpler method of doing this,
but then at least it wasn't obvious to me...
Klaus
More information about the linux-dvb
mailing list