Großes c't VDR Herbst-Update
Posted by Tobi
Mit dem "Großen c't VDR Herbst-Update" soll die Kompatibilität der c't VDR-Distribution zur offiziellen Debian-Version der VDR-Pakete hergestellt werden. Welche Änderungen dies nach sich zieht und welche Fallstricke beim Update evtl. lauern, soll dieser Artikel etwas näher beleuchten.
Seit Mitte April diesen Jahres hat Thomas Schmidt, der abseits von c't VDR schon seit 2003 eigene Plug-in-Pakete und Erweiterungen zum offiziellen Debian-VDR-Paket anbietet, auf alioth.debian.org das VDR and DVB Packaging Project ins Leben gerufen. Ziel dieses Projektes ist es, die bis dahin etwas stagnierende Weiterentwicklung der Debian-Pakete rund um VDR voranzutreiben und einen Großteil der Pakete aus dem c't VDR-Projekt ins offizielle Debian zu übernehmen.
Die meisten Features aus dem c't VDR-Paket haben ihren Weg mittlerweile auch in das Debian VDR-Paket gefunden. Um der Debian-Policy und dem aktuellen FHS-Standard gerecht zu werden, waren jedoch einige Änderungen gegenüber dem c't VDR-Paket notwendig, die sich im Wesentlichen auf eine etwas andere Verzeichnisstruktur und ein paar Verbesserungen der Shutdown/Recording-Hooks beschränken.
Mit dem hier angekündigten "Großen c't VDR Herbst-Update" soll die c't VDR-Distribution nun zur offiziellen Debian-Version aufschließen. Damit werden sowohl c't VDR als auch Debian VDR kompatibel sein, was die Weiterentwicklung beider Projekte deutlich vereinfachen wird. Einer Binär-Kompatibilität zwischen c't VDR und Debian-Paketen stehen zwar noch immer die unterschiedlichen Patch-Varianten im Weg, jedoch sind die Source-Pakete austauschbar. D.h Debian-VDR-Pakete lassen sich problemlos für c't VDR compilieren und umgekehrt.
Änderungen im VDR-Paket
Conf-Verzeichnisse und Dateien
Bisher war die Verzeichnisstruktur der c't VDR-Pakete zum Teil nicht ganz FHS-konform. So wurden u.a. viele Dateien nach /etc/vdr/ installiert, die eigentlich keine Debian-Config-Dateien sind (z.B. Sender-Logos, die timers.conf oder andere Daten-Dateien). Die neue Version des VDR-Paketes verwendet /var/lib/vdr/ als Config-Verzeichnis für VDR. Echte Config-Dateien im Debian-Sinne werden aus /etc/vdr/ heraus nur noch in dieses Verzeichnis verlinkt.
Das Upgrade auf die neue Version verschiebt die folgenden Dateien aus /etc/vdr/ automatisch nach /var/lib/vdr/ :
- remote.KBD.conf
- remote.LIRC.conf
- remote.remote-event.conf
- setup.conf
- timers.conf
- channels.conf
Alle weiteren Konfigurationsdateien bleiben in /etc/vdr erhalten und werden durch die Upgrade-Routinen lediglich in das neue VDR-Config-Verzeichnis verlinkt.
Beim Upgrade auf die neue Version wird Debian an einigen Stellen nachfragen, ob eine bestehende Config-Datei überschrieben werden soll. Dem solltet ihr zumindest bei den Dateien /etc/init.d/vdr und /etc/default/vdr auf jeden Fall zustimmen!
Eure Änderungen an diesen Konfigurationsdateien gehen dabei nicht verloren, sondern werden vom Debian-Paket-Management zuvor als config-datei.dpkg-old gesichert. Damit könnt ihr u.U. notwendige Änderungen an der Konfiguration auch im Nachhinein noch manuell in die neuen Config-Dateien übertragen.
Wenn ihr bei einer früheren Installation der Aufforderung zum Überschreiben einer Config-Datei schoneinmal nicht nachgekommen seid, so hat Debian sich das gemerkt und wird diesmal garnicht erst nachfragen. In diesem Fall, könnt ihr mit der folgenden Befehlsfolge die Installation der neuen Config-Dateien erzwingen:
mv /etc/default/vdr /etc/default/vdr.old
mv /etc/init.d/vdr /etc/init.d/vdr.old
apt-get install vdr --reinstall -o Dpkg:Options::=--force-confmiss
Bitte beachtet auch, dass einige Konfigurationsparameter aus /etc/default/vdr entfernt wurden und stattdessen nun in /etc/init.d/vdr zu finden sind. Diese Einträge solltet ihr auf keinen Fall ändern, da andere Pakete rund um VDR ansonsten nicht mehr out-of-the-box funktionieren werden.
Neu hinzugekommen ist dafür der Konfigurationsparameter VDSB_WORKAROUND. Wer den VDR mit mehreren DVB-Karten betreibt, wird evtl. das Problem kennen, dass sich VDR mit der Fehlermeldung "Video Data Stream Broken" beendet, sobald man etwas aufnimmt oder der EPG-Scan startet. Eine Lösung scheint es dafür nicht zu geben, jedoch einen Workaround. Indem man mittels szap vor dem Starten von VDR auf allen DVB-Karten einen Kanal einstellt, scheint man das Problem zu umgehen. Diese Möglichkeit ist im c't VDR nun eingebaut und kann mit VDSB_WORKAROUND=yes in /etc/default/vdr aktiviert werden. Zusätzlich müsst ihr jedoch noch das Paket dvb-utils installieren.
Die Dateien commands.ctvdr.conf und commands.shutdownvdr.conf werden vom neuen VDR-Paket nicht mehr als Config-Dateien in /etc/vdr/command-hooks/, sondern direkt in /usr/share/vdr/command-hooks/ installiert. Falls ihr diese Dateien manuell geändert habt, solltet ihr die Dateien in /etc/vdr/command-hooks/ umbenennen und nach /usr/share/vdr/command-hooks/ verlinken. Die vom VDR-Paket installierten Kommandos, könnt ihr dann in /etc/vdr/command-hooks/order.commands.conf durch folgende Einträge deaktivieren:
-ctvdr
-shutdownvdr
Lasst euch von der auf den ersten Blick vielleicht etwas verwirrenden neuen Verzeichnisstruktur mit vielen symbolischen Links nicht abschrecken. Die Regel lautet:
Alle Dateien unter /etc/vdr sind Config-Dateien, die ihr nach euren Wünschen anpassen könnt. Unter /var/lib/vdr findet sich alles, was eher als "Daten-Datei" angesehen werden kann und i.d.R. komplett von VDR verwaltet wird.
Wollt ihr eine Sicherung aller für VDR wichtigen Dateien vornehmen, so müsst ihr lediglich /etc/vdr und /var/lib/vdr sichern, ohne den Symlinks zu folgen.
tar -cjf /var/backups/config.tar.bz /etc/vdr /var/lib/vdr
VDR-Video-Verzeichnis
Das bisherige Aufnahmeverzeichnis unter /video/ ist ebenfalls nicht FHS-konform. Der korrekte Platz für derartige Verzeichnisse ist /var/lib/.
Das Upgrade ändert das Aufnahmeverzeichnis von VDR in /etc/default/vdr auf /var/lib/video.00. Aus Kompatibilitätsgründen wird zudem ein Link /var/lib/video erzeugt, welcher auf video.00 verweist. Euer altes Aufnahmeverzeichnis wird jedoch weder verschoben noch gelöscht. Findet VDR beim Upgrade ein /video-Verzeichnis, so wird /var/lib/video.00 lediglich als Link auf /video/ angelegt.
Wenn /video/ bei euch einer anderen Partition zugeordnet ist, bietet es sich an, diese Parition statt dessen direkt nach /var/lib/video.00 zu mounten. Das ist nicht unbedingt notwendig, macht das ganze aber etwas übersichtlicher. Hierzu müsst ihr zunächst den bei der Installation angelegten symbolischen Link löschen und stattdessen als Mount-Punkt anlegem:
rm -r /var/lib/video.00
mkdir /var/lib/video.00
Daraufhin könnt ihr den entsprechende Eintrag in /etc/fstab nach folgendem Beispiel ändern:
# /dev/hda5 /video ext3 defaults 0 0
/dev/hda5 /var/lib/video.00 ext3 defaults 0 0
Alternativ könnt ihr die Aufnahmepartition auch nach /mnt/video/ mounten und den symbolischen Link /var/lib/video.00 darauf verweisen lassen.
Nach einem Neustart sollte der alte Mount-Punkt /video/ nun ein leeres Verzeichnis sein und kann gelöscht werden.
Nach dem Upgrade gestaltet sich die Einbindung zusätzlicher Partitionen für VDR-Aufnahmen denkbar einfach. Wollt ihr eine neue Partition einbinden, so müsst ihr diese nur nach /var/lib/video.01 mounten oder dorthin verlinken. Wenn auch das nicht reicht ist video.02 dran u.s.w.
Shutdown- / Recording-Hooks
Die Verzeichnisse für die Shutdown- und Recording-Hooks sind weiterhin /usr/share/vdr/shutdown-hooks und /usr/share/vdr/recording-hooks. Während bisher nur Shell-Scripte zulässig waren, erlaubt die neue VDR-Version jeder ausführbaren Datei in diesen Verzeichnissen, als Hook-Script gestartet zu werden. Hook-Scripte, die nicht als ausführbare Dateien gekennzeichnet sind, werden als Shell-Scripte gestartet.
Neu ist auch, dass die Kommunikation zwischen Shutdown-Hooks und aufrufendem Skript nicht mehr mittels Umgebungsvariablen, sondern via STDOUT erfolgt. Die Ausgaben, die ein Hook-Skript macht, werden vom aufrufenden Skript interpretiert. So kann ein Hook-Skript z.B. "TRY_AGAIN=5" ausgeben, um VDR zu veranlassen, in fünf Minuten einen erneuten Shutdown-Versuch zu unternehmen. Die Einzelheiten dazu sind in /usr/share/doc/vdr/README.Debian dokumentiert. Alle Add-on-Pakete, welche Hook-Scripte installieren, sind schon an die neue VDR-Version angepasst.
Solltet ihr jedoch eigene Hook-Scripte verwenden, so müsst ihr diese nach dem Upgrade von Hand an die neuen Bedingungen anpassen.
Hilfs-Skripte
Von einigen Skripten wurde die Endung ".sh" entfernt. Dies betrifft: - ctvdrinfo (Anzeige von Informationen zu den installierten Paketen) - ctvdrsysinfo (Anzeige von Systeminformationen, wie RAM-Belegung,
CPU-Last u.s.w)
- ctvdrstop (Beenden von VDR, ohne Herunterfahren)
- ctvdrrestart (Neustart von VDR)
- vdraptrefresh (Aktualisieren der VDR-Pakete)
Zudem haben die Tools "epg2html.pl" und "svdrpsend.pl" ihr neues Zuhause jetzt in /usr/lib/vdr/. Falls ihr eigene Skripte oder Addons verwendet, welche diese Tools verwenden, müsst ihr die Pfade entsprechend anpassen.
nvram-wakeup / vdr-addon-nvram-wakeup / kernel-poweroff-2.4.18
Mit der Übernahme von nvram-wakeup in das Alioth-Projekt haben wir uns dazu entschieden, nvram-wakeup und vdr-addon-nvram-wakeup in einem Paket zusammenzufassen. nvram-wakeup installiert damit nun nicht nur die notwendigen Binaries, sondern auch gleich den passenden Shutdown-Hook für VDR. Das Paket vdr-addon-nvram-wakeup ist nur noch ein Dummy-Paket, welches ihr nach einem Upgrade guten Gewissens mit
apt-get remove vdr-addon-nvram-wakeup
löschen könnt.
Von Hand müsst ihr dann noch die alten Einstellungen aus /etc/vdr/vdr-addon-nvram-wakeup.conf nach /etc/vdr/vdr-nvram-wakeup.conf übertragen.
In der neuen Version von nvram-wakeup ist es nötig, das u.U. notwendige Kommando zum Neustart vor dem Ausschalten mit der Konfigurationsvariablen SPECIALSHUTDOWN von Hand einzutragen:
SPECIALSHUTDOWN="/usr/sbin/specialshutdown"
Das Paket kernel-poweroff wurde übrigens in kernel-poweroff-2.4.18 umbenannt. Ihr könnt das alte Paket weiterverwenden, solltet bei Problemen mit Grub jedoch lieber kernel-poweroff-2.4.18 installieren, da hier ein kleiner Bug ausgebügelt wurde.
Neu ist auch, dass ihr das regelmäßige Aufwachen nicht mehr mittels MAX_POWEROFF_TIME, sondern mit Hilfe der Konfigurationsvariablen REGULAR_DAYS und REGULAR_TIME einstellen müsst. Soll sich der VDR-Rechner z.B. jeden 2. Tag um 13:00 Uhr zum Update der EPG-Daten einschalten, so müsst ihr die folgenden Einstellungen vornehmen:
REGULAR_DAYS=2
REGULAR_TIME=12:00
vdr-addon-icons
Die Senderlogos werden nicht mehr in /etc/vdr/logos, sondern in /var/lib/vdr/logos installiert und haben damit auch nicht mehr den Status von Config-Files.
vdr-addon-vdrconvert
Mit dem schon lange überfälligen Update des VDRConvert Add-ons hat sich auch hier einiges geändert. vdrsync ist jetzt bereits in VDRConvert enthalten, weshalb ihr das vdrsync-Paket deinstallieren könnt. vdrsync wird jedoch als Paket auch weiterhin von uns gepflegt.
Die recht unübersichtliche Konfigurationsdatei wurde aufgeteilt in:
- vdrconvert.conf (Allgemeine Einstellungen)
- vdrconvert.divx.conf
- vdrconvert.svcd.conf
- vdrconvert.vcd.conf
- vdrconvert.mpg.conf
- vdrconvert.ac3.conf
- vdrconvert.mp3.conf
- vdrconvert.dvd.conf
Diese Dateien findet ihr in /etc/vdr/vdrconvert/.
Auch die Kommandos im Aufzeichnungsmenü wurden nach ihrem Ausgabeformat in verschiedene Dateien aufgeteilt. In /etc/vdr/command-hooks/order.reccmds.conf könnt ihr nun selber die Reihenfolge der Einträge im OSD-Menü bestimmen. Soll an erster Stelle divx und an zweiter Stelle dvd stehen, tragt die folgenden Zeilen ein:
divx
dvd
Wenn ihr keine VCD oder SVCD erzeugen möchtet, dann setzt vor die entsprechenden Einträge einfach ein "-":
divx
dvd
-svcd
-vcd
Für SVCD/VCD sei an dieser Stelle auch gleich angemerkt, dass ihr hierfür das Tool "tosvcd" installieren müsst. Dafür gibt es derzeit kein Debian-Paket. Lediglich in vdr-addon-tosvcd ist es enthalten. Für DivX müsst ihr zudem das Paket mencoder von Christian Marillat installieren. Habt ihr das Mplayer-Paket selber compiliert, wird auch mencoder schon installiert sein.
Feedback
Es gibt sicher noch den einen oder anderen Knackpunkt, den ich nicht angesprochen habe. Wenn ihr über Probleme stolpert, die hier nicht beschrieben wurden oder die ihr nicht lösen könnt, schreibt mir bitte eine kurze Mail an vdr@nospam.e-tobi.net (nospam entfernen!).
Ich werde dann versuchen, eure Erfahrungen mit in dieses kleine Manual einzubauen, um dem Rest der c't-VDR-Gemeinde das Leben etwas zu erleichtern.