Portál AbcLinuxu, 17. května 2024 22:35

Televizní karta s dálkovým ovládáním

31. 7. 2003 | Vlastimil Ott
Články - Televizní karta s dálkovým ovládáním  

LIRC pro TV s DO. Jak na ně? Infračervený paprsek můžete použít nejen na televizi.

Ceny televizních karet (tunerů) se dostaly do velice příjemných hladin, které nepředstavují žádné finanční vysílení. Sledování televize se může stát zábavným oživením každodenní úmorné práce, pokud vám ovšem zrak nezůstane viset pouze na ní ;-).

Zvolený příklad

Začněme obligátně -- od samotné koupě. Nemusíte se obávat, že by vaše karta nebyla v Linuxu podporována, pokud jí na plošném spoji bije čip bt878 nebo bt848. Ostatní typy karet, které pohání jiný ("značkový") čip, jsou podporovány částečně, já bych investici do nich považoval za lehce rizikovou. Tento článek vznikl na základě zkušeností s kartou, která se prodává pod obchodním označením TV Vision MediaForte. Na krabici je anglicky napsáno, co všechno karta umí (neautorizovaný překlad):

Abych vás napnul (to se tak dělá ;-) ), nechám vás hádat, které vlastnosti z uvedených v Linuxu skutečně zprovozníme. Dozvíte se to na konci článku.

V balení tedy byla samotná karta, dálkový ovladač a čidlo s diodou, které se umisťuje "někam". Pomocí oboustranně lepicích pidinálepek, které jsou k tomu určeny, bych si nepřilepil ani fotku své milé na monitor. Pomůže lepicí páska. Dále je v krabici tzv. instalační příručka, která velice zevrubně popisuje, kam má uživatel kliknout, aby ve svém systému potvrdil instalaci. Ano, chápete dobře, knížečka je plná nečitelných obrázků z různých verzí Windows. Nám to ale nevadí.

Ještě krapet teorie

Podpora televizních karet (BTW, jak přeložit v tomto smyslu "tuner"?) se vyvíjela v několika směrech: vznikl projekt BTTV, potom projekt BTTV2 a vedle toho ještě jaderná větev (rozuměj sada modulů, které se distribuují s jádrem) Video4Linux. Pokud máte pocit, že to vysvětluji nesprávně, není to jen pocit; opravdu v tom mám trošku zmatek, ale myslím, že to nijak nevadí ;-). Pro nás je důležité, že podpora multimédií v jádře (V4L) je na takové úrovni, že projekty BTTV byly ukončeny a do těchto modulů integrovány. Jejich internetové stránky jsou ale i nadále funkční, takže pro starší jádra tam naleznete to, co hledáte. Ještě poznámka pro uživatele ATI All In Wonder: měl jsem sice jen starou AIW Pro, ale pokud se nepletu, platí i pro nové modely AIW, že nejsou BTTV kompatibilní, protože neobsahují zmíněný čip bt8xx.

Prstový tělocvik

Některé distribuce (úplnou namátkou třeba Danix 0.9 RC2) poskytují klikací nástroje, které myslím poslouží velice dobře. Ve Slackware nic takového k dispozici není (naštěstí pro mě), takže se budu zabývat "surovou" instalací. Předpokládám také, že máte BTTV moduly zkompilované a přítomné v systému a víte, co vykoná modprobe.

Po přečtení dokumentů v adresáři /usr/src/linux/Documentation/video4linux/bttv a dokumentu BTTV mini-HOWTO jsem zjistil, že nevím, jaké je přesné typové označení karty. Tedy jsem také zjistil, že se tohle označení liší od obchodního názvu. Experimentováním jsem přišel na typ ProVideo PV951, což jsem si později ověřil i informacemi nalezenými na Internetu. (Když víte, co vlastně hledáte, jde to jako po másle.) Může vám snad pomoci i fotogalerie různých karet.

Hlavní modul, který ovládá zařízení Video4Linux, se jmenuje bttv.o a jeho parametry jsou mimo jiné card a tuner. Hodnoty těchto parametrů zjistíte v souboru /usr/src/linux/Documentation/video4linux/bttv/CARDLIST nebo na stránkách BTTV. Můžete si zavedení modulu vyzkoušet v shellu:

