Die Rückkehr der Antenne

DVB-T über USB

01.09.2005 Nicht jeder ist bereit, für das das neue digitale Fernsehen viel Geld auszugeben. Günstige DVB-Hardware existiert oft in Form kleiner USB-Boxen. Wir erklären, wie Sie solche Geräte in Betrieb nehmen und mit MythTV verwenden.

Die digitale Fernsehwelle rollt: In immer mehr deutschen Städten löst die digitale Ausstrahlung über Antenne (DVB-T) das liebgewonnene Flimmerfernsehen ab [1]. Wer ein passendes Empfangsgerät für den PC besitzt, macht aus seinem Linux-Computer ohne großen Kosten einen digitalen Videorecorder. Die frei verfügbare Recorder-Software wie MythTV [2] oder VDR [3] für digitalen Empfang einzurichten, ist allerdings nicht immer einfach. Dieser Artikel beschreibt, wie man damit einen USB-Adapter für DVB-T in Betrieb nimmt.

Aktuelle DVB-Hardware

Zwar ließ sich schon analoges Fernsehen mit einschlägiger Software wie MythTV aufnehmen [4]. Die Digitaltechnik DVB bringt in diesem Bereich aber einige Vorteile: Sendungen kommen bereits in einem digitalen Format beim eigenen Rechner an (MPEG). DVB unterstützt vom PAL-Standard abweichende Bildformate wie 16:9 oder HDTV und bietet aktuelle Programminformationen direkt vom Sender.

Grundsätzlich gibt es zwei Bauformen von DVB-Geräten: mit oder ohne eingebauten MPEG-Decoder, also der Komponente, die aus dem MPEG-Stream wieder ein sichtbares Video errechnet. Besitzt der DVB-Empfänger einen solchen Decoder als Hardware-Chip, besorgt der diese Berechnung. Alternativ übernimmt das der Haupt-Prozessor (CPU) des Computers. Mit Computern ab 1 GHz ist das aber kein Problem. Im Test schaffte das sogar ein iBook mit 800 GHz, bewegte sich dabei allerdings sichtlich an der Leistungsgrenze.

Neben herkömmlichen PCI-Steckkarten existiert mittlerweile eine große Auswahl an DVB-T-Geräten mit USB-Anschluss. Die externen Kästchen empfangen das digitale Programm und reichen es über USB an den Computer weiter. Eine Liste unterstützter Geräte führt das DVB-Wiki von LinuxTV.org [5]. In diesem Artikel kommt ein Cinergy T2 von Terratec zum Einsatz, das gelegentlich schon ab 80 Euro erhältlich ist. Die Entwickler des Referenzdesigns [6] haben den passenden Linux-Treiber dafür geschrieben, der deshalb auch alle anderen darauf basierenden Geräte unterstützt. Kernel-Versionen ab 2.6.10 bringen das DVB-Subsystem und den Treiber für die Cinergy-Box bereits mit. Wer noch einen älteren Kernel benutzt, sollte also am besten updaten [7].

Abbildung 1: Klein, aber oho: Das kleine Kästchen enthält einen DVB-T-Empfänger. Über USB stellt es den Kontakt zum PC her.

Funktioniert das Hotplugging, lädt Linux beim Einstecken der USB-Box gleich den passenden Treiber cinergyT2. Der Befehl dmesg zeigt die entsprechende Meldung im System-Log:

DVB: registering new adapter ↩
(TerraTec/qanu USB2.0 Highspeed ↩
DVB-T Receiver)

Der Treiber legt die nötigen Gerätedateien an, über die Anwendungen mit der DVB-T-Box kommunizieren: die vier Files demux0, dvr0, frontend0 und net0 im Verzeichnis /dev/dvb. Je nach Distribution stimmen die Zugriffsberechtigungen schon (Ubuntu) oder Sie müssen sie von Hand anpassen (Fedora Core 3).

