Videokarten - Bt848-basierte Videokarten unter Linux
von Kester Habermann (Kester.Habermann@unix-ag.org)

In diesem Kurzvortrag wird ein Überblick über die Möglichkeiten, Bt848-basierte Videokarten unter Linux einzusetzen, gegeben.

Videokarten - Bt848-basierte Videokarten unter Linux

Möglichkeiten

Die Bt848-basierten Karten ermöglichen es unter X11 sowohl in einem Fenster, als auch bildschirmfüllend fernzusehen. Es kann dabei umgeschaltet werden zwischen dem Signal des eingebauten TV-Tuners und dem Signal des Video- und SVHS-Eingangs.
Einige (aber nicht alle) Karten sind Stereo- und Zweikanaltonfähig, allerdings wird dies unter Linux noch nicht für all jene unterstützt.

Weiterhin ist es möglich Einzelbilder abzuspeichern, sowie ganze Sequenzen zu digitalisieren, sofern der Festplattendurchsatz dies zuläßt.

Das Anzeigen (und Abspeichern) von Videotext und Intercast ist bei allen diesen Karten in Software möglich. Einige der Karten besitzen Videotext-Decoder in Hardware, die aber nur z. T. bisher von dem Linux-Treiber unterstützt werden.

Einige der Karten verfügen ebenfalls über einen Radio-Tuner, mit dem FM-Radio empfangen werden kann. Auch hier gilt, daß der Linux-Treiber dies noch nicht bei allen Karten unterstützt.

Welche Karten welche Möglichkeiten bieten und wie weit diese unter Linux unterstützt werden steht auch in dem ausführlichen Artikel im Februar 1998 Heft des Linux Magazins (siehe unten). Dort findet sich auch eine ausführliche Beschreibung sowie weitere URLs.

Anforderungen

Bisher werden nur PCI-Karten mit dem Chip Bt848 von Brooktree unterstützt. Dies sind u. a. Hauppauge Win/TV(/Radio) PCI und Miro PCTV. Diese Karten laufen nicht mit allen Grafikkarten und nicht mit allen Mainboards zusammen. Eine Kompatibilitätsliste ist auf der Seite der Freiburger Linux User Group (siehe unten) zu finden.

Falls der Audio-Ausgang der TV-Karte an den Audio-Eingang der Soundkarte angeschlossen wird, muß die Soundkarte ebenfalls unterstützt werden.

Installation

Achtung: Bei Hauppauge-Karten wird eine Sicherung des EEPROMS empfohlen, siehe /usr/doc/packages/bttv/README.Hauppauge.

Bei diese S.u.S.E.-Distribution sind bereits einige Kernel-Module für Bt848-basierte Karten, sowie das Programm XTVscreen dabei. Dokumentation dazu steht unter /usr/doc/packages/bttv/.

Ich habe die Version des Modules bttv und der dazugehörigen Module, die bei dem Programm XawTV dabei waren genommen und für den Standard-Kernel der S.u.S.E. übersetzt und empfehle diese zu verwenden. Wenn der Kernel neu übersetzt wird, sind auch die Module mittels rpm --rebuild xawtv-2.08-7.src.rpm neu zu übersetzten. Diese RPM enthält die bttv-Module, XawTV und KRadio. Weiterhin liegt noch ein Paket mit VideoteXt und vbidecode dabei.

Als erstes sind die Pakete mittels rpm -i zu installieren

Das Laden der Module per kerneld klappt leider nicht richtig, daher werden diese per init-Script geladen. Es ist dazu in dem Script /etc/rc.d/init.d/bttv evtl. der Tuner-Typ zu konfigurieren. Falls beim beim Starten von xawtv folgende Fehlermeldung erscheint

Server supports DGA extention (version 1.0)
X-Server supports VidMode extention (version 0.8)
  available video mode(s): 1024x768 768x576 352x240
dga: base=0xf0000000, width=1024
v4l: base=0xf1000000
v4l and dga disagree about the framebuffer address
you probably want to check out the vidmem argument of the bttv module
ist in /etc/rc.d/init.d/bttv die Zeile in der bttv geladen wird wie folgt zu ändern:
        xinsmod bttv            radio=1 vidmem=0xf00
Das Argument für vidmen ist entsprechend der Fehlermeldung anzupassen.

Mittels /etc/rc.d/init.d/bttv start werden die Module geladen. Mit dem Parameter restart können nach Änderungen im Script oder falls die Module sich "verschluckt" haben diese neu geladen werden. Dieses Script kann in den üblichen Bootvorgang integriert werden.

Fernsehen

