X, MythTV, VDR und XXV

Nachdem ich meinen Hauptrechner aufgerüstet hatte, fiel die alte Hardware für meinen VDR ab und da ich damit nun in der Lage war endlich mehr als nur 10 Farben im OSD ausgeben zu können ohne daß alles crasht (ich hatte meinen VDR vorher mit einer DXR3-Dekoderkarte zu laufen), beschloss ich einen Versuch mit X-Server und Softdevice zu wagen. Da der VDR optisch nicht ganz so hübsch ansprechend ist wie MythTV entschloss ich mich letzteres einfach mal auszuprobieren, traf dann aber auf Probleme die mich wieder zum VDR zurückgeführt haben. Und der sieht gar nicht mehr so schlecht aus auf der neuen Hardware.

Alle Angaben im Beitrag beziehen sich auf Gentoo.

X war gewohnt schnell aufgesetzt. Der einzige Stolperstein war die korrekte Einrichtung des TV-Ausgangs auf meiner GeForce 4 Ti 4200 von MSI. Diese befindet sich standardmäßig immer im S-Video-Modus, mein Fernseher hat jedoch nur einen Scart-Eingang (und ich einen Cinch-Adapter). Das mitgelieferte Adapterkabel trennt leider auch nur das Helligkeitssignal aus dem S-Video-Signal heraus, sodaß das Ergebnis ein leicht versetztes und flimmerndes Schwarz-Weiß-Bild war. Erst das Nvidia-Modul für den X-Server kann den TV-Ausgang auf Composite umstellen:


Section "Monitor"
Identifier "TV"
HorizSync 31.5-50.0
VertRefresh 50
EndSection

Section "Device"
Identifier "GF4200"
Driver "nvidia"

Option "TVOutFormat" "COMPOSITE"
Option "TVStandard" "PAL-B"
Option "ConnectedMonitor" "TV"

Option "NoLogo" "True"
EndSection

Die Angaben beim “Monitor” werden beim TV-Ausgang ignoriert. Leider gilt das auch für in der Screen-Section angegebene Auflösungen. Mir war es bisher leider nicht möglich, Signale direkt in Fernsehauflösung auszugeben, X oder das Nvidia-Modul scheinen hier ziemlich eigenwillig zu sein; es gibt lediglich die Auflösungen 640×480, 800×600 und 1024×768 zur Auswahl, die dann von der Grafikkarte entsprechend skaliert werden.

Als Window Manager bin ich mit Fluxbox und als Greeter mit KDM sehr glücklich geworden. KDM lässt sich leicht mit einem Autologin und einigen anderen Optionen versehen, wobei für Benutzer ohne Kennwort der Autologin in der kdmrc-Konfigurationsdatei eingetragen werden muss. Ohne installiertem KDE erfolgt die Konfiguration über den direkten Aufruf von kcontrol. Der jeweilige Benutzer muss dann lediglich noch der Gruppe users angehören, damit er einloggen kann und schon startet der WM.

Fluxbox lässt sich in der Datei ~/.fluxbox/startup auf die Schnelle mitgeben, was gestartet werden soll, bei mir als Minimum:


xhost +local:0 &
synergyc hauptrechneradresse &
nvidia-settings --load-config-only &
x11vnc &

xhost sorgt dafür, daß auf dem lokalen Rechner von jedem beliebigen Prozess aus auf den X-Server zugegriffen werden kann. Dies ist nützlich für Einblendungen von OSDs etc. synergyc sorgt dafür, daß der Client von Synergy (Maus- und Tastatur-Sharing via Netzwerk) sich versucht mit meinem Hauptrechner zu verbinden, sofern ich dort einen Server gestartet haben sollte. nvidia-settings ist nötig, um Einstellungen wie flicker free etc. vernünftig nachzuladen (vielleicht ist das auch über die zahlreichen Optionen im X-Server möglich; ich fand diese Methode einfacher). Schließlich gibt x11vnc diese Session via VNC an die konfigurierten Hosts weiter. Anschließend habe ich in startup dann das Frontend für MythTV bzw. später VDR eingetragen.

Leider gestaltete sich die Konfiguration von MythTV sehr mystisch, was den Empfang über DVB-T angeht. So wurden alle UHF-, allerdings keiner der beiden VHF-Kanäle gefunden, auch nicht nach der manuellen Eingabe einer Frequenz (in den Frequenzen für den Suchlauf ist seltsamerweise nur einer eingetragen). Auch eine halbstündige Fummelei an der Zimmerantenne konnte da nicht weiterhelfen. Fernsehen auf den anderen Kanälen klappte jedenfalls ganz zuverlässig und auch der via DVB ausgestrahlte EPG konnte empfangen werden. Das als Plugin erhältliche Web-Frontend schien bis auf einige Layout-Fehler in Opera auch ziemlich gut zu sein. Die Weitergabe des Frontends übers Netzwerk fand ich auch ziemlich nett. Soweit so gut.