Komplexe Programme wie MythTV bringen häufig eigene Fehlerquellen mit. Deshalb empfiehlt es sich, zunächst mit einfachen, ausgereiften Tools zu testen und erst dann zum nächsten Schritt überzugehen. Simple Kommandozeilenprogramme für DVB sind zum Beispiel die dvb-utils.

Tune in, drop out

Zu Beginn stellen Sie das Linux-DVB erst einmal auf die lokalen Gegebenheiten ein. Je nach Wohnort verwenden die örtlichen DVB-Sender nämlich unterschiedliche Frequenzen und Einstellungen. Die DVB-Utils enthalten ein Programm zum Suchen (Scannen) von existierenden Sendern. Leider beherrscht es noch keinen vollständigen Scan, sodass Sie für den Anfang eine Datei benötigen, die Grundfrequenzen und andere Parameter enthält.

Aktuelle Dateien finden Sie auf der Heft-CD, so von München, in dem DVB eben erst an den Start ging. Um dort nach Sendern zu scannen, verwenden Sie die Befehlszeile scan scanfiles-cvs/de-Muenchen. Wohnen Sie in einer anderen Stadt, benutzen Sie die entsprechende Scan-Datei. Sollte ihr Wohnort fehlen, werden Sie vielleicht im DVB-Utils-CVS [8] fündig, das stets die aktuelle Version der Software und neue Frequenz-Dateien führt (im Unterverzeichnis dvb-t).

Beim Suchen zeigt scan an, wenn es einen Sender findet und schreibt das Ergebnis in channels.conf. Legen Sie ein Verzeichnis ~/.tzap an und verschieben Sie die Datei dorthin. Nun können Sie mit dem passenden Utility für DVB-T den Empfänger auf einen Sender einstellen: tzap -r "kabel eins". Die verfügbaren Kanalnamen finden Sie bei Interesse in der ersten Spalte von channels.conf. Schafft es tzap, den Sender einzustellen, finden Sie am Ende der kontinuierlich ausgegebenen Zeilen die Meldung FE_HAS_LOCK. Die Option -r schaltet gleichzeitig den Empfang ein. Das bedeutet, dass der Treiber unter der Gerätedatei /dev/dvb/adapter0/dvr0 den MPEG-Transport-Stream bereitstellt. Überraschend einfach spielen Sie diesen mit einem Multimedia-Player ab, zum Beispiel mit mplayer /dev/dvb/adapter0/dvr0. Leider waren im Test bei dieser Variante Bild und Ton schon deutlich asynchron. Bessere Ergebnisse lieferte der Player Xine, der zusätzlich noch die Angabe der Videokodierung verlangt:

xine stdin://mpeg2 < $$
/dev/dvb/adapter0/dvr0

Mit diesen wenigen Mitteln können Sie bereits digitales Fernsehen genießen, auch wenn der Komfort etwas zu wünschen übrig lässt. Mit einigen Shell-Skripts und dem Cron- oder At-Daemon ließe sich sogar ein einfacher Videorecorder zusammenschustern. Einige Videoplayer unterstützen auch selbst in gewissem Maße DVB, sodass Sie zum Beispiel damit die Programme umschalten können. Kaffeine erlaubt sogar, nach Sendern zu suchen (Abbildung 2).

Abbildung 2: Aktuelle Versionen von kaffeine unterstützen DVB und erlauben sogar, nach Sendern zu suchen.

Digitaler Recorder

Mehr Komfort bietet MythTV, das neben einfachem Live-Fernsehen auch komplexe, programmierte Aufnahmen ermöglicht. Zusätzlich entfernt MythTV Werbung, konvertiert die Aufnahme in andere Formate und vieles mehr. Informationen zur Installation von MythTV finden Sie im LinuxUser-Artikel [4], die nötige Pakete für Fedora auf der beiliegenden Heft-CD. Wir beschränken uns hier auf die DVB-Konfiguration des Programms. Für vollständige DVB-Unterstützung konfigurieren Sie zum Selberkompilieren die Source mit:

