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:

Személyes eszközök