Portál AbcLinuxu, 2. května 2025 10:54
Podpora: | částečná |
Ovladač: | dodává někdo jiný |
Philips SAA7162E/G
2x TDA10046A
2x DVB-T/Analog tuner
2x koaxiální vstup, S-Video & kompozitní vstup
03:00.0 Multimedia controller: Philips Semiconductors SAA7162 nebo také Pinnacle PCTV 3010iX Subsystem: Animation Technologies Inc. Device 0820 Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at dbf00000 (64-bit, non-prefetchable) [size=1M] Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+ Capabilities: [50] Express Endpoint, MSI 00 Capabilities: [74] Power Management version 2 Capabilities: [80] Vendor Specific Information: Len=50 <?> Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?>
saa716x-šílenost
.$ hg clone http://linuxtv.org/hg/v4l-dvbVaše kopie repozitáře se nachází ve složce
v4l-dvb
.linux/drivers/media/common/saa716x/
do v4l-dvb/linux/drivers/media/common/
(do vaší kopie repozitáře v4l-dvb)
$ cp -r saa716x-*/linux/drivers/media/common/saa716x v4l-dvb/linux/drivers/media/common/
Kconfig
ve složce v4l-dvb/linux/drivers/media/
:
# # DVB adapters # source "drivers/media/dvb/Kconfig" + source "drivers/media/common/saa716x/Kconfig" config DAB
Makefile
ve složce v4l-dvb/linux/drivers/media/common/
:
obj-y += tuners/ obj-$(CONFIG_VIDEO_SAA7146) += saa7146.o obj-$(CONFIG_VIDEO_SAA7146_VV) += saa7146_vv.o + obj-$(CONFIG_SAA716X_CORE) += saa716x/
/sbin/lspci -nnv
a najděte položku s TV kartou:
03:00.0 Multimedia controller [0480]: Philips Semiconductors SAA7162 [1131:7162] Subsystem: Animation Technologies Inc. Device [id1:id2]Zapište si někam hodnoty
id1
a id2
.v4l-dvb/linux/drivers/media/common/saa716x/saa716x_hybrid.c
:
static struct pci_device_id saa716x_hybrid_pci_table[] = { MAKE_ENTRY(TWINHAN_TECHNOLOGIES, TWINHAN_VP_6090, SAA7162, &saa716x_vp6090_config), MAKE_ENTRY(NXP_REFERENCE_BOARD, PCI_ANY_ID, SAA7162, &saa716x_atlantis_config), + MAKE_ENTRY(0xid1, 0xid2, SAA7162, &saa716x_atlantis_config), MAKE_ENTRY(NXP_REFERENCE_BOARD, PCI_ANY_ID, SAA7160, &saa716x_nemo_config), MAKE_ENTRY(AVERMEDIA, AVERMEDIA_HC82, SAA7160, &saa716x_averhc82_config), MAKE_ENTRY(AVERMEDIA, AVERMEDIA_H788, SAA7160, &saa716x_averh788_config), { } };Za
id1
a id2
dosaďte hodnoty z příkazu lspci
. Případně můžete v hlavičkovém souboru (stejné jméno, přípona .h) nadefinovat konstanty a ve zdrojovém kódu nahradit 0xČíslo
jejich jmény.v4l-dvb
a spusťte make menuconfig
:
$ cd v4l-dvb $ make menuconfigNastavte tučně vyznačené volby takto (ostatní nechte tak jak jsou):
<M> Multimedia support ---> [*] Support for SAA716x family from NXP/Philips ---> --- Support for SAA716x family from NXP/Philips <M> SAA7160/1/2 PCI Express bridge based devices <M> SAA7160/1/2 based Budget PCIe cards (DVB only) <M> SAA7160/1/2 based Hybrid PCIe cards (DVB + Analog) < > SAA7160/1/2 based Full Fledged PCIe cards"Vyexitujte" a uložte nastavení.
$ make $ sudo make install případně $ su $ make install
saa716x_hybrid
do jádra (jako root) a nechte si vypsat chybové hlášky z dmesg
:
$ sudo modprobe -v saa716x_hybrid $ dmesg | tailVýstup z
dmesg
bude, pokud máte štěstí, vypadat asi takto:
SAA716x Hybrid 0000:03:00.0: PCI INT A disabled SAA716x Hybrid 0000:03:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 SAA716x Hybrid 0000:03:00.0: setting latency timer to 64 DVB: registering new adapter (SAA716x dvb adapter) DVB: registering adapter 0 frontend 0 (Philips TDA10046H DVB-T)... DVB: registering new adapter (SAA716x dvb adapter)Zde mohou nastat (a zřejmě nastanou) chyby: buď se nevypíše nic-špatné nastavení místo
DVB: registering adapter 0...
můžete dostat chybu typu
tda1004x: Invalid tda1004x ID = 0xčíslo. Can't proceedMusíme znovu upravit zdrojový kód. Zapište si ID z výpisu a upravte soubor
v4l-dvb/linux/drivers/media/dvb/frontends/tda1004x.c
:if (id != 0x46) { printk(KERN_ERR "Invalid tda1004x ID = 0x%02x. Can't proceed\n", id); kfree(state); return NULL; }Řádek
if (id != 0x46) {
upravte na:
if (id != 0x46 && id != 0xČíslo) {Za Číslo dosaďte zapsanou hodnotu.
v4l-dvb
a znovu zkompilujte. Nainstalujte moduly a restartujte PC, případně odeberte moduly saa716x_hybrid
, saa716x_core
a tda1004x
(poslední půjde pouze násilím).sudo modprobe saa716x_hybridJe možné, že byl zaveden samovolně: zkontrolujeme dmesg na chybu:
$ dmesg | grep -i saa $ dmesg | grep -i tda1004x
tda1004x: timeout waiting for DSP ready tda1004x: found firmware revision 0 -- invalid tda1004x: trying to boot from eeprom tda1004x: timeout waiting for DSP ready tda1004x: found firmware revision 0 -- invalid tda1004x: waiting for firmware upload... SAA716x Hybrid 0000:03:00.0: firmware: requesting dvb-fe-tda10046.fw tda1004x: timeout waiting for DSP ready tda1004x: found firmware revision 0 -- invalid tda1004x: firmware upload failedZkusím kontaktovat autora a případně jiné experty, jestli by náhodou neměli řešení této šlamastiky. Kdybyste na něco přišli, klidně návod upravte.
Dokument vytvořil: PaulosV, 2.7.2010 17:18 | Poslední úprava: PaulosV, 27.2.2011 15:09 | Historie změn | Zobrazeno: 1636×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.