Linux E X P R E S

Facebook

Jak v Linuxu zprovoznit DVB-T tuner, i když není detekován

tv.png

Následující řádky vám pomohou zprovoznit v Linuxu nejen DVB-T zařízení. Aplikací tohoto jednoduchého návodu si do systému přidáte podporu pro videokamery, dálková ovládání a další. To vše díky API V4L a projektu media build.


Pokud teprve zvažujete nákup USB DVB-T tuneru, může vám při výběru napomoci tento aktualizovaný seznam DVB-T USB zařízení. Nerad bych vás děsil, ale někdy se opravdu „zadaří“ a zakoupený tuner vám v systému nebude fungovat, byť je v seznamu vedený jako bezproblémový. Za tímto problémem je revize zařízení, která s sebou často přináší změnu používaného čipu.

Když koupíte špatně nebo je dokumentace nepřesná

To je i případ mnou používaného MSI DigiVox. Tento tuner používal čip Afatech AF9015, který měl podporu v linuxových jádrech od verze 2.6.28. S novou revizí se čip změnil na RTL2832, jenž má podporu od verze jádra 3.6.0. Protože používám systém Debian 7 (jádro 3.2.0), měl jsem zhruba tyto možnosti zprovoznění tuneru:

  • kompilaci nového jádra včetně ovladače zařízení (velmi zdlouhavé)

  • kompilaci modulů tuneru pro stávající jádro (modul pro RTL28xx se mi nikdy nepovedlo zkompilovat bez chyb)

  • využití projektu media build (jednoduché a rychlé řešení)

Již zřejmě tušíte, že jsem zvolil cestu nejmenšího odporu v podobě projektu media build. Tento projekt vám do stávajícího systému přidá moduly a potřebný firmware pro mnoho zařízení (cca 530 modulů). Moduly nejsou určeny jen pro DVB-T/C/S, ale i pro videokamery, střihové karty, web kamery a další. Úroveň podpory jednotlivých zařízení v Linuxu naleznete v seznamu podporovaných zařízení na webu LinuxTV. Převážnou většinu tvoří zařízení využívající API V4L (což je výhoda).

Nyní se však dejme do práce, ať si taktéž můžete dopřát sledování televizního vysílání v počítači. Nemusíte se ničeho obávat.

Jak si poradit s neposlušným tunerem

Zapojte tuner do USB a otevřete příkazový řádek. Následujícím příkazem zjistíte ID zařízení.

lsusb
(výpis mého systému)
Bus 001 Device 002: ID 1d19:1101 Dexatek Technology Ltd. DK DVB-T Dongle 

Dalším příkazem zjistíte, zdali jádro Linuxu nahrálo moduly pro zařízení.

lsmod | grep dvb

Výpis tohoto příkazu vám dává možnost přeskočit následující řádky a začít s laděním programů. Tedy za předpokladu, že se nepokoušíte zprovoznit i jiné zařízení, které je součástí projektu. Pokud se vám nevypíše žádný zavedený modul, pokračujte v následujícím. Pomocí správce balíků nainstalujte (potřebujete práva superuživatele):

  • linux-headers – pokud neznáte verzi jádra, zadejte do příkazového řádku linux-$(uname -r)

  • make

  • gcc

  • git

  • patch

  • patchutils

  • libproc-processtable-perl ("perl-Proc-ProcessTable")

  • kernel-devel (jen pro OpenSuSE a Fedoru)

  • libdigest-sha-perl (jen pro Debian a Ubuntu)

Po nainstalování všeho potřebného se vraťte do příkazového řádku a postupně jako uživatel zadejte:

git clone git://linuxtv.org/media_build.git
cd media_build
./build

Zadáním posledního příkazu se stáhne aktuální verze firmwaru pro několikero zařízení a započne kompilace modulů pro jádro. Tento proces zabere jistý čas (cca 30 minut na dvoujádru Celeron 1,7 GHz, 3 GB RAM). Skončí-li kompilace bez chyb, zadejte (jako superuživatel) příkaz:

make install