Ein kleines Programm, um fernzusehen ist XawTV. XawTV kommt ohne aufwendige Grafikbibliotheken aus und besitzt alle wichtigen Funktionen. Auf dieser CD ist ein RPM mit XawTV für S.u.S.E.-Linux enthalten; in dem Paket ist auch eine Beispieldatei mit der Kabelbelegung für Kaiserslautern enthalten.

Wenn die Kernel-Module für die Videokarte und die Soundkarte geladen sind, kann XawTV auf 32-Bit-Farbtiefe X-Displays wie folgt gestartet werden: xawtv -b32 (bei anderer Farbtiefe ist der entsprechende Wert einzusetzen). Es empfiehlt sich für XawTV mit mindestens 16-Bit-Farbtiefe zu arbeiten.

Mit der Linken Maustaste im Bildfenster läßt sich ein Menu mit den in der Konfigurationsdatei definierten Sendern (Stations) aufklappen, in dem der Kanal gewechselt werden kann. Die rechte Maustaste öffnet ein Menu mit Konfigurationsmöglichkeiten und einigen Kommandos wie Bilder speichern. Zu sämtlichen Aktionen lassen sich Tastaturkürzel definieren.

Beispiel einer Arbeitsumgebung, in dem der Aufruf von xawtv, sowie das Fernsehfenster, die Senderliste und das Konfigurationsfenster zu sehen sind (zur Vergrößerung Bild anklicken).

Um ein PAL-Bild im Vollbild anzuzeigen, ist es am besten, eine zusätzliche Auflösung von 768x576 in der XF86Config zu definieren (siehe Beispiel in xawtv.example in /usr/doc/packages/xawtv/). XawTV schaltet dann bei Wahl von Vollbild automatisch auf den anderen Videomode um.

Wenn XawTV auch recht simpel ist, hat es meiner Meinung nach einige Vorteile. Man hat so beim Fernsehen nicht so viele "störende" Widgets auf dem Bildschirm. XawTV läßt sich auch als normaler Benutzer starten, lediglich v4l-conf benötigt ein s-Bit. Andere Programme sind das Motifprogramm XTVscreen (bei der S.u.S.E. dabei) sowie das Qt-Programm xWinTV und das GTK-Programm Gnomovision (die beiden letzteren sind noch etwas instabil).

Videotext

Mit dem Programm VideoteXt lassen sich Videotextseiten ansehen und als diverse Formate exportieren. Das Programm ist als Binary statisch mit OpenView gelinkt auf dieser CD, so daß es auch ohne OpenView läuft. Um mit VideoteXt interaktiv zu arbeiten, muß ein Kernel-Modul für diese Karte geladen sein. Mometan gibt es nur Module für einige Hardware-Videotext-Decoder; leider aber kein Modul, das Videotext in Software decodiert.

Eine Möglichkeit dennoch Videotextseiten zu lesen ist mittels vbidecode, das ich mit in das Videotext-RPM gepackt habe, die Seiten eines Senders in ein Verzeichnis zu speichern und dann offline mit VideoteXt zu betrachten (dazu eigenet sich das Script view_vtx). Hier ein Beispielaufruf (das Bild kann wieder durch anklicken vergrößert werden):

Radio

Auf dieser CD ist noch eine kleine KDE-Applikation, mit der man (sofern die Karte dies kann und unterstützt wird) Radio hören kann.

Man kann bei KRadio Sender in 8 Speicherplätzen speichern, sowie einzelnen Frequenzen Sendernamen zuordnen (siehe auch die Beispiel-kradiorc in /usr/doc/packages/xawtv/).

Ausblick

Es wird derzeit an einer Unterstüztung für Fernbedienungen unter Linux gearbeitet, so daß die Bedienung hoffentlich bald noch bequemer wird.

Das Suchen bzw. Eintragen aller Sender ist recht aufwendig (für Kaiserslautern habe ich das per Shellscript aus einer bereits vorhanden Senderliste für XawTV und XTVscreen gemacht). Wünschenswert wäre ein funktionierender Sendersuchlauf mit Sendererkennung

Ein Videotext-Viewer mit Unterstützung für Software-Decodierung, sowie Mausunterstützung zum Anklicken der Seitenverweise wäre wünschenswert.

Weitere Informationen:

BTTV Homepage: http://www.metzlerbros.de/bttv.html
Alan Cox, Video 4 Linux: http://roadrunner.swansea.uk.linux.org/v4l.shtml
Linux Magazin, Februar 1998 http://www.linux-magazin.de/ausgabe/1998/02/Bttv/bttv.html
Kompatibilitätsliste: http://www.freiburg.linux.de/~flug/projekte/tv/