DVB-T in Konradsreuth – unter Linux
Halb Erfahrungsbericht, halb Howto – viel Spaß damit :-)
Hardware
Kürzlich habe ich mir einen DVB-T-USB-Stick zugelegt. Der sollte natürlich unter Linux laufen. linuxtv.org bietet einige Informationen rund um DVB-T unter Linux, unter anderem auch eine Übersicht unterstützter Geräte.
Zunächst hatte ich mich für einen Terratec Cinergy T Stick RC entschieden. Der wird laut der Tabelle unterstützt. Ausgepackt – geht nicht. Netterweise war der gekaufte Stick kein „Terratec Cinergy T Stick RC“, sondern ein „Terratec Cinergy T Stick RC Rev3“. Schaut genauso aus, heißt genauso, ist aber ein komplett anderes Gerät mit komplett anderer Hardware. Schönen Dank auch. Kann man nicht dem Ding einen anderen Namen verpassen?! Finger weg davon, läuft (noch?) nicht unter Linux.
Also zweiter Versuch: her mit einem PCTV NanoStick solo (vorher wohl „Pinnacle PCTV 73e“) – in der Hoffnung, es ist auch einer. Nach einiger Überzeugungsarbeit beim örtlichen Elektronikdiscounter durfte ich tatsächlich den Stick kurz an meinem Netbook anstecken, um die USB-ID auslesen zu können und somit einen weiteren Fehlkauf zu verhindern. lsusb zeigte ID 2013:0245 Unknown (Pinnacle?) PCTV 73ESE
an – et voilà: Hardware mit Treiber im Mainline-Kernel. Nach der Installation der benötigten Firmware und dem Bauen der passenden Kernelmodule: angesteckt und geht.
Sendestationen
In Konradsreuth (bzw. vermutlich im ganzen Landkreis Hof) kommen theoretisch drei Sender in Frage, die man evtl. empfangen könnte: der Sender Ochsenkopf, der Sender Schöneck und der Sender Sonneberg (vgl. http://dvb-t-bayern.de/ bzw. http://ueberallfernsehen.de/).
Ich bin mal davon ausgegangen, dass man den Sender Ochsenkopf hier am besten empfangen können müsste.
Antenne
Aus der Seminarzeit hatte meine Frau noch eine ziemlich teure aktive DVB-T-Antenne. Damit sollte man – so möchte man denken – die besten Ergebnisse erreichen.
Nach einigem Surfen im Internet habe ich Bauanleitungen für einfache und kostengünstige DVB-T-Antennen gefunden, unter anderem eine für eine Doppelquad-Antenne mit Reflektor. Was daran mein besonderes Interesse geweckt hat, war die Tatsache, dass die Antenne für einen bestimmten Frequenzbereich berechnet wird, nämlich für den, den man empfangen möchte. Leuchtet ein, dass das sinnvoll ist!
Also für ein paar Euro die Materialien im Baumarkt gekauft und das Ding gebaut – abgestimmt auf die Frequenzen, die der Sender Ochsenkopf sendet.
Empfang
Es hat sich herausgestellt, dass man in Konradsreuth – zumindest bei mir zu Hause – den Sender Ochsenkopf und den Sender Schöneck empfangen kann. Teilweise besser oder schlechter, aber man kann alles empfangen, was von dort gesendet wird.
Mit der kleinen Stabantenne, die bei dem DVB-T-Stick dabei war, war erwartungsgemäß überhaupt kein Empfang möglich. Auch nicht im Freien.
Höchst interessant ist die Tatsache, dass die selbstgebaute Antenne für ein paar Euro besser funktioniert, als die sündhaft teure aktive! Damit konnte ich nicht alle Frequenzen vom Sender Ochsenkopf empfangen (ausprobiert unterm Dachfenster!), mit der anderen aber schon (bei richtiger Polarisation – die Antenne muss hier senkrecht stehen, nicht waagerecht).
Also: lieber den Lötkolben auspacken, als unnötig Geld ausgeben und sich über das Ergebnis ärgern! Das Teil kann wirklich jeder bauen, der ein Bisschen handwerkliches Geschick hat. Da gehört nicht viel dazu.
Die Antenne habe ich mit dem Script auf der Anleitungsseite berechnet. Für den Ochsenkopf sind dabei 13 cm Kantenlänge für den Kupferdraht, ein Blech von mindestens 46,5 mal 28,2 cm und 6,7 cm Abstand vom Blech herausgekommen. Berechnet man die Antenne für den Sender Schöneck, bekommt man andere Werte, teilweise mit fast einem cm Unterschied.
Berechnet man aber eine Antenne, die für beide Sender optimiert ist, dann kommt fast die selbe wie für den Ochsenkopf heraus: 13,1 cm Kantenlänge, 46,7 mal 28,4 cm für das Blech und 6,8 cm Abstand. So genau kann man den Draht eh nicht biegen und das Blech habe ich sowieso mit 30 mal 50 cm etwas größer gemacht. Meine Antenne ist also quasi zufällig für beide Sender optimiert!
Sender
Empfangen kann ich alle Sender, die von den beiden Sendestationen ausgestrahlt werden. Das sind für den Sender Ochsenkopf:
ZDF, 3sat, ZDFinfo, neo / KiKA | 490 MHz | Download: Bayern-Ochsenkopf.conf |
Das Erste, arte, Phoenix, EinsPlus | 538 MHz | |
Bayerisches FS Nord, BR-alpha, hr-fernsehen, MDR Thüringen | 626 MHz |
Und für den Sender Schöneck:
ZDF, 3sat, ZDFinfo, neo / KiKA | 482 MHz | Download: Sachsen-Schoeneck.conf |
Das Erste, arte, Phoenix, Einsfestival | 506 MHz | |
Bayerisches FS Nord, MDR Sachsen, rbb Brandenburg, WDR Köln | 562 MHz. |
Das entspricht genau den Angaben in der Sender- und Programmliste Deutschland von http://ueberallfernsehen.de/.
Die beiden Downloads enthalten alle Sender der jeweiligen Sendestation. Es ist jeweils die Ausgabe eines Durchlaufs von dvbscan mit den jeweiligen Startfrequenzen für Bayern und Sachsen. Die Dateien sind im zap-Format, z. B. für die Verwendung mit dem mplayer und UTF-8-kodiert.
Wie gesagt, hier funktioniert eine Kombination beider Sendestationen (sozusagen länderübergreifend ;-) am besten. Aber das muss man vermutlich einfach ausprobieren, abhängig vom Standort.
Fernsehen
Als Konsolenliebhaber benutzt man natürlich den mplayer, um DVB-T zu schauen. Hierzu einfach die jeweilige (ggf. angepasste) conf-Datei nach ~/.mplayer/ kopieren und als channels.conf verlinken oder umbenennen.
Ganz nett funktioniert die Option -vf pp=lb
, um einen Deinterlacer zu aktivieren.
Ingesamt also: mplayer -vf pp=lb dvb://[Kanal]
, den Kanal ggf. in Anführungszeichen oder mit Escapes für Leerzeichen.
Videotext (Teletext)
Das will man natürlich nicht missen! Wenn schon Fernsehen, dann auch Videotext. Es scheint derzeit unter Linux nicht allzuviel Auswahl an Programmen zu geben, die DVB-T-Videotext anzeigen können. Eines funktioniert super, auch wenn man ein bisschen Energie dafür investieren muss: alevt.
Die offizielle Version wird scheinbar nicht mehr gepflegt, auch ist deren Homepage http://goron.de/~froese/ (im Moment?) nicht erreichbar. Außerdem unterstützt das letzte offizielle Release (1.6.2) kein DVB(-T). Netterweise wurde der Code ins Repository von Linuxtv übertragen (util/alevt/) und überarbeitet. Standardmäßig wird alevt allerdings nicht gebaut.
Es war nötig, zvbi mit v4l-Unterstützung zu installieren. Außerdem benötigt alevt noch zlib und libpng (die wird man aber vermutlich ohnehin installiert haben). Weiterhin musste ich exp-gfx.c und Makefile patchen. Danach lief ein simples make
allerdings problemlos durch.
Ein ebuild (für Gentoo Linux), das alevt mitbaut, wenn man media-tv/linuxtv-dvb-apps installiert (USE-Flag „alevt“ muss gesetzt sein) habe ich unter Bug #423687 online gestellt. Dort finden sich auch die beiden Patches.
Zum Anzeigen von Videotext muss man einfach den jeweiligen Sender öffnen (z. B. mit dem mplayer, s. o.) und dann alevt folgendermaßen starten:
alevt -v /dev/dvb/adapter0/demux0 -s [Service ID] 100
Da auf einer DVB-Frequenz mehrere Sender ausgestrahlt werden, benötigt man noch die Service ID. Diese ist im Feld Nr. 13 in der channels.conf-Datei gespeichert. Herauszufinden also beispielsweise mittels
grep [Sender] ~/.mplayer/channels.conf | cut -d : -f 13
Benutzung mit der Konsole
Natürlich kann man sich mittels ein paar Zeilen Bash einen Haufen Tipparbeit sparen. Ich habe z. B. ein Script namens „tv“, was einen Sender öffnet (und den Namen des Senders in /tmp/dvbt_tuned speichert) und eines namens „videotext“, was den zugehörigen Videotext anzeigt.
Eine Bash-Completion-Datei für das tv-Script habe ich auch geschrieben. Mittels tv <TAB>
bekommt man eine Auflistung aller verfügbaren Sender. Wenn man bereits etwas eingegeben hat, werden nur die Sender angezeigt, deren Name mit der Eingabe anfängt.
Vielleicht hilft’s ja jemandem, der auch unter (Gentoo) Linux DVB-T schauen will :-)