VDR 1.6 unter Linux 3.x bzw. Debian Wheezy compilieren

Zugegeben, das ist jetzt kein alltägliches Thema. Zum einen ist der VDR (Videorekorderprogramm für Linux) etwas für Insider. Zum anderen habe ich wohl eine nicht alltägliche Konfiguration, die das nachfolgend beschriebene und gelöste Problem erst provoziert. Und natürlich: Auch wenn es eigentlich nicht so schlimm ist, schrecken viele Nutzer doch davor zurück, ihr Programm aus den Quelltexten selbst zu übersetzen (compilieren).

Aber erstmal wollen wir eine kleine Einleitung für die Nicht-Insider geben. Diesen Artikel lesen potentiell sicher mehr Leute, die keinen eigenen Linux-VDR einrichten wollen, als diejenigen, die auch mein Problem haben:

VDR ist ein geniales Linux-Programm, das aus einem Linux-PC einen Videorekorder macht. Zahlreiche Plugins sorgen für eine umfangreiche Erweiterbarkeit und für eine ungeahnte Feateritis. Neben Fernsehen, Aufnehmen und Wiedergeben kann man so seinen Videorekorder z.B. übers Netz steuern und programmieren, die Aufnahmen gleich konvertieren (z.B. als zum Brennen auf eine DVD), das Fernsehbild bzw. die Aufnahmen übers Netz streamen und viel viel mehr.

VLC zeigt den Schirm des VDR übers Netzwerk - auch mit On-Screen-Display

VLC zeigt den Schirm des VDR übers Netzwerk - auch mit On-Screen-Display 

Mein “Videorekorder” ist gleichzeitg mein Heimserver und steht im Keller ohne Nachbarschaft zu einem Fernseher. Diese sind im Haus verteilt. Wie kommt nun das Fernsehbild vom Server zum Fernseher? Früher hatte ich mal einen Analog-Videomodulator in Betrieb (und Infrarot-Fernbedienmodule, die über freie Adern der Telefonleitung in den Keller geschaltet wurden). Inzwischen habe ich preiswerte dbox2 – Settop-Boxen im Einsatz. Diese wurden früher mal für den Premiereempfang verteilt, haben aber den Vorteil, dass das kleine PCs sind, auf denen auch ein angepasstes Linux läuft. Damit habe ich für jeden alten Röhrenfernseher einen digitalen Kabeltuner und einen Netzwerk-Streaming-Clienten, der das Bild meines “Keller-VDR” übers Netzwerk heranholt. Und das es diese d-Boxen derzeit auf eBay sehr günstig gibt, habe ich schon erwähnt?

Und damit sind wir beim Problem. Die aktuelle stabile Version des VDR ist zwar 1.6, aber da diese noch kein HD kann, ist bei allen neueren Sachen die aktuelle Entwicklerversion 1.7.x drauf. Ich benötige für die d-Boxen aber das ffnetdev-Plugin (streamt den Bildschirm und das On-Screen-Menü zur d-Box und nimmt die Fernbediencodes der d-Box für den VDR entgegen), das nicht mehr mit der Version 1.7 zusammen läuft und bin daher solange auf die Version 1.6 angewiesen, wie ich noch einen Röhrenfernseher mit einer d-box herumstehen habe.

Eine alte d-box mit dem alternativen Neutrino (Linuxvariante) ist wohl derzeit der preiswerteste digitale Kabeltuner für alte Fernseher

Eine alte d-box mit dem alternativen Neutrino (Linuxvariante) ist wohl derzeit der preiswerteste digitale Kabeltuner für alte Fernseher 

Die d-box kann übers Netzwerk den Bildschirm des VDR anzeigen und über die Fernbedienung auch bedienen.

Die d-box kann übers Netzwerk den Bildschirm des VDR anzeigen und über die Fernbedienung auch bedienen. 

Es gibt für das neue Debian Wheezy (bzw. “Debian Sid unstable”), das bereits einen Linux-Kernel der 3er Generation enthält, keine fertige 1.6er VDR-Version, die auch das ffnetdev-Plugin enthält. Im Prinzip ist das kein Problem, man muss sich dann eben das VDR-Programm mit allen benötigten Plugins selbst compilieren. Und hier geht das Problem los: VDR 1.6 compiliert nicht mehr auf einen neueren Linux-Kernel. Die Ursache ist wohl die Überarbeitung des Video-Systems ab Kernel 2.6.38. Jedenfalls fehlt nun die Datei video.h in den Kernel-Sources.

Ich habe mir den Quelltext von VDR 1.6 ein wenig angesehen und neben einigen Kleinigkeiten, die ebenfalls ein Compilieren aufgrund des neuen GNU-Compilers verhindern, im Wesentlichen eine Funktion herausgestrichen, die einen Abzug des Videobildes als JPG-Datei speichert. Die einzige negative Auswirkung, die ich feststellen konnte, ist, dass im Webinterface des Live-Plugins das Bildschirmfoto auf der Fernbedienseite nicht mehr funktioniert. Im aktuellen 1.7er VDR habe ich diese Funktion aber auch nicht mehr gefunden und die Sache mit dem Live-Plugin funktioniert hier auch nicht mehr. Mit meinem Patch kann man also nun wieder den alten VDR mit den individuell benötigten Pugins selbst erstellen.

Beim Compilieren einiger Plugins erhält man mit dem neuen GNU-Compiler ebenfalls einen Fehler. Die Fehlermeldung weißt aber schon darauf hin, was zu tun ist: Im makefile im Verzeichnis des jeweiligen Plugins das CXXFLAGS Statement um

 -fPIC 

erweitern.

Wer also selbst compilieren möchte, kann den aktuellen VDR-1.6.0 Quelltext mit meinen Änderungen patchen.

Dazu:

Dann compiliert die Sache wieder und man kann sich der “alten” VDR-Version erfreuen.

Hinweise:

Ich nehme mal an, wer dies hier bis zu Ende gelesen hat, weiß, was er tun will und wie das zu machen ist 😉 Aber zur Erinnerung:

Installation eines Patches:

Die .diff Datei in das Quelltextverzeichnis spielen (~/vdr-1.6.0) und

patch -p1 < patchname.diff 

aufrufen.

Compilieren des VDR:

make
make plugins

Das Installieren der ist leider eine sehr individuelle Sache, abhängig von der Distribution und anderen spezifischen Sachen. So dass ich hier besser nichts dazu sage.

Ich hoffe, dass mein kleiner Patch für dieses geniale Linux-Programm vielen “VDRlern” hilft. 🙂

Update März 2012

Ich habe mich mit dem Autor des VDR-Programms Klaus Schmidinger in Verbindung gesetzt und durch einige Hinweise im wesentlichen die Lösungen aus dem aktuellen Entwicklungszweig auf die Version 1.6 rückportieren können. Das Ergebnis ist jetzt als offizieller Patch vdr-1.6.0-3 verfügbar.

Dieser Beitrag wurde unter IT abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.