Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Firmware wont upload



Hi,

The problems I had with this card were that the tda1004x module would
not depmod/load due to unresolved symbols. I figured out a workaround.

I have this card working with a hacked version of kernel 2.6.7. I found
that the kernel developers removed the exporting of several symbols from
fs/open.c and fs/read_write.c, called:

sys_open
sys_close
sys_read
sys_lseek

which are used by the tda1004x driver to directly open the firmware
file.

You should be aware that the driver checks the length of the file as
well (although your problem is that the file doesn't exist, or that the
call to sys_open failed... seems likely given the state of the driver.)

There are instructions for where to get the firmware directly from the
internet. This is contained in the kernel configuration help (it should
be somewhere more easily findable!):

---------------------
Full pathname of tda1004x.bin firmware file (DVB_TDA1004X_FIRMWARE_FILE)

The TDA1004X requires additional firmware in order to function.
The firmware file can obtained as follows:
wget http://www.technotrend.de/new/215/TTweb_215a_budget_20_05_2003.zip
unzip -j TTweb_215a_budget_20_05_2003.zip
Software/Oem/PCI/App/ttlcdacc.dll
mv ttlcdacc.dll /usr/lib/hotplug/firmware/tda1004x.bin
Note: even if you're using a USB device, you MUST get the file from the
TechnoTrend PCI drivers.
-----------------------
I downloaded the driver from this site and it worked fine (so far).

To rectify the symbol exporting problem mentioned earlier, I edited
fs/open.c and fs/read_write.c to add the macro call

EXPORT_SYMBOL(sys_open);

etc after the four sys_XXX functions mentioned above. Replace sys_open
with the name of each function! 

With these mods and and kernel build and the firmware from the above
site, my WinTV Nova-T card works. (I have seen good SD, but some
problems still with HD - I'm using xine at the moment. Will try MythTV
next.)

Note that the tda1004x driver does not yet use the hotplug mechanism,
nor does it use the request_firmware API recently introduced into the
kernel. It currently tries to load the firmware directly from the
filesystem at the hardcoded location.

I consulted lkml regarding a proper fix for the removal of the
EXPORT_SYMBOL stuff, and was told to use the request_firmware API
instead. I'm currently working up a patch to implement this. I don't yet
know what has happened in kernel 2.6.8.1.

Hope this helps in some way.
Ben.


