Úvod

Kategorie








Odkazy

Kontakt
Galerie
MHD
Fotoalba
Momentky
Videotéka
Poslouchám...

Kalendář akcí

«Srpen 2008»
PoÚtStČtSoNe
    123
45678910
11121314151617
18192021222324
25262728293031

Náhodně

Bordelíček
  Deset hříchů v…
Mobility
  Novinky na XChatu pro…
Mobility
  Pojďte na WAGAT !

Poslední komentáře

Jura (v úterý)
  Asus MyPal A636N bude…
Mike (21.8.2008)
  µ: Konečně…
Georgo (18.8.2008)
  µ: Tak opět…
carnero (18.8.2008)
  µ: Tak opět…
NarkotiQUE (17.8.2008)
  Cesta domů SC…
Ondřej Vomočil (17.8.2008)
  µ: Servis ASUS…

Odjinud

  Plán vývoje…
  Mozilla Labs…
  Internet ohrozila…
  Otevřený telefon je…

Poslední jízdy

DPP DPP #8348
  T3R.P (5×)
DPP DPP #3302
  81-71BARS (1×)
DPP DPP #3313
  81-71BARS (6×)
DPP DPP #3328
  81-71BARS (6×)
DPP DPP #2690
  81-71 (1×)
Vše čím jsem jel...

Doporučuji

  Hosting BlueBoard.cz

Pinnacle 330e v Linuxu

vloženo 25.5.2008, 12:00 do kategorie Deníček
 

Tuner Pinnacle PCTV Hybrid Stick 330e Když jsem si loni kupoval Pinnacle PCTV Hybrid Stick 330e, naivně jsem doufal, že mi v Linuxu bude bezproblémově fungovat. Vycházel jsem z internetových zdrojů (především ABCLinuxu), kde byl popsán způsob rozchození modelu 320e. Ten však ve skutečnosti používá jiný chip, tak jsem byl odkázán na nekonečné čtení diskuzí a čekání na zázrak. A ten se stal…

První vlaštovkou byl asi rok zpět driver em28×x, spolu s xc3028. V té době byly tyto dva tunery určeny k provozu hybridních tunerů na bázi kernelového modulu. Pod mým tunerem však korektně fungovala jen analogová část a infraport. Tehdy mi to stačilo, na analog jsem byl zvyklý a plně si vystačil se čtveřicí kanálů ČT 1, ČT 2, Nova a Prima. Později však má touhla přešla i k dalším dvěma stanicím České televize (ČT 24 a ČT 4 Sport) a já pro jejich sledování musel restartovat do Windows.

Před nedávnem se ale situace otočila. Markus Rechberger výrazně pokročil a představil userspace driver pro hybridní tunery, které pro DVB-T používají demodulator drx3973d. Tehdý mé pokusy zprovoznit tuner dopadly téměř dobře. Vyskytly se problémy s instalací démonka, který přepínal mezi analogovým a digitálním tunerem. Démonka se mi povedlo modifikovat tak, aby pod Arch Linuxem fungoval správně.

Dnes je to ale zase o něco snažší. Samotný driver už nejsou dvě samostatné části, ale jedna, není potřeba démonek a dokonce ani žádná speciální pravidla do udev.

Instalace do Archlinuxu

Jelikož jsem majitelem distribuce ArchLinux, popíšu postup právě pro něj. Řídil jsem se Installation Guide na mcentral.de. Jako kernel mám aktuálně verzi 2.6.25.

Veškerá instalace bude probíhat pod uživatelem root. Je nutné se tedy přihlásit…

su -

Jako první je potřeba připravit zdrojový kód aktuálního kernelu. Archlinux bohužel neobsahuje balíček, obsahující pouze zdrojové kódy, musíme si je tedy sami vygenerovat. K tomu nám poslouží nástroj ABS.

pacman -Sy abs

Po jeho instalci synchornizujeme celou databázi (to může trvat i několik minut).

abs

Přejdeme do adresáře s PKGBUILDem baličku kernel26 a spustíme generování.

cd /var/abs/core/kernel26
makepkg --asroot

Započne stahování kernelu a patchů, následně rozbalení a opatchování. Jakmile skončí patchování a začne kompilace, můžeme makepkg zrušit stiskem kláves CTRL+C:

patching file security/security.c.orig
patching file security/selinux/hooks.c

^^ Zde se dokončovalo patchování a zahájila se kompilace. Můžeme proces přerušit

  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc

Nyní máme v adresáři src/ opatchovaný zdrojový kód linuxového jádra. To si přesuneme do /usr/src a vytvoříme potřebný symbolický odkaz

mv src/linux-2.6.25 /usr/src
ln -s /usr/src/linux-2.6.25 /lib/modules/2.6.25-ARCH/source

Správnost si lze ověřit sekvencí příkazů, které zjistí existenci souborů. Ty jsou nutné pro kompilaci vlastního modulu.

ls -hal /lib/modules/$(uname -r)/source
ls -hal /lib/modules/$(uname -r)/source/drivers/media/dvb/dvb-core/dmxdev.h
ls -hal /lib/modules/$(uname -r)/source/drivers/media/dvb/dvb-core/dvb_frontend.h
ls -hal /lib/modules/$(uname -r)/source/drivers/media/dvb/dvb-core/dvb_demux.h
ls -hal /lib/modules/$(uname -r)/source/drivers/media/dvb/dvb-core/dvb_net.h
ls -hal /usr/src/linux/drivers/media/dvb/dvb-core/dmxdev.h
ls -hal /usr/src/linux/drivers/media/dvb/dvb-core/dvb_frontend.h
ls -hal /usr/src/linux/drivers/media/dvb/dvb-core/dvb_demux.h
ls -hal /usr/src/linux/drivers/media/dvb/dvb-core/dvb_net.h