Nyní se do jádra přidají zkompilované moduly. Po dokončení tohoto procesu vám doporučuji restartovat počítač.

Občas však kompilace skončí chybou a nedojde tak k nainstalování modulů. Většinou se mi toto stávalo u počítačů, kde bylo nainstalováno několik verzí linux-headers. Řešení, které zatím vždy fungovalo, je jednoduché. Místo příkazu make install zadejte (stále jako uživatel) tyto:

make distclean // vymaže již zkompilované součásti
make xconfig // toto skončí sice chybou, ale zvolí správnou verzi linux-headers
./build // nová kompilace

Po těchto krocích byste měli mít v Linuxu funkční ovladač pro váš tuner. Je-li však výpis příkazu lsmod | grep dvb i nadále prázdný, vlastníte nějaké exotické zařízení a je zřejmě čas uvažovat o jeho výměně u prodejce, nebo posečkat, až se jeho podpora dostane do linuxového jádra.



Ladění televizních programů

Možností, jak naladit TV programy v Linuxu, je několik. Uvádím pouze ty nejzákladnější, se kterými byste neměli mít problém.

Me TV

Nemáte-li příkazový řádek rádi, je zde tato poměrně jednoduchá aplikace. Lze s ní nejen sledovat TV obsah v počítači, ale taktéž ony programy naladit. S aplikací se do systému nainstaluje několik knihoven, ale hlavně utilitka dvb-apps, pomocí níž naladíte požadovaný TV obsah.

Při prvním spuštění Me TV vás přivítá průvodce laděním s názvem používaného zařízení. Předpokládám, že ještě nemáte vytvořený soubor channels.conf. Automatické hledání vám taky nemohu doporučit, neboť v mém případě nebyl nalezen jediný multiplex. Zbývá střední cesta. Skenování frekvencí za použití souboru. Potřebný soubor jménem cz-All naleznete v /usr/share/dvb/dvb-t/cz-All.

Po výběru souboru, stiskem tlačítka Následující, započne samotné skenování přednastavených frekvencí. V následujícím okně pouze potvrdíte nalezené programy a můžete začít sledovat své oblíbené pořady.

dvb-apps

Zřejmě nejzákladnější utilitka ovládaná z příkazového řádku, se kterou se do adresáře /usr/share/dvb/ uloží mnoho přednastavených frekvencí (z toto těží již zmíněný Me TV) z různých koutů světa, a to nejen pro terestriální, ale i pro satelitní a kabelové vysílání. Výstupem utilitky může být soubor channels.conf. Použití je jednoduché, stačí do příkazového řádku zadat (pro DVB-T):

scan /usr/share/dvb/dvb-t/cz-All > channels.conf

Jednoduše pořízený soubor channels.conf pro použití v dalších aplikacích.

w-scan

Opět jednoduchá utilitka ovládaná z příkazového řádku. Narozdíl od dvb-apps nepoužívá soubory s přednastavenými frekvencemi, ale automaticky vybere zařízení a provede skenování dostupných frekvencí. Další výhodou je výstup do několika formátů channels.conf.

w_scan > channels.conf

Vytvoří channels.conf. Možností je však více a w-scan dokáže tyto soubory generovat na míru danému programu. Ukázka pro jednotlivé aplikace, jež jsou uvedeny v závorkách.

w_scan -G > channels.conf		(dvbsrc plugin) 
w_scan -k > channels.dvb		(kaffeine)
w_scan -L > channels.xspf		(VLC) 
w_scan -M > channels.conf		(mplayer nebo vdr)
w_scan -X > channels.conf		(tzap/czap/xine)

Závěr

Snad vám dnešní pojednání dopomohlo ke zprovoznění televizního vysílání v počítači. Jen pro úplnost ještě dodávám názvy aplikací, které vám umožní sledování vašich oblíbených pořadů. Me TV již bylo zmíněno, ale jsou zde i další (a mnohdy lepší) alternativy, jako Xine, Totem, Kaffeine, VLC, Xawtv a další. Přeji vám příjemnou zábavu.



Diskuze (36) Nahoru