./configure --enable-dvb ↩
--dvb-path=/lib/modules/2.6.12-↩
1.1372_FC3/source/include ↩
--enable-dvb-eit

Abweichend von der üblichen Prozedur, müssen Sie vor dem make noch qmake settings.pro ausführen, um das Makefile zu erzeugen.

Das erste, was Sie neben der eigentlichen Software brauchen, ist eine Datenbank. MythTV benutzt dafür den freien Datenbankserver MySQL. Die Datenbank mythconverg legen Sie mithilfe der Datei mc.sql an. Sie findet sich im Unterverzeichnis database der MythTV-Source-Distribution. Haben Sie ein Binärpaket installiert, liegt die SQL-Datei in /usr/share/doc/mythtv-0.18.1/database, /usr/share/mythtv/database oder ähnlichen Verzeichnissen. Mit einem einfachen Befehl lesen Sie sie ein:

mysql -u root < database/mc.sql

Ja nach Ihrer MySQL-Konfiguration müssen Sie eventuell ein Passwort für den Datenbankbenutzer root eingeben. Dazu dient der Parameter -p. Dürfen Sie auch mit der normalen Benutzer-ID Datenbanken anlegen, lassen Sie -u root weg. Eventuelle Fehler TEMPORARY TABLES betreffend können Sie getrost ignorieren. Sie stammen daher, dass das SQL-Skript spezielle Fähigkeiten von MySQL 4 benutzt, deren Fehlen für MySQL 3 allerdings kein Problem darstellt.

MythTV einrichten

Haben Sie MythTV und die Datenbank vorbereitet, starten Sie mit mythtv-setup die Konfiguration. Das Programm kennt übrigens die Option -geometry, hinter der Sie Fensterbreite und -höhe getrennt durch ein x angeben, zum Beispiel 640x480. Andernfalls nimmt das Setup-Programm nämlich gleich den ganzen Bildschirm ein. Die Server-Einstellungen des Backends (IP-Adresse, Port und so fort) können Sie bei den Vorgaben belassen, die Verzeichnisse für Aufnahmen und den Datenpuffer (Vorgabe: /mnt/store) müssen für Sie schreibbar sein. Die Tabelle der Senderfrequenzen ebenfalls nicht, weil wir den über DVB ausgestrahlten elektronischen Programmführer (EPG) benutzen. Die Fernsehnorm spielt beim DVB-Empfang keine Rolle.

Im zweiten Konfigurationspunkt TV-Karten legen Sie eine neue Karte an. Haben Sie die Cinergy T2 eingesteckt, taucht unter Kartenname der Treibername Terratec/qanu ... auf, wenn Sie als Kartentyp Digital Video Broadcast Karte (DVB) wählen. Haben Sie die Einrichtung der ersten Karte abgeschlossen, taucht Sie in der Liste als DVB:0 auf. Sie verlassen die Kartenkonfiguration mit [Esc].

Damit Sie in MythTV nach Sendern suchen können, müssen Sie im dritten Konfigurationspunkt eine Videoquelle anlegen. Tatsächlich handelt es sich eher um eine Quelle für Programminformationen. Wählen Sie als Namen für die Quelle dvb.guide.

Sender einstellen

Rufen Sie nicht mythfilldatabase auf, auch wenn MythTV Sie an dieser Stelle vielleicht dazu auffordert. Wenden Sie sich wieder dem MythTV-Setup-Fenster zu, und verlassen Sie die Videoquellen-Konfiguration. Der vierte Punkt im Hauptmenü verknüpft die DVB-Karte mit den Senderdaten. Wählen Sie dazu einfach unter Videoquelle dvb.guide. Damit erlaubt MythTV-Setup nun im fünften Menüpunkt den Sender-Scan. Klicken Sie den Button Sendersuchlauf und bestätigen Sie die Vorgaben des nächsten Fensters mit Weiter. Das nun folgende Fenster lässt Sie alle wichtigen DVB-Parameter einstellen (Abbildung 3). Wenn Sie keine Werte für Frequenz und Bandbreite eintragen, findet MythTV-Setup überhaupt keine Sender! Diese Daten entnehmen Sie der Scan-Datei für Ihren Wohnort, zum Beispiel de-Muenchen. Nach dem T steht Frequenz, gefolgt von der Bandbreite in MHz. Bei DVB teilen sich mehrere Sender eine Frequenz, sodass Sie im Allgemeinen vier bis sechs Trägerfrequenzen scannen müssen, um an bis zu 24 Sender zu kommen. Dass MythTV-Setup Sender findet, erkennen Sie an der Status-Meldung Signal Locked.