On Mon, 2004-08-16 at 01:54, Q wrote:
> Opps sorry for the no subject:
> 
> Hey Guys I have tried a whole bunch of times now with several
> distributions and a whole bunch of kernels (all 2.6x though) right up to
> 2.6.8.1 and no matter what I do I cannot get the kernel to upload the
> firmware for my WinTV nova-t card. If I try I just persistantly get an
> error message during boot that it failed to upload the firmware. Here is
> the full (TV related) output from dmesge:
> 
> Linux video capture interface: v1.00
> bttv: driver version 0.9.15 loaded
> bttv: using 8 buffers with 2080k (520 pages) each for capture
> tvaudio: TV audio decoder + audio/video mux driver
> tvaudio: known chips:
> tda9840,tda9873h,tda9874h/a,tda9850,tda9855,tea6300,tea6420,tda8425,pic16c54 (PV951),ta8874z
> SAA5246A (or compatible) Teletext decoder driver version 1.7
> SAA5249 driver (SAA5249 interface) for VideoText version 1.7
> saa7146: register extension 'budget dvb'.
> saa7146: register extension 'budget dvb /w video in'.
> saa7146: register extension 'budget_ci dvb'.
> ACPI: PCI interrupt 0000:01:09.0[A] -> GSI 17 (level, high) -> IRQ 17
> saa7146: found saa7146 @ mem e087d000 (revision 1, irq 17)
> (0x13c2,0x1011).
> DVB: registering new adapter (TT-Budget/WinTV-NOVA-T  PCI).
> bt878 find by dvb adap: checking "TT-Budget/WinTV-NOVA-T  PCI"
> bt878 find by dvb adap: NOT found "TT-Budget/WinTV-NOVA-T  PCI"
> tda1004x: Detected Philips TDA10045H.
> tda1004x: Detected Philips TD1316 tuner.
> tda1004x_fwupload: Unable to open firmware
> /usr/lib/hotplug/firmware/tda1004x.bin
> TT-Budget/WinTV-NOVA-T  PCI adapter 0 has MAC addr = 00:d0:5c:22:0b:bf
> saa7146: register extension 'budget_patch dvb'.
> saa7146: register extension 'dvb'.
> usbcore: registered new driver ttusb-dec
> usbcore: registered new driver Technotrend/Hauppauge USB-Nova
> bt878: AUDIO driver version 0.0.0 loaded
> 
> I am certain that the firmware is located in the specified directory,
> that it does indeed have the correct name and that it is the correct
> version - since I asked the manufacturer to send it to me. Everything
> else in my kernel is as it should be. Moreover I have tried every
> firmware version available  over the last 18 months - which I believe is
> when I first bought this card - including the original firmware that
> came on the CD.
> 
> Can anyone suggest where I might be going wrong?
> 
> On what does successful firmware uploading depend on in the kernel?
> 
> I noticed an option for hotplug firmware uploading, but it is currently
> unelectable (there is no check box next to it) - and I am not at all
> certain if this is significant. In the one kernel version I did try that
> had it enabled (in SuSe) it didn't seem to make any difference anyway,
> as the firmware still refused to upload.
> 
> I have fixed the permissions for the firmware and it's directory to read
> write and execute for all, similarly so with my /dev/dvb directory.
> 
> Is there anything at all anyone can think of that I might have missed?
> 
> Best regards,
> 
> GJ
> 
> 
> ______________________________________________________________________
> From: Q <raid517@fairadsl.co.uk>
> To: linux-dvb@linuxtv.org
> Subject:
> Date: Sun, 15 Aug 2004 11:49:21 -0400
> 
> Hey Guys I have tried a whole bunch of times now with several
> distributions and a whole bunch of kernels (all 2.6x though) right up to
> 2.6.8.1 and no matter what I do I cannot get the kernel to upload the
> firmware for my WinTV nova-t card. If I try I just persistantly get an
> error message during boot that it failed to upload the firmware. Here is
> the full (TV related) output from dmesge:
> 
> Linux video capture interface: v1.00
> bttv: driver version 0.9.15 loaded
> bttv: using 8 buffers with 2080k (520 pages) each for capture
> tvaudio: TV audio decoder + audio/video mux driver
> tvaudio: known chips:
> tda9840,tda9873h,tda9874h/a,tda9850,tda9855,tea6300,tea6420,tda8425,pic16c54 (PV951),ta8874z
> SAA5246A (or compatible) Teletext decoder driver version 1.7
> SAA5249 driver (SAA5249 interface) for VideoText version 1.7
> saa7146: register extension 'budget dvb'.
> saa7146: register extension 'budget dvb /w video in'.
> saa7146: register extension 'budget_ci dvb'.
> ACPI: PCI interrupt 0000:01:09.0[A] -> GSI 17 (level, high) -> IRQ 17
> saa7146: found saa7146 @ mem e087d000 (revision 1, irq 17)
> (0x13c2,0x1011).
> DVB: registering new adapter (TT-Budget/WinTV-NOVA-T  PCI).
> bt878 find by dvb adap: checking "TT-Budget/WinTV-NOVA-T  PCI"
> bt878 find by dvb adap: NOT found "TT-Budget/WinTV-NOVA-T  PCI"
> tda1004x: Detected Philips TDA10045H.
> tda1004x: Detected Philips TD1316 tuner.
> tda1004x_fwupload: Unable to open firmware
> /usr/lib/hotplug/firmware/tda1004x.bin
> TT-Budget/WinTV-NOVA-T  PCI adapter 0 has MAC addr = 00:d0:5c:22:0b:bf
> saa7146: register extension 'budget_patch dvb'.
> saa7146: register extension 'dvb'.
> usbcore: registered new driver ttusb-dec
> usbcore: registered new driver Technotrend/Hauppauge USB-Nova
> bt878: AUDIO driver version 0.0.0 loaded
> 
> I am certain that the firmware is located in the specified directory,
> that it does indeed have the correct name and that it is the correct
> version - since I asked the manufacturer to send it to me. Everything
> else in my kernel is as it should be. Moreover I have tried every
> firmware version available  over the last 18 months - which I believe is
> when I first bought this card - including the original firmware that
> came on the CD.
> 
> Can anyone suggest where I might be going wrong?
> 
> On what does successful firmware uploading depend on in the kernel?
> 
> I noticed an option for hotplug firmware uploading, but it is currently
> unelectable (there is no check box next to it) - and I am not at all
> certain if this is significant. In the one kernel version I did try that
> had it enabled (in SuSe) it didn't seem to make any difference anyway,
> as the firmware still refused to upload.
> 
> I have fixed the permissions for the firmware and it's directory to read
> write and execute for all, similarly so with my /dev/dvb directory.
> 
> Is there anything at all anyone can think of that I might have missed?
> 
> Best regards,
> 
> GJ





Home | Main Index | Thread Index