Leadtek WinFast DTV2000H - Zvuk u TV, S-video a Composite vstup

Vítejte,

tato stránka se věnuje hybridní televizní kartě WinFast DTV2000H, zejména rozdílu v obou jejich prodávaných verzích. Najdete tu popis rozdílů jednotlivých karet a upravený modul pro Linux a krátkou zmínku o tom, jak ji rozchodit ve WinXP. Tato stránka byla napsána v lednu 2008.

Nejaktuálnější informace najdete na anglických stránkách Leadteku. České stránky Leadteku sice existují taky, ale nejsou aktuální.

Tato karta, která se u nás již nějakou dobu prodává, má totiž 2 verze. Poznáte to bud přímo podle karty, nebo podle toho, jak se hlásí v systému. Obě verze jsou vyfocené na zmíněných anglických stránkách. Na českých je fotka té starší verze a ovladače pro WinXP, odtud stažené, s novou verzí nefungují.


Úvod:

Nepovažuji se za progamátora a podle toho mohou také některé kusy kódu vypadat. Úpravy jsem dělal částečně metodou pokus-omyl, částečně na základě hardwarových meření. Doufám, že vám tato stránka pomůže, nicméně všechno, co tu najdete zkoušíte na vlastní nebezpečí. Pokud se Vám tedy rozsype fungující systém, odejde disk, přestane jezdit auto, vyhodí Vás z práce, rozejde se s Vámi přítelkyně, nebo na dva týdny přijedete na návštěvu Vaše matka, nemohu s tím nic udělat ...

Nefunguje vám dálkové ovládání ?

Toto je pouze taková krátká hardwarová vložka. Pokud Vám nefunguje dálkové ovládání, nebo funguje nespolehlivě, podívejte se, jestli karta nesdílí přerušení ... ona ho totiž sdílet nesmí. Poznáte to nejrychleji z tabulky BIOSu, která se vypisuje při startu, nebo ze souboru /proc/interrupts v Linuxu (pokud má karta zavedený modul). Jestliže tedy zjistíte, že karta přerušení opravdu sdílí, doporučuji ji přehodit do jiného PCI slotu. V počítači bývá aspon jeden, který své IRQ s ničím nesdílí a ten je pro tuto kartu ideální.


Identifikace jednolivých verzí:

>>Verze I a starší:

Tato karta by měla bez větších problémů chodit. V sytému se hlásí jako

107d:665e

a oproti novější verzi má konektor na audio vstup zvlášt. Zapojení vypadá takto:

Verze I
.

>>Verze J:

Tuhle kartu mám já. Nešla mi a proto vlastně vznikla tato stránka. V sytému se hlásí jako

107d:6f2b

a oproti starší verzi má jen jeden konektor pro audio in, S-video in i Composite video in. Zapojení vypadá takto:

.


Popis problému:

Vynechám příběh o tom, jak jsem kartu katru zapojoval, nebudu psát ani o autorunu, který podle systémováho data vybere vánoční, normální, nebo valentýnskou (!!!) verzi Flashového (!!!!) instalátoru, nedozvíte se ani kolik různých ovladačů jsem zkoušel a konečně kam všude jsem prodejce v duchu posílal. Moje karta, tedy LEADTEK WinFast DTV2000H verze J se chovala následovně:

>>Windows XP SP2:

Instalátor, dodáváný na CD ke kartě, vyhodil hlášku "Device not support". Při pokusu o instalaci driverů z CD pomocí Ovládácího Centra jsem je musel instaloval manuálně (tzn. vybrat ovladač se seznamu a odkliknout, že to opravdu chci, i když ovladač není pro toto zařízení určen (rozuměj: subsystem ID v INF souboru nesedí s tím co detekovaly Win.)) většinou nefungoval správně ovládácí software. Největší úspěch bylo to, že šla digitální televize, a u analogové TV a rádia nešel zvuk (což je zejména u rádia dost nepřijemné).

>>Linux (Gentoo, jádro 2.6.23):

V Linuxu se karta neautodetekovala, takže jsem její typ předal modulu pomocí parametru. Pak se jakš-takš našla, ale rádio nešlo vůbec, a u analogové televize nešel zvuk. Digitální televize a dálkové ovládání bylo OK. Modul taky nepodporuje přepínání vstupů S-video a Composite video.


Co je vlastně jinak ?

Jak jsem psal výše, obě karty mají jiné subsystem ID. Jak je vidět, s původními ovladači skutečně nefungují ... takže, co je jinak ? Problém je se zvukem u rádia a analogové televize. Zjistil jsem, že zvukový výstup z televize a rádia se přepíná pomocí multiplexeru/demultiplexeru s označením HEF4052.

Ten se řídí GPIO piny obvodu CX23883. Verze I to má zřejmě jinak, proto starší ovladače u novějších karet neumí s tím muxem správně pracovat a nejde zvuk.


Vložka:

Pokud někoho zajímá, jak se má ten mux správně ovládat, tady je tabulka:

Zdrojinv. ENABLEA1A0
TV000
Radio010
Ext.vstup001


Rešení:

>>Hardwarové řešení, aneb "než driverů balík, radši tahám kablík":

Pokud umíte s pájkou i něco jiného, než díru do koberce, můžete problém vyřešit hardwarově. Signál z televize jde totiž přes dva elektrolytické kondenzátory v pravém hormín rohu desky:

Můžete tam tedy připájet kablík a ten připojit do zvukovky. Kudy vede signál z rádia nevím přesně. Integrovaný obvod, na fotce zakroužkovaný, je stereodekodér TDA7040, takže z něj to půjde přes pár pasivních součástek na ten mux. Určitě se bude dát signál najít na některých dvou vývodech tuneru, ale to už jistě zvládnete. Přepínat to pak můžete ručně, nebo připojit každý signál na jiný vstup (třeba rádio na CD_IN a televizi na AUX).

Toto řešení nepoužívám, protože se mi to povedlo rozchodit pod Linuxem. Ale v případě nouze se použít dá. Měl jsem na těch kondenzátorech připojená sluchátka a opravdu to hraje. Pokud na kartu ale něco připájíte, pravděpodobně přijdete o záruku.

>>Windows XP SP2:

Pomohla instalace nejnovejších ovladačů z anglických stránek Leadteku. Je to verze 4.0.112.3223 a karta s ní funguje zcela, kompletně a dobře...

,

>>Linux (Gentoo, jádro 2.6.23):

Musíte mít v jádře podporu pro v4l a v4l2 a potřebné moduly pro dekodér, tuner atd. Tady je relevantní část mého .config


# Multimedia devices
#
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_VIDEO_TVAUDIO=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_CS53L32A=m
CONFIG_VIDEO_WM8775=m
CONFIG_VIDEO_WM8739=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_CX25840=m
CONFIG_VIDEO_CX2341X=m
CONFIG_VIDEO_SAA7127=m
CONFIG_VIDEO_UPD64031A=m
CONFIG_VIDEO_UPD64083=m
CONFIG_VIDEO_VIVI=m
CONFIG_VIDEO_SAA5246A=m
CONFIG_VIDEO_SAA5249=m
CONFIG_TUNER_TEA5761=y
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_ALSA=m
CONFIG_VIDEO_CX88_BLACKBIRD=m
CONFIG_VIDEO_CX88_DVB=m
CONFIG_VIDEO_CX88_VP3054=m
CONFIG_VIDEO_IVTV=m
CONFIG_RADIO_ADAPTERS=y
CONFIG_DVB_CORE=y
CONFIG_DVB_CORE_ATTACH=y
CONFIG_DVB_CAPTURE_DRIVERS=y


#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m



#
# Tuners/PLL support
#
CONFIG_DVB_PLL=m
CONFIG_DVB_TDA826X=m
CONFIG_DVB_TDA827X=m

# Miscellaneous devices
#

CONFIG_DVB_ISL6421=m
CONFIG_VIDEO_TUNER=y
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BUF_DVB=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR_I2C=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
CONFIG_DAB=y

Neříkám, že je to ideální. Když jsem měl jen trochu pocit, že bych danou část mohl potřebovat, tak jsem ji zkompiloval aspon jako modul.

Pokud nezadáte žádný parametr, karta se nedetekuje, najde se jako obecná a fungují jenom vstupy pro S-video a Composite video a to ješte bez zvuku. Pokud dáte modulu cx88xx parametr card=51, funguje to jak jsem psal výše (bez zvuku). Upravil jsem zdrojové kódy modulu jádra, takže mi ted u mojí karty (typ. J):

Patch do modulu si můžete stáhnout. Funguje ale jen pro typ J.

Co naopak stále nefunguje:


Download:

>>Patch:

Tady je ke stažení diff soubor, neboli patch. Nakopírujete ho do adresáře /usr/src/linux a jádro patchnete příkazem:

patch -p0 <DTV2000H_Patch.diff 

Jinak toto je první případ, kdy jsem s patchováním čehokoli setkal, takže pokud vám nebude něco fungovat, mrkněte třeba sem.

>>Zdrojové kódy:

Tady jsou ke stažení zdrojové kódy .. prostě kompletní adresář /usr/src/linux/drivers/media/video/cx88


Závěr:

Tímto ovladačem byste měli dostat kartu (typ. J) do stavu, kdy pojede analogová televize s oběma anténnímy vstupy a zvukem, a oba externí video vstupy (také se zvukem). Oproti ovladačům ve Windows se multiplexeru neovládá vstup ENABLE. (Aktivuje se při načítání modulu) - to má za následek, že karta při přeladování analogové televize trochu lupne, ale není to tak hrozné. Pokud zapnete některý z externích vstupů videa a vypnete software na sledování televize, zůstanou audio vstupy připojeny. Kartu starší (typ. I) by tento patch ovlivnit neměl.

Doufám, že Vám tato stránka pomůže,

Hrabosh