Abbildung 3: Damit MythTV überhaupt DVB-Sender findet, müssen Sie die Trägerfrequenz und die Bandbreite eingeben.

Hat MythTV einige Sender gefunden, gelangen Sie in dessen Konfigurationsfenster, indem Sie ihn auswählen und [Eingabe] drücken. Hat alles geklappt, finden Sie dort die Einstellung EPG über DVB benutzen angekreuzt (Abbildung 4). Wiederholen Sie den Scan für die anderen Frequenzen, bis MythTV alle verfügbaren Sender gefunden hat.

Abbildung 4: Aktuelle Versionen von MythTV beziehen den elektronischen Programmführer EPG über DVB.

Damit steht zeitgesteuerten Aufnahmen mit DVB nichts mehr im Weg: Sie starten mit mythbackend das so genannte Backend (am besten regelmäßig über ein Boot-Skript) und mit mythfrontend die grafische Benutzeroberfläche. Mit den eingelesenen Programminformationen stellt MythTV ein übersichtliches Fernsehprogramm dar, aus dem Sie Sendungen für die Aufnahme auswählen.

Der DVB-EPG führt Programmhinweise allerdingsnur für einige Tage. Wollen Sie länger vorausplanen, müssen Sie zum XMLTV-Skript tv_grab_de_tvtoday greifen, dass Programminformationen von der Website tvtoday.de holt. Die XMLTV-IDs der Sender passen Sie in MythTV an. Das ist etwas schwieriger und zudem fehleranfällig: Jedes Mal, wenn tvtoday.de den Aufbau der Webseiten verändert (zum Beispiel während der Entstehung dieses Artikels), versagt das Skript seinen Dienst und sein Autor Stefan Siegl muss es erneut anpassen.

Kleiner Aufwand, große Wirkung

Obwohl einige ausgereifte Tools für DVB-T unter Linux zur Verfügung stehen, arbeiten noch nicht alle Programme fehlerfrei zusammen. Um DVB-Kanäle in MythTV zu integrieren und Programminformationen einzulesen, ist bei der Einrichtung noch etwas Handarbeit nötig. Es ist zu erwarten, dass kommende Versionen der Software solche Frickeleien überflüssig machen. Wer die Einrichtungshürden überwunden hat, wird jedoch mit einem gut bedienbaren und funktionierenden digitalen Videorecorder belohnt.

Infos

[1] Mirko Dölle, Digitales Fernsehen über Antenne und Kabel, LinuxUser 11/04, S. 59

[2] MythTV: http://www.mythtv.org

[3] VDR: http://www.cadsoft.de/vdr

[4] Michael Haas, Videorecorder MythTV, LinuxUser 6/05, 66

[5] USB-Geräte für DVB-T: http://www.linuxtv.org/wiki/index.php/DVB_USB

[6] Referenzdesign: http://www.qanu.de/termini.php

[7] Roman Jordan, Kernel übersetzen und installieren, LinuxUser 7/04, S. 64

[8] Scan-Dateien: http://www.linuxtv.org/cgi-bin/viewcvs.cgi/dvb-apps/util/scan/

[9] XML-TV-CVS: http://cvs.sourceforge.net/viewcvs.py/xmltv/xmltv/grab/de_tvtoday

[10] DVB-EPG: http://www.darkskiez.co.uk/index.php?page=tv_grab_dvb

Einem Freund empfehlen    Druckansicht beenden Bookmark and Share
Kommentare