Hollywood auf dem Desktop

Fernsehen unter Linux

01.09.2001 Ob der Rechner als Ersatz für ein TV-Gerät oder als Zweitfernseher gedacht ist: Fernsehen unter Linux fällt leichter als oft angenommen.

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.

Die passende Hardware

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.

Kernel-Konfiguration bei Linux 2.2

Die Kernel-Version 2.2.19 bringt die notwendigen Treiber fast komplett mit. Die Treiberkollektion selbst setzt sich aus folgenden Bestandteilen zusammen:

  • dem Treiber für Video4Linux,
  • dem Treiber für den Chipsatz der Karte,
  • dem Treiber für den Sound-Chip der Karte,
  • dem Treiber für den Tuner und
  • einem Treiber für i2c [3].

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)

Kernel-Konfiguration bei Linux 2.4

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

Die Applikationen

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.

Abbildung 1: Das xawtv-Konfigurationsmenü

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.

Abbildung 2: Fernsehvergnügen mit xawtv

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.

Der Autor

Anne Forker hat vor zwei Jahren ihr Herz an Linux verloren. Sie lebt in München, wo sie als Systemadministratorin für Linux und Unix arbeitet.

Einem Freund empfehlen    Druckansicht beenden Bookmark and Share
Kommentare