HOGYAN Fogjunk TV adást?
A Gentoo Linux Wiki wikiből
Tartalomjegyzék |
[szerkesztés] Bevezetés
Gentoo (és más disztribúciók alatt is) egy tv-tuner telepítése elég egyszerű folyamat. A kártya behelyezése és a kernel megfelelő beállítása után elméletileg már működnie is kell.
[szerkesztés] A kártya azonosítása
Miután a kártyát a gépbe helyeztük, érdemes egy lspci-t futtatni, hogy meggyőződjünk arról, tényleg azt kaptuk-e, amit vásároltunk :)
Ez valami ilyesmit fog eredményezni:
| Kód: lspci |
.. 0000:00:0c.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05) 0000:00:0c.1 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (rev 05) .. |
A fenti példa egy cx2388x kártya adatait mutatja. Más chipsetnél természetesen eltérő a kimenet.
[szerkesztés] Kernel beállítása
A kernelben érdemes modulként beállítani a szükséges drivereket, mert később szükség lehet a paraméterezésre, ami így sokkal egyszerűbb, és a megfelelő működés is könnyebben ellenőrizhető.
| File: menuconfig |
Device Drivers --->
Multimedia devices --->
<M> Video For Linux
Video For Linux --->
<M> A megfelelő kártya modulja
|
Ezzel a lényegen túl is vagyunk, ezek után következhet a szokásos kernel-forgatás, majd ha megvan, a modul betöltése.
[szerkesztés] Modul betöltése, paraméterezése
Első próbálkozásként a modult minden paraméter nélkül érdemes betölteni, hátha gond nélkül működik:
| Parancs: modprobe |
|
# modprobe modul_neve |
Ha nem kapunk hibaüzenetet, valószínűleg minden rendben, de érdemes ellenőrizni. Ezt többféleképpen megtehetjük:
- A dmesg segítségével megnézhetjük, a kernel hiba nélkül fogadta-e a modult, valamint, hogy a modul gond nélkül felismerte-e a kártyát. Ez nálam valahogy így néz ki:
| Kód: dmesg |
cx2388x v4l2 driver version 0.0.5 loaded CORE cx88[0]: subsystem: 0070:3401, board: Hauppauge WinTV 34xxx models [card=1,autodetected] TV tuner -1 at 0x1fe, Radio tuner -1 at 0x1fe tveeprom 0-0050: Hauppauge model 34704, rev J197, serial# 8146346 tveeprom 0-0050: tuner model is TCL 2002MB_3H (idx 97, type 55) tveeprom 0-0050: TV standards PAL(B/G) PAL(D/K) (eeprom 0x44) tveeprom 0-0050: audio processor is CX881 (idx 31) tveeprom 0-0050: has radio cx88[0]: registered IR remote control cx88[0]/0: found at 0000:00:0c.0, rev: 5, irq: 19, latency: 32, mmio: 0xde000000 tuner 0-0061: chip found @ 0xc2 (cx88[0]) tuner 0-0061: type set to 55 (LG PAL (TAPE series)) cx88[0]/0: registered device video0 [v4l2] cx88[0]/0: registered device vbi0 cx88[0]/0: registered device radio0 |
- Ha minden jól ment, létrejött egy /dev/videoX, általában /dev/video0 device, a cat /dev/videoX parancs segítségével könnyen ellenőrizhető, ha a /dev/video0: No such device üzenetet kapjuk, gond van.
- Ellenőrizzük, a modul tényleg bent van-e, és betöltötte-e a függőségeit:
| Kód: lsmod |
Module Size Used by .. tda9887 14352 0 tuner 41508 0 cx8800 27916 0 cx88xx 54816 1 cx8800 i2c_algo_bit 8584 1 cx88xx video_buf 17284 2 cx8800,cx88xx ir_common 7428 1 cx88xx btcx_risc 3976 2 cx8800,cx88xx tveeprom 12816 1 cx88xx i2c_core 17168 5 tda9887,tuner,cx88xx,i2c_algo_bit,tveeprom videodev 7424 2 cx8800,cx88xx .. |
Ez megint csak az én kártyámhoz tartozó lista, más kártyáknál picit máshogy néz ki.
Ezzel készen is vagyunk, egy TV néző szoftver segítségével használatba is vehetjük a kártyát.
[szerkesztés] Hibaelhárítás
A leggyakoribb hiba, ha a modul nem ismeri fel a kártya típusát. Ezt a dmesgben szereplő board: UNKNOWN/GENERIC sor mutatja. Ilyenkor nincs mit tenni, az ember rákeres, hátha valaki már használja ezt a kártyát, és tudja milyen paramétereet kell használni, vagy egész egyszerűen próbálgatni a különböző paramétereket, hog melyik tunerrel megy a kártya.
Egy kártya több tunerparaméterrel is mehet, de a képminőség nagyon eltérhet! Érdemes addig próbálkozni, amíg meg nem találjuk a legszebb képet adó opciót.
[szerkesztés] CVS
A v4l2 driverek CVs verzióját is használhatjuk, aminek előnyei és hátrányai egyaránt vannak:
- A legfrissebb verziót tudjuk használni.
- Ha esetleg a kernel drivere nem, könnyen lehet, hogy a CVS verzió felismeri a kártyánkat.
- A CVS fa folyamatos fejlesztés alatt áll, a legújabb kernelbe nem minden kerül bele, ami ebbe.
- Ellenben könnyen lehet, hogy éppen nem is működik.
A CVS fordításához meg kell változtatni a kernel beállításait:
| File: menuconfig |
Device Drivers --->
Multimedia devices --->
<M> Video For Linux
Video For Linux --->
< > A megfelelő kártya modulja
|
Azaz, a drivert nem szabad lefordítani, modulként sem.
A következő lépés a forrás megszerzése. A lenti parancs az éppen aktuális könyvtárban létrehoz egy v4l-dvb könyvtárat, ahová letölti a forrást. A név ne tévesszen meg senkit, a v4l és v4l-dvb fákat nemrég összeolvasztották.
| Parancs: CVS letöltése |
|
$ cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/video4linux login <enter> $ cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/video4linux co -P v4l-dvb
|
Ha megvagyunk, be kell lépni a könyvtárba, és lefordítani a modulokat:
| Parancs: CVS fordítása |
|
$ cd cvs-dvb $ make
|
A fordítás általában gond nélkül lemegy, egykét hibaüzenet előfordulhat, azonban ha ezek ellenére lefordulnak a modulok, nincs semmi gond. Annyit fontos megjegyezni, hogy a /usr/src/linux linknek az aktuálisan futó kernelünk forrására kell mutatnia! (azaz arra, amit feljebb beállítottunk)
Már csak a telepítés van hátra, ehhez rendszergazdai jogok szükégesek:
| Parancs: CVS telepítése |
|
# make install
|
Ha mindezzel megvagyunk, innen a menet a fentiekkel megegyezik.
[szerkesztés] Modul opciók
[szerkesztés] CX2388X
A cx8800 modul használatakor érdemes megjegyezni, hogy a paramétereket nem ez a modul fogadja, hanem a cx88xx! A fontosabb paraméterek:
- tuner=X - a tunerek listáját lásd: /usr/src/linux/Documentation/video4linux/CARDLIST.tuner
- card=X - a kártyák listáját lásd: /usr/src/linux/Documentation/video4linux/CARDLIST.cx88
- audio_debug=0/1 - érdemes paraméterként a 0-t megadni, elkerlüendő a (számunkra) felesleges hibaüzeneteket
[szerkesztés] bt878
!! FIXME !!
[szerkesztés] Modul automatikus betöltése
Ha szépen kipróbálgattuk, milyen opciók a legmegfelelőbbek számunkra, érdemes lehet a modulokat a boot során automatikusan betölteni. Ehhez nem kell mást tenni, mint a /etc/modules.d/ könyvtárban létrehozni egy-egy, a modulok nevének megfelelő állományt, beleírni a megfelelő opciókat, majd a /etc/modules.autoload.d/kernel-2.? fileba (a ? a kernelnek megfelelő verzió, azaz 4 vagy 6) berakni a modulokat, pl:
| File: /etc/modules.d/cx88xx |
options card=1 tuner=56 radio=0 audio_debug=0 |
és
| File: /etc/modules.autoload.d/kernel-2.6 |
# /etc/modules.autoload.d/kernel-2.6: kernel modules to load when system boots. nvidia cx88xx cx8800 |
[szerkesztés] Programok
Jópár program használható TVzésre linux alatt. Egy lista, a teljesség igénye nélkül:
- media-tv/tvtime - egyszerű TV nézésre a legjobb
- media-tv/zapping
- media-tv/xawtv
- media-tv/xdtv
