Im Zeitalter leistungsfähiger Bussysteme und Netzwerke bietet sich der PC zunehmend als Alternative zum Fernseher an. Mit den aktuellen Kernel-Versionen ist der TV-Karten-Support endgültig den Kinderschuhen entwachsen: Die meisten Karten und Chipsätze werden unterstützt, und es gibt eine wachsende Anzahl von Programmen zur Darstellung und Verarbeitung der Fernsehbilder.
Vor dem Fernsehvergnügen steht meist die Kaufentscheidung, die hier ausnahmsweise einmal nicht von der Verfügbarkeit von Kernel-Treibern diktiert wird, sondern nur von der Funktionalität und/oder dem Preis, denn bei der Treiberentwicklung für TV- und verwandte Hardware hat Linux gegenüber Windows eindeutig die Nase vorn. Neben den reinen TV-Karten, die sich untereinander in ihren Preisen und Leistungsmerkmalen unterscheiden, drängen inzwischen auch die ersten DVB-Karten auf den Markt. Sie sind erheblich teurer und derzeit nur für Satellitenempfang geeignet.
Für die ersten Schritte sind die TV-Karten von Hauppauge [1] und Terratec eine gute Wahl. Beide Modelle basieren auf dem Brooktree-Chipsatz, der von Linux sehr gut unterstützt ist. Das beiliegende Installationshandbuch beschränkt seine Ausführungen in der Regel auf den Einsatz unter Windows. Informationen zur Installation unter Linux finden Sie bei den Kernelquellen unter /usr/src/linux/Documentation/video4linux/bttv.
Unterstützt oder nicht?
Der vorliegende Artikel beschreibt unter anderem, welche Operationen am Standard-Kernel vorgenommen werden müssen, um die Treiber für die TV-Karten einzubinden. Einige Distributoren liefern "ihre" Linux-Kernel bereits mit den betreffenden Patches (i2c, bttv) aus. Sie sollten daher mit
hrefna:/usr/src/linux# grep I2C .config
(bei 2.2.19) oder
hrefna:/usr/src/linux# grep BT848 .config
(bei 2.4.x) in der Kernel-Konfigurationsdatei /usr/src/linux/.config prüfen, ob diese Treiber schon vorhanden sind, bevor Sie Änderungen vornehmen.
Wenn dieser grep-Befehl keine Treffer liefert, muss der Kernel-Patch noch eingespielt werden.
Wir setzen in diesem Artikel voraus, dass Ihr Rechnersystem nicht älter als zwei Jahre ist, über ausreichend Speicher (128 MB oder mehr) sowie eine Soundkarte verfügt, und noch einen freien Steckplatz am PCI-Bus zu bieten hat.
Vor dem Einbau der Karte in den Computer lohnt es sich, einen Blick auf die beiliegende Installationsanleitung zu werfen und zu prüfen, ob alle genannten Kabel vorhanden sind. Zusätzliche Kabel sind im Fachhandel erhältlich.
Die Kernel-Version 2.2.19 bringt die notwendigen Treiber fast komplett mit. Die Treiberkollektion selbst setzt sich aus folgenden Bestandteilen zusammen:
Für den Hausgebrauch genügt es in der Regel, auf die im Kernel enthaltenen Treiber zurückzugreifen. Die Module für i2c sind leider nicht in den 2.2.19er-Standarkernel integriert. Daher zeigen wir an dieser Stelle kurz, wie man sie in den Kernel einbaut. Voraussetzung dafür ist, dass Sie die Kernel-Quellen unter /usr/src/linux installiert haben. Die i2c-Treiber bringen ein Skript zum Erzeugen der notwendigen Patchdatei mit, das nach dem Entpacken nur noch aufgerufen werden muss:
hrefna:/tmp# tar -xzvf i2c-2.5.5.tar.gz hrefna:/tmp# cd i2c-2.5.5/ hrefna:/tmp/i2c-2.5.5# mkpatch/mkpatch.pl . /usr/src/linux > /tmp/i2c-patch
Wenn die Patchdatei erstellt ist, wird sie auf die übliche Weise in den Kernel integriert:
hrefna:/tmp/i2c-2.5.5# cd /usr/src/linux hrefna:/usr/src/linux# patch -p1 -E < /tmp/i2c-patch
Danach müssen im Kernel die folgenden Optionen aktiviert und der Kernel neu übersetzt werden:
Loadable module support —> [*] Enable loadable module support
erlaubt es, einen modularen Kernel zu bauen, der Funktionalität bei Bedarf hinzu lädt.
Character devices —>
I2C support —>
<M> I2C support (NEW)
<M> I2C bit-banging interfaces (NEW)
Video For Linux —>
<M> Video For Linux
<M> BT848 Video For Linux (NEW)Mit diesen Einstellungen bestimmen Sie, dass die TV-Karten-Treiber als Kernel-Module erzeugt werden. Da Fernsehen ohne Ton nur die halbe Miete ist, aktivieren Sie zudem die Kernel-Unterstützung für den Soundchip der Karte:
Sound —>
<M> Sound card support
<M> OSS sound modules (NEW)
Additional low level sound drivers —>
[*] Additional low level sound drivers (NEW)
<M> MSP3400 Audio for BT848 (NEW)Bei Linux 2.4 sind die Treiber für bttv standardmäßig leider nicht dabei; lediglich einige Distributoren liefern die Kernel mit den entsprechenden Treibern aus. Patches für die aktuellen 2.4er-Kernel sind auf http://bytesex.org/bttv/listing.html zu finden. Sie sind an der Endung .diff.gz erkennbar und werden mit
hrefna:/usr/src/linux# patch -p1 -E < /tmp/bttv-0.7.68-2.4.5.diff.gz
in den Kernel integriert. Danach ist eine Neukompilierung des Kernels nötig, da die notwendigen Module noch konfiguriert werden müssen.
Zum Betrieb der TV-Karte sollten folgende Optionen aktiviert sein:
Loadable module support —>
[*] Enable loadable module support[…]
Character devices —>
I2C support —>
<M> I2C support
<M> I2C bit-banging interfaces[…]
Multimedia devices —>
<M> Video For Linux
Video For Linux —>
[*] V4L information in proc filesystem
— Video Adapters
<M> BT848 Video For Linux[…]
Sound —>
<M> Sound card support
<M> TV card (bt848) mixer support
Für die Darstellung der Fernsehbilder bieten sich derzeit zwei Programme an: xawtv [5] und das K-tool dieses Monats, kwintv [6].
Beide setzen auf bttv [4] auf. Wir gehen an dieser Stelle nur auf xawtv ein, weil es einfacher zu bedienen ist und nicht so hohe Anforderungen an die darunterliegende Hardware stellt.
Vor dem endgültigen Fernsehvergnügen ist noch etwas Arbeit nötig, denn wir haben zwar bereits einen Kernel mit den nötigen Modulen gebaut, diese Module müssen jedoch noch vom Kernel geladen werden, damit die entsprechenden Gerätedateien richtig angesprochen werden können.
Das Laden der Module kann mit dem Befehl insmod manuell erfolgen. Komfortabler ist es jedoch, wenn sich der Kernel automatisch darum kümmert. Dazu sind ein paar Einträge in der Datei /etc/conf.modules bzw. /etc/modules.conf hinzuzufügen.
Für Linux 2.2.19 sollte die Datei folgende Einträge enthalten:
post-install bttv insmod tuner options tuner type=5 post-remove bttv rmmod tuner[…] alias char-major-10-200 tun alias char-major-81 videodev alias char-major-81-0 bttv
Für Linux 2.4.5 sind folgende Einträge nötig:
options bttv pll=1 radio=0 card=0 options tuner type=0 options msp3400 once=1 simple=1[…] post-install bttv /sbin/modprobe "-k" tuner; /sbin/modprobe "-k" msp3400
xawtv wird gestartet, indem man in einem beliebigen X-Terminal den Befehl xawtv & eingibt. Es öffnen sich das Fenster für die Anzeige des Fernsehbildes und – beim ersten Start – das xawtv-Hilfebild.
Nach einem Klick auf OK wechselt xawtv ins Anzeigefenster. Dort kann mit den Cursor-Tasten (nach oben, nach unten) ein Fernsehkanal ausgewählt werden. Durch einen Klick mit der rechten Maustaste öffnet sich das Menü, das in Abbildung 1 zu sehen ist.
Bei Frequency Table wählen Sie in unseren Breiten europe cable aus; alle anderen Einstellungen können übernommen werden. Damit steht dem Fernsehvergnügen nichts mehr im Weg.
Glossar
DVB
"Digital Video Broadcasting"; Aussendung von Fernsehsignalen in digitaler Form (MPEG2-komprimiert).
Tuner
bestimmt die Frequenz und damit den Fernsehkanal.
i2c
Bussystem für Chips bei integrierter TV-Hardware.
bttv
Eine Zusammenstellung von Treibern für den Brooktree-Chipsatz, der bei den meisten TV-Karten zum Einsatz kommt.
Infos
[1] Hauppauge-Webseite: http://www.hauppauge.de/
[2] Das Video4Linux-Projekt: http://roadrunner.swansea.uk.linux.org/v4l.shtml
[3] i2c-Treiber für Linux: http://www2.lm-sensors.nu/~lm78/download.html
[4] bttv: http://bytesex.org/bttv/
[5] xawtv: http://bytesex.org/xawtv/
[6] kwintv: http://www.mathematik.uni-kl.de/~wenk/kwintv/