Die Probleme fingen an als ich mich an die Automatisierung des Ganzen machen wollte: Wie schon zuvor sollte der Rechner sich wieder automatisch bei Inaktivität eine BIOS-Weckzeit stellen und anschließend abschalten. Dazu müssen jedoch vorher die nächsten Aufnahme-Timer bekannt sein. Idealerweise wird dazu vorher ein vollständiger EPG-Scan und anschließend ein Autotimer-Scan gestartet. Erst wenn das abgearbeitet ist, stehen definitive Timer fest und eine sichere Weckzeit kann bestimmt werden. Bedauerlicherweise scheint dies in MythTV nicht möglich zu sein; man ist dem System einfach ausgeliefert und muss mit dem leben was in MythTV selbst zur Verfügung gestellt wird. Ein manuelles Triggern kann scheinbar nicht erfolgen oder ist nicht auffindbar genug dokumentiert (meines Erachtens nach ist sowieso kaum etwas zur genaueren Funktionsweise dokumentiert worden). Zwar kann sich MythTV auch selbst ums Herunterfahren kümmern, doch ist es mir lieber, wenn ich ein eigenes Script dafür laufen lassen kann, welches nach weiteren, von mir definierbaren, Kriterien bestimmt ob der Rechner auch wirklich inaktiv ist. Leider tappte ich hier ohne Einsicht in den Quellcode zu nehmen komplett im Dunkeln, auch eine Nachfrage auf der Mailingliste brachte keine Antwort. Allgemein scheint DVB-T dort nicht weit verbreitet zu sein. Ein Versuch, die EPG-Daten dann über tvm2xml (Wrapper/Konverter für tvm2vdr) von Webseiten zu grabben und in die Datenbank einzuspielen scheiterte ebenfalls. Der absolute Hit ist auch noch, daß sich nicht in Erfahrung bringen lässt, wie sich die meist zu langen EPG-Texte eigentlich scrollen lassen.

Da ich den Rechner noch in diesem Jahrzehnt wie gewohnt in Betrieb nehmen wollte, beschloss ich wieder auf VDR umzusteigen. Mehr als fernsehen bzw. automatisch aufnehmen will ich ja eigentlich gar nicht, die weiteren Media Center-Funktionen in MythTV wären in meinem Fall Overkill gewesen und da DVB-T nicht richtig funktionieren wollte war das eh keine allzu gute Wahl (im Gegensatz zu VDR, das von vornherein für DVB geschrieben wurde). Schnell alles VDR-relevante vom alten System geemerged und die alten Configs kopiert. Als Softdevice-Plugin nahm ich vdr-xineliboutput, da vdr-xine nur über ein Overlay mit momentan unbekannt verzogenem Download-Server als ebuild beziehen ließ. Damit lässt sich – wie bei MythTV – das Frontend vom VDR trennen, was für eine bessere Stabilität des Hauptprogramms sorgen sollte und auch eine volle Bedienung mit Streaming übers Netzwerk erlaubt.

Dazu wird einfach in /etc/conf.d/vdr.xineliboutput die Standardoption belassen:

_EXTRAOPTS="--local=none --remote=37890"

Fluxbox’s startup bekommt dann noch folgenden Aufruf verpasst:

vdr-sxfe -f xvdr+tcp://127.0.0.1 &

Weitere Optionen stehen in der Hilfe oder im VDR Wiki.

Sollten nur englische Texte in VDR zu sehen sein, hilft es evtl., im Init-Script nochmal die Locale (LANG und LC_ALL) zu setzen, sofern man diese nicht global einstellen möchte. Themes für text2skin gehören unter Gentoo nach /usr/share/vdr/text2skin/; je nach Distribution kann der Ort dafür variieren. Noch offene Probleme sind bei mir momentan die fehlenden Übersetzungen der Icons im Enigma-Theme und ein schwammiges Bild (im Verdacht hab ich das hoch- und runterskalieren des Fernsehbildes durch meine ungenaue X-Konfiguration).

Obwohl ich gerade erst im Dezember im Beitrag “Nur ärgerlich…” über xxv hergezogen bin, habe ich es nochmal versucht einzurichten und scheine diesmal tatsache Erfolg gehabt zu haben. Was dringend zu beachten ist: Der VDR darf nicht auf UTF8 laufen, sondern muss auf Latin-Kodierung/-Locale eingestellt werden (die Templates in xxv sind leider in Latin gesetzt und eine Konvertierung findet nicht statt) und wie im VDR-Portal geschrieben wurde muss in der /usr/bin/xxvd in der Funktion getDbh die MySQL-Verbindung auf Latin umgestellt werden, indem folgende Zeile über das return eingefügt wird::

my $row = $dbh->selectrow_hashref("set NAMES 'latin1'");

Sollte das Encoding vom VDR in der Zwischenzeit gewechselt haben, ist evtl. die channels.conf plötzlich in UTF8 und wird nicht mehr auf Latin konvertiert. Das sollte manuell oder per iconv korrigiert werden (EPG . Anschließend funktionierte bei mir erstmals alles inkl. Vorschaubildern für die Testaufnahmen. 😀

Leider kompiliert momentan (vermutlich wegen VDR 1.6?) das VDR-Plugin zur Editierung der Autotimer von xxv nicht, aber ich denke darauf kann ich noch warten bis ein Fix vorliegt.