modprobe bttv card=42 radio=1 # Pro mou kartu

Vhodnější je modifikovat soubor /etc/modules.conf (výřez). Vzor této sekce najdete v souboru /usr/src/linux/Documentation/video4linux/bttv/Modules.conf:

# i2c
alias char-major-89    i2c-dev
options i2c-core       i2c_debug=1
options i2c-algo-bit   bit_test=1

# bttv
alias char-major-81    videodev
alias char-major-81-0  bttv
options bttv           card=42 radio=1
options tuner          type=1 debug=1

Je také možné, že v adresáři /dev nevzniknou při dalším startu požadovaná zařízení, pomůže nám proto skript /usr/src/linux/Documentation/video4linux/bttv/MAKEDEV, který je vytvoří.

Při startu se karta (a také radio, které u výše zmíněné karty také funguje) "ohlásí" zhruba takto (výřez relevantních řádků; všimněte si také modulů pro dálkové ovládání, které obsahují slovo "lirc"):

Linux video capture interface: v1.00
lirc_dev: IR Remote Control driver registered, at major 61
i2c-core.o: i2c core module
i2c-algo-bit.o: i2c bit algorithm module
bttv: driver version 0.7.96 loaded
bttv: using 4 buffers with 2080k (8320k total) for capture
bttv: Host bridge is VIA Technologies, Inc. VT8367 [KT266]
bttv: Bt8xx card found (0).
PCI: Found IRQ 10 for device 00:0a.0
PCI: Sharing IRQ 10 with 00:0a.1
PCI: Sharing IRQ 10 with 00:10.2
bttv0: Bt878 (rev 17) at 00:0a.0, irq: 10, latency: 32, mmio: 0xe0110000
bttv0: using: BT878(ProVideo PV951) [card=42,insmod option]
i2c-algo-bit.o: Adapter: bt848 #0 scl: 1 sda: 1 -- testing...
i2c-algo-bit.o:1 scl: 1 sda: 0
i2c-algo-bit.o:2 scl: 1 sda: 1
i2c-algo-bit.o:3 scl: 0 sda: 1
i2c-algo-bit.o:4 scl: 1 sda: 1
i2c-algo-bit.o: bt848 #0 passed test.
i2c-core.o: adapter bt848 #0 registered as adapter 0.
bttv0: using tuner=1
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
tvaudio: TV audio decoder + audio/video mux driver
tvaudio: known chips:
tda9840,tda9873h,tda9874h/a,tda9850,tda9855,tea6300,tea6420,tda8425,pic16c54 (PV951)
i2c-core.o: driver generic i2c audio driver registered.
tvaudio: found pic16c54 (PV951)
bttv0: i2c attach [client=pic16c54 (PV951),ok]
i2c-core.o: client [pic16c54 (PV951)] registered to adapter [bt848#0](pos. 0).
i2c-core.o: driver i2c TV tuner driver registered.
tuner: probing bt848 #0 i2c adapter [id=0x10005]
tuner: chip found @ 0xc0
bttv0: i2c attach [client=Philips PAL_I (FI1246 and compat,ok]
i2c-core.o: client [Philips PAL_I (FI1246 and compat] registered to adapter [bt848 #0](pos. 1).
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: registered device radio0
i2c-core.o: driver i2c ir driver registered.
lirc_i2c: chip found @ 0x4b (PV951 IR)
bttv0: PLL: 28636363 => 35468950 ... ok

Důležitý je také řádek, který udává typ tuneru; může se vám hodit pro nahrávání v různých programech:

bttv0: i2c attach [client=Philips PAL_I (FI1246 and compat,ok]

Ke konci výpisu jsou také řádky, které oznamují, že byla vytvořena tři zařízení: první je "hlavní" videozařízení, ze kterého jsou přebírána data a které slouží jako zdroj pro nahrávání. Druhé zařízení je určeno pro teletext, třetí pro radio.

Pokud nastanou problémy, pomoc hledejte opět na stránkách BTTV, případně, pokud budete mít štěstí, na stránkách výrobce karty.

Krátce zmíním programy, jimiž ovládám možnosti karty.

Teletext

Alevt: prima teletext TV Prima

Dlouhá ruka

Používání dálkového ovládání, které je dodáváno spolu s kartou, není omezeno jen na kartu samotnou. Můžete je využít k ovládání jakýchkoliv programů v systému. Sada programů, které se starají o zprovoznění infračervených čidel, je distribuována v balíku LIRC (Linux Infrared Remote Control). Stáhněte si aktuální verzi, rozbalte archív do dočasného adresáře a spusťte skript setup.sh. Spustí se instalační program, který vás provede celým procesem. Zvolte položku Driver configuration, poté TV card a nakonec typ své karty (Obrázek 1). Typy karet zhruba odpovídají těm, které podporuje BTTV, mají však jiné číslování, proto je dobré znát čip své karty, příp. tuner (jak už bylo řečeno výše). Nakonec vyberte položku číslo 3 a spusťte kompilaci (Obrázek 2).

Výběr karty při instalaci DO

Obrázek 1 -- Výběr karty při instalaci DO

Instalační program DO

Obrázek 2 -- Instalační program DO

Instalační proces dokončíme příkazy make a make install (jako root). Nainstaluje se několik utilit a především moduly lirc_dev a lirc_i2c. Nyní už stačí vložit modul do paměti a spustit démony. Opět je vhodné zařídit, aby se tak stalo při každém spuštění systému:

modprobe lirc_i2c
...
/usr/local/sbin/lircd&
# nasloucha na portu
/usr/local/bin/irexec -d /etc/lircrc
# odchytava stisknuta tlacitka a vykonava akce

Nejpozději při dalším startu se vytvoří zařízení /dev/lirc, /dev/lircd a /dev/lircm. Zároveň je při instalaci vytvořen soubor /etc/lircd.conf, který obsahuje "ovladač" kláves dálkového ovladače (je načten démonem lircd). Na tomto souboru záleží, zda při instalaci uspějete. Pokud si totiž IR zařízení vyrobíte (není to problém) a použijete univerzální dálkový ovladač (také není problém), budete ho muset učit "mluvit". V tomto souboru je řečeno, co znamená stisknutí toho kterého tlačítka. Drtivá většina těchto souborů k "průmyslově" vyráběným IR zařízením je v balíku přítomna a přibývají další. LIRC umí ovládat také jiná IR zařízení (sériová, síťová, PDA atd.).

Poslední fází je nastavení akcí k jednotlivým tlačítkům, což se definuje v souboru /etc/lircrc. Zde uvedená konfigurace je vhodná pro počítač, který spravuje např. jeden člen rodiny a používají jej i další. Démony jsou spouštěné pod uživatelem root, ale lze je spouštět i pod jednotlivými uživateli. Navržené řešení má výhodu centrální správy -- akce definované v souboru /etc/lircrc jsou pro všechny uživatele jednotné. Jako ukázku jsem použil sekvence, kterými dálkově ovládám "televizní" program xawtv:

begin
prog = irexec
button = 1
config = xawtv-remote setstation 0
end
# a stejne tak dalsi kanaly

begin
prog = irexec
button = cc
config = xawtv-remote fullscreen
config = xawtv-remote fullscreen
end

begin
prog = irexec
button = ch-
config = xawtv-remote setstation prev
end

begin
prog = irexec
button = ch+
config = xawtv-remote setstation next
end

begin
prog = irexec
button = ttx
config = /usr/local/bin/alevt #teletext
end

Program irexec běží jako démon a spustí program po stisku tlačítka, xawtv-remote ovládá již spuštěnou aplikaci xawtv. S tímto souborem si můžete "vyhrát" do libosti, můžete spouštět různé programy různými kombinacemi, ale stejně nejlepší je obyčejné přepínání televize ;-).

Informace v tomto článku jsem podal sice zhuštěně, ale doufám, že srozumitelně. Není to tak těžké, jak to zpočátku vypadá, člověk musí jen vědět, kde a čím začít. Pokusil jsem se všechno podat najednou a pokud možno bez chyb. Rád (si) zodpovím všechny náměty a nedostatky, které vás při četbě napadly. V každém případě nepodceňujte četbu zmíněné dokumentace, mohl jsem něco přehlédnout, nebo mám prostě jinou konfiguraci. Už víte, které vlastnosti této karty jsme v Linuxu "rozchodili"?

Související články

TVtime - tak trochu jiná televize

Odkazy a zdroje

video for linux resources
The Linux Video and DVD Project
Digital Video for Linux
TV is dead - this is LinuxTV
xawtv
LIRC
BTTV mini-HOWTO

Další články z této rubriky

HW novinky: podzimní přehled #2
HW novinky: podzimní přehled #1
HW novinky: návrat skleněných ploten v HDD
HW novinky: PCI Express 4.0 prý ještě letos
HW novinky: i Skylake-X s 12 jádry používá levnou teplovodivou pastu

Diskuse k tomuto článku

31.7.2003 07:22 Poulas
Rozbalit Rozbalit vše Pekny clanek
Odpovědět | Sbalit | Link | Blokovat | Admin
Skoda, ze nemam TV kartu. :-( Asi se po nejake podivam. :-))
31.7.2003 08:41 Petr Klima | skóre: 22
Rozbalit Rozbalit vše Pekny clanek
Jestli ji chcete kupovat jen kvuli dalkovemu ovladani, tak to radsi ne, jsou levnejsi zpusoby, jak dalkove ovladani vyresit. Jinak doporucuji Genius Video Wonder III Pro - za dane penize ma nejlepsi obraz a zvuk. Pro nahravani se mi osvedcil mencoder, detaily viz. dokumentace k mplayeru.
31.7.2003 09:35 carten
Rozbalit Rozbalit vše Dalsi zpusoby
Jasne. Ja tuhle kartu vlastnim, ale ze zacatku s ni byly nejaky problemy, tak sem si postavil IR prijmac na seriovy port. Naklady - ne vic jak 100Kč. Navic se cele zapojeni da nacpat do konektoru CANNON 9pin a ven se vytahne jenom kablik s IR prijmacem. Muzete pouzit jakykoliv ovladac co mate doma (k TV,videu apod.). Na strankach LIRC se daji najit kody pomalu ke vsem ovladacum a kdyz nenajdete ten vas jednoduse nechate LIRC ty kody naucit. Funguje mi napr. DO k TV Tesla 425C (takova velka bageta na 6 tuzkovek). A jinak jeste jedna poznamka k clanku. Ovladac lze pouzit i k ovladani kurzoru mysi, takze se nemusite vubec zvedat z postele :-).
31.7.2003 14:04 daymoon | skóre: 7 | blog: Zde žádný smysl nenajdete
Rozbalit Rozbalit vše Dalsi zpusoby
Taky se pokousim rozchodit vlastni IR prijimac na seriovy port, ale nedari se mi. Pouzivam typ s SFH506-36, ktery mi chodil ve win98 s programem Girder. Nejde mi nastartovat rcirda, vzdy zahlasi irattach chybu, ze ma I/O chybu. Pravdepodobne cele od zakladu to mam blbe. Musi byt podpora serioveho portu jako modul opravdu nutne? Nebo staci vzdy setserial /dev/ttyS0 uart none? Jestli budete mit nekdo naladu, prosim ozvete se mi na mail day@wo.cz nebo na icq 155088932. Diky Petr
Když chudý nevolí levici, je to stejná hloupost, jako když bohatý nevolí pravici.
31.7.2003 15:03 Petr Klima | skóre: 22
Rozbalit Rozbalit vše Dalsi zpusoby
Mimo jine se zkuste podivat na linuxdesktop.kn.vutbr.cz, clanek Dalkove ovladani. Seriak jako uart none by mel stacit.
31.7.2003 15:37 daymoon | skóre: 7 | blog: Zde žádný smysl nenajdete
Rozbalit Rozbalit vše Dalsi zpusoby
Diky, na prvni pohled by to bylo ono. Jak budu mit cas a naladu, zkusim to. Petr
Když chudý nevolí levici, je to stejná hloupost, jako když bohatý nevolí pravici.
31.7.2003 11:28 cervajs
Rozbalit Rozbalit vše Pekny clanek
funguje vam nahravani do vorbisu (myslim primo, ne postprocessingem)?
1.8.2003 22:24 Jakub
Rozbalit Rozbalit vše Re: Vorbis
>funguje vam nahravani do vorbisu (myslim primo, ne postprocessingem)? Zvuk v Ogg Vorbisu nejde rozumne ulozit do AVI souboru, to byste musel nahravat primo do kontejneru OGG nebo Matroska, coz pokud vim zadny Linuxovy program zatim neumi.
2.8.2003 16:03 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Vorbis
ulozit OGG do AVI jde (do AVI muzes nacpat cokoliv), ale neni to moc sikovne. viz Mplayer-users (konference).
31.7.2003 11:26 cervajs
Rozbalit Rozbalit vše alternativy k xawtv
Odpovědět | Sbalit | Link | Blokovat | Admin
s temi alternativami jste to malicko prehnal
nic co by se dalo rozumne pouzivat krome xawtv jsem nenasel
- dokaze vyhledat kanaly, editace kanalu
- funguje fullscreen
31.7.2003 15:01 Petr Klima | skóre: 22
Rozbalit Rozbalit vše alternativy k xawtv
A motv jste zkousel? To toho umi vic (postprocesing). Jestli vam staci jenom fullscreen bez editace, tak muj favorit je mplayer
1.8.2003 08:39 Als
Rozbalit Rozbalit vše alternativy k xawtv
Podivejte se na tvtime (http://tvtime.sourceforge.net/). S GUI je to sice slabsi, ale hlavne umi deinterlace v realnem case.
31.7.2003 12:00 plysak
Rozbalit Rozbalit vše vyber karty
Odpovědět | Sbalit | Link | Blokovat | Admin
No ja bych jen doporucil zajemcum o novou kartu si prohlednout seznam podporovanych karet, nez si ji pujdou koupit. Jinak taky muzou byt bez zvuku :-( (nenastavene registry BT8xx). Seznam je bud ve zdrojacich jadra linux-2.4.x/Documentation/video4linux/bttv/CARDLIST, nebo po rozbaleni baliku z http://bytesex.org/bttv/bttv-0.7.107.tar.gz (verze se casem meni ;-)).
Jiří Svoboda avatar 31.7.2003 12:42 Jiří Svoboda | skóre: 37 | blog: cat /dev/mind | Prostějov
Rozbalit Rozbalit vše Konecne si zase poradne zakomentuju... :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
Ovliven neustale opakovanym tvrzenim (a opakovanym i v tomto clanku), ze vsechny karty s BT8x8 bez problemu chodi, jsem si koupil kartu, kterou jsem v dany okamzik povazoval za nejlepsi (Hercules Smart TV Stereo). Ted vim, ze toto tvrzeni NENI pravdive.
Jde o to, ze ten cip je jen jadrem te karty, ale kolem nej je jeste spousta dalsiho HW. Takze je sice hezke, ze muzeme "ovladat" BT8x8, ale muze se stat, ze to bude asi tak vsechno. Ten dalsi HW je predevsim tuner, audio dekoder a GPIO rozhrani na ovladani dalsich veci (prepinani audio vstupu).
Pokud je konkretni karta v Linuxu opravdu primo podporovana, neni treba si s tim lamat hlavu, ovladac vsechno sam nastavi. Pokud ale podporovana neni, prijde na radu rucni prace. A odhalit nektere veci muze byt docela tvrdy orisek (spojeny s podrobnym prohlizenim udaju na jednotlivych soucastech/cipech na karte).
Konkretne ja jsem musel (castecne i experimentalne) sam prijit na to, jaky mam nastavit tuner a s jakymi parametry jeho modul loadnout a take jakym modulem s jakymi parametry spravne ozivit stereo audio dekoder.
Jediny na co jsem neprisel, je zapojeni GPIO, takze zvuk mam porad jen z televize, i kdyz prepnu na Video IN...

Alternativ je vic. Jednak nedavno v clanku na abclinuxu zminovany tvtime, sam bych pak jeste doporucil Zapping (umi taky i teletext).

A nakonec jeste vyjadreni k lirc. V jeho konfiguraci zase totiz nenajdete vsechny TV karty. Ale v tomto pripade to nastesti vubec nevadi. Asi vsechny TV karty totiz maji infra pripojene na I2C sbernici, a proto pro vsechny staci jedna sada modulu. Ty se zkompiluji at vyberete kteroukoliv kartu. Ten vyber je tam jen proto, aby se do /etc/ nakopiroval spravnej konfigurak (rozumej seznam s definicemi kodu jednotlivych tlacitek). A ten spravny konfigurak se tam da nakopirovat i manualne z lirc zdrojaku, da se stahnout z netu, pripadne vytvorit pomoci 'irrecord' (taky jsem musel delat).
31.7.2003 15:12 cartman | skóre: 22
Rozbalit Rozbalit vše Dart PC TV Live
Odpovědět | Sbalit | Link | Blokovat | Admin
Nevie niekto nahodou ako rozbehat LIrc s touto kartou?Potreboval by som nejake nastavenia pre lirc_gpio.
1.8.2003 08:43 Stage
Rozbalit Rozbalit vše Dart PC TV Live
Mne tato karta aj s dialkovym ide bez problemov a neviem o tom, ze by som spominanemu modulu daval nejake parametre. LIRC -ovi vsak tvrdim, ze je to nieco v zmysle FlyTV2000 alebo nieco take. (Neviem presne, nie som za svojim kompom).
6.8.2003 13:35 ondrej
Rozbalit Rozbalit vše Dart PC TV Live
Ano, je to FlyVideo2000. Ja som tu kartu tiez jednej znamej rozbiehal a ficala. Bohuzial, dialkove ovladanie k nej sa mi rozchodit nepodarilo
6.8.2003 14:24 cartman | skóre: 22
Rozbalit Rozbalit vše Dart PC TV Live
Ja sa s tym trapim strasne dlho. prosim pomoc. Potreboval by som postup ako si instaloval lirc a hlavne na aky PC.
1.8.2003 11:01 Milan
Rozbalit Rozbalit vše TV/FM ASUS
Odpovědět | Sbalit | Link | Blokovat | Admin
Mam kartu ASUS s cipem philips 7134, v linuxu funguje bez problemu se stereo zvukem a teletextem, ted jeste musim rozbehat dalkove ovladani - je tam usb ir prijimac a ukladani videa do avi (divx nebo xvid), co na to pouzivate?
2.8.2003 13:58 User682 | skóre: 38 | blog: aqarium | Praha
Rozbalit Rozbalit vše dik za odkaz
Odpovědět | Sbalit | Link | Blokovat | Admin
zdravim,
diky za odkaz v clanku na galerii karet podporovanych pres bttv ovladace. neco takoveho jsem dlouho shanel.
zatim goldenfish
Stanislav Brabec avatar 2.8.2003 22:00 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše ATI All In Wonder
Odpovědět | Sbalit | Link | Blokovat | Admin
ATI All In Wonder skutečně používají často jiný čip. Projekt KATOS, který se snažil přidat jeho podporu do jádra, je již 4 roky mrtvý, takže existuje pouze GATOS - podpora pomocí XVideo ovladače pro X11 a miniaturního jaderného modulu. Základní funkce chodí. Snímání chodí pouze v jediném rozlišení, vhodném pro NTSC. Evropský teletext nechodí. S XVideo ovladači si poradí pouze AVView a XawTV.
3.8.2003 14:52 Petr Slansky | skóre: 30 | blog: slansky
Rozbalit Rozbalit vše ATI TV Wonder stereo?
Odpovědět | Sbalit | Link | Blokovat | Admin
Funguje nekomu ATI TV Wonder pod Linuxem se stereo zvukem? Me se to nedari. Kdyz jsem byl v GB, tak tam mi stereo fungovalo i v Linuxu, ale tam maji jinou zvukovou normu. V CZ mi funguje stereo jen ve Windows, v Linuxu mam sice kvalitnejsi obraz ale jen mono zvuk. Mozna by to chtelo doladit driver... :-( Nebo mam jen neco blbe nastavene??

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.