Zde je záměrně nechávám $(uname -r). Je nutné driver kompilovat v takovém kernelu, jako jsme si před chvílí připravili zdrojové kódy.

Pokud je vše v pořádku, můžeme překročit k samotné kompilaci a instalaci driveru. Jako správce verzí je v projektech Video4Linux používán Mercurial. Ten má Archlinuxu stejnojmený balíček. Přejdeme do domovského adresáře a stáhneme si mercurial pomocí pacmanu.

cd ~
pacman -Sy mercurial

Následuje stažení zdrojového kódu, jeho kompilace a instalace.

hg clone http://mcentral.de/hg/~mrec/em28xx-new
cd em28xx-new
./build.sh build
./build.sh install

Proto, aby mohl běžný uživatel s tunerem pracovat, musí být ve skupině VIDEO

adduser USERNAME video

A tím je vše hotovo. Nakonec, před připojením, doporučuji počítač restartovat.

shutdown -r

Podle známých problémů může tuner zlobit, pokud je připojen během bootování, případně při restartu. Osobně jej raději připojuji až když systém naběhne.

V dmesgu se po připojení zobrazí něco takového:

usb 1-5: new high speed USB device using ehci_hcd and address 6
usb 1-5: configuration #1 chosen from 1 choice
em28xx new video device (2304:0226): interface 0, class 255
em28xx: device is attached to a USB 2.0 bus
em28xx #0: Alternate settings: 8
em28xx #0: Alternate setting 0, max size= 0
em28xx #0: Alternate setting 1, max size= 0
em28xx #0: Alternate setting 2, max size= 1448
em28xx #0: Alternate setting 3, max size= 2048
em28xx #0: Alternate setting 4, max size= 2304
em28xx #0: Alternate setting 5, max size= 2580
em28xx #0: Alternate setting 6, max size= 2892
em28xx #0: Alternate setting 7, max size= 3072
input: em2880/em2870 remote control as /class/input/input11
em28xx-input.c: remote control handler attached
trying to set disabled gpio? (00)
tuner' 0-0061: chip found @ 0xc2 (em28xx #0)
attach inform (default): detected I2C address c2
attach_inform: tvp5150 detected.
tvp5150 0-005c: tvp5150am1 detected.
successfully attached tuner
em28xx #0: V4L2 VBI device registered as /dev/vbi0
em28xx #0: V4L2 device registered as /dev/video0
em28xx-audio.c: probing for em28x1 non standard usbaudio
em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
em2880-dvb.c: DVB Init
analog tv open()
modelock active!
vbi open()
modelock active!
DVB: registering new adapter (em2880 DVB-T)
DVB: registering frontend 0 (Micronas DRX3973D DVB-T)...
em28xx #0: Found Pinnacle Hybrid Pro (em2882)

A tím je tuner připravený k použití. V systému se objeví pár nových zařízení:

root@audi ~ #  ls -hal /dev/video0
lrwxrwxrwx 1 root root 10 25. kvě 11.31 /dev/video0 -> v4l/video0

root@audi ~ #  ls -hal /dev/dvb/adapter0/
celkem 0
drwxr-xr-x 2 root root       0 25. kvě 11.31 .
drwxr-xr-x 3 root root       0 25. kvě 11.31 ..
crw-rw---- 1 root video 212, 4 25. kvě 11.31 demux0
crw-rw---- 1 root video 212, 5 25. kvě 11.31 dvr0
crw-rw---- 1 root video 212, 3 25. kvě 11.31 frontend0
crw-rw---- 1 root video 212, 7 25. kvě 11.31 net0

O přepínání mezi analogem a digitálem se stará sám driver. Při čtení z video0 pustí analogovou část (a DVB hlásí Resource busy) a naopak.

Jak naladit?

Ještě v krátkosti popíšu způsob naladění digitálních stanic (pro Prahu) a způsob přehrání. Pro přehrávání používám mplayer.

Jako root nainstalujeme balíčky.

pacman -Sy linuxtv-dvb-apps mplayer

Dále již pracuji jako běžný uživatel. Je nutné si vytvořit soubor s frekvencemi Multiplexů v Praze (stačí zkopírovat kód níže)

# DVB-T Praha (Prague, Czech Republic)
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
# CRa - Ceske radiokomunikace
T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
# CDG - Czech Digital Group
T 674000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE
# Telecom
T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE

Naladění stanic obstará nástroj scan. Jeho výstup přesměruji do channels.conf. Tento formát používá většina přehrávačů v Linuxu.

scan cz-Praha > channels.conf

Na obrazovce se vypíše, jaký tuner se použivá a průběh hledání. Na konci vypíše do souboru channels.conf stanice a jejich údaje nutné pro přehrávání.

Jak jsem zmínil, pro přehrávání televize používám mplayer. Ten potřebuje channels.conf ve svém adresáři.

mkdir .mplayer
cp channels.conf .mplayer/channels.cof

A nakonec, přehráváme :-)

mplayer dvb://"CT 1"

Doporučuji si ještě prohlédnout channels.conf a upravit si názvy stanic. Například u mě má Nova nesmyslně na začátku mezeru. Pro hezčí obraz je vhodné také zapnout korekci prokládání.

mplayer dvb://"CT 1" -vf pp=lb
Ukázka ČT1. Velký náhled cca 600kB!

A zase mám o důvod méně restartovat do Windows :-)

Komentáře

Žádné komentáře zde nejsou. Buď první!

Nový komentář







Prosím, nevyplňujte: