1.6. VDR-Konfiguration

Für yaVDR 0.6 wurde in Abstimmung mit den VDR-Paketen von e-tobi die Möglichkeiten zur Konfiguration des VDR überarbeit. Seit der Version 2.1.x kann der VDR die Konfiguration für die Start-Argumente und die Plugins selbst einlesen, so dass man nicht mehr auf ein komplexes Start-Skript angewiesen ist.

[Achtung]Änderung gegenüber früheren Versionen

Die Konfiguration der Start-Argumente für den VDR und die Plugins erfolgt bei yaVDR 0.6 nicht länger über die Dateien /etc/default/vdr, /etc/vdr/plugin/plugin.<plugin_name>.conf und die /etc/vdr/plugins/order.conf, sondern über die Dateien in /etc/vdr/conf.d/*.conf

Wird der VDR ohne Startargumente aufgerufen, liest er alle Dateien aus dem Verzeichnis /etc/vdr/conf.d/ mit der Endung .conf ein. Die Syntax ähnelt dem bekannten ini-Format.

Zeilen, die mit einer Raute # beginnen, werden vom Parser ignoriert.

Jeder Abschnitt wird durch einen Begriff in eckigen Klammern eingeleitet, der angibt, wofür die Argumente in den nachfolgenden Zeilen gelten sollen. Um Startargumente für den VDR zu definieren schreibt man also [vdr] und für Plugins den Pluginnamen, z.B. [softhddevice] für das Softhddevice-Plugin. In den folgenden Zeilen können dann Start-Argumente für den VDR bzw. das jeweilige Plugin übergeben werden. Falls es mehrere Abschnitte gibt, die mit dem gleichen Begriff eingeleitet werden, werden nur die Abschnitte für [vdr] zusammengefasst, bei Plugins wird die Konfiguration jeweils einzeln an den VDR übergeben, wodurch z.B. ein Plugin mehrfach mit unterschiedlichen Startargumenten geladen werden kann. Nicht alle Plugins (z.B. xineliboutput) vertragen es, wenn mehrere Instanzen geladen werden.

Um ein Plugin vom VDR laden zu lassen, genügt es seinen Namen in eckigen Klammern in einer Konfigurationsdatei abzulegen, will man den Start verhindern, muss man dafür sorgen, dass der VDR den Eintrag nicht mehr einliest. Ein bequemes Werkzeug um Plugins zu (de-)aktivieren oder die Start-Argumente zu bearbeiten ist vdrctl.

Die Datei /etc/vdr/conf.d/00_vdr.conf enthält die vom Distributor vorgegebenen Start-Argumente für den VDR. Da alle Dateien in /etc/, die aus Paketen stammen, vom Paket-System als Konfigurationsdateien angesehen werden, können diese nach Wunsch verändert werden. Falls ein Paket beim Update eine davon abweichende Version mitbringt, erhält man eine Rückfrage, welche Version man übernehmen möchte.

Die Plugin-Pakete werden mit vorgefertigten Konfigurationsdateien ausgeliefert, die nach /etc/vdr/conf.avail/<plugin_name>.conf installiert und (falls der Distributor vorgibt, dass das Plugin automatisch nach der Installation aktiviert werden soll, wie es bei yaVDR der Fall ist) nach /etc/vdr/conf.d/<priorität>-<plugin_name>.conf verlinkt werden. Die Standard-Priorität ist 50, ein abweichender Wert kann vom Distributor vorgegeben werden.

Alle Konfigurationsdateien in /etc/vdr/conf.d/ werden nach Dateinamen sortiert interpretiert und somit die Plugins in der Reihenfolge der gesetzten Priorität geladen. Das Plugin mit der niedrigsten numerischen Priorität wird zuerst geladen und das Plugin mit der höchsten numerischen Priorität als letztes.

Mit dem folgenden Befehl kann man sich die vom VDR interpretierten Startargumente anzeigen lassen:

$ vdr --showargs
[Tipp]Priorität für das dynamite-Plugin

Das dynamite-Plugin sollte immer die höchste Priorität erhalten, so dass es als letztes Plugin geladen wird.

Beispiel für eine Konfigurationsdatei für das softhddevice Plugin. 

#  -a device     audio device (fe. alsa: hw:0,0 oss: /dev/dsp)
#  -p device     audio device for pass-through (hw:0,1 or /dev/dsp1)
#  -c channel    audio mixer channel name (fe. PCM)
#  -d display    display of x11 server (fe. :0.0)
#  -f            start with fullscreen window (only with window manager)
#  -g geometry   x11 window geometry wxh+x+y
#  -v device     video driver device (va-api, vdpau, noop)
#  -s            start in suspended mode
#  -x            start x11 server, with -xx try to connect, if this fails
#  -X args       X11 server arguments (f.e. -nocursor)
#  -w workaround enable/disable workarounds
#        no-hw-decoder           disable hw decoder, use software decoder only
#        no-mpeg-hw-decoder      disable hw decoder for mpeg only
#        still-hw-decoder        enable hardware decoder for still-pictures
#        still-h264-hw-decoder   enable h264 hw decoder for still-pictures
#        alsa-driver-broken      disable broken alsa driver message
#        alsa-no-close-open      disable close open to fix alsa no sound bug
#        alsa-close-open-delay   enable close open delay to fix no sound bug
#        ignore-repeat-pict      disable repeat pict message
#        use-possible-defect-frames prefer faster channel switch
#  -D            start in detached mode
#

[softhddevice]
-D
-d :1.0
-w still-hw-decocer
-v vdpau

1.6.1. vdrctl

vdrctl ist ein Hilfsprogramm, das die Verwaltung der Konfigurationsdateien für den VDR vereinfacht. Hier ein paar Beispiele zur Verwendung:

Hilfe zu vdrctl anzeigen. 

$ vdrctl -h

Status aller verfügbaren Plugins. 

$ vdrctl status

Aktivierung eines Plugins. 

$ sudo vdrctl enable streamdev-client

Aktivierung eines Plugins unter Angabe der Priorität. 

$ sudo vdrctl enable dynamite -p 90

Aktivierung mehrerer Plugins. 

$ sudo vdrctl enable streamdev-client vnsiserver

Deaktivierung eines Plugins. 

$ sudo vdrctl disable iptv

Deaktivierung mehrerer Plugins. 

$ sudo vdrctl disable streamdev-client streamdev-server iptv

Bearbeiten der Konfiguration für ein Plugin. 

$ sudo vdrctl edit imonlcd

Bearbeiten der Konfiguration mit einem Wunsch-Editor (hier vim): 

$ EDITOR=vim sudo vdrctl edit imonlcd

1.6.2. Der hide-first-recording-level Patch

Wenn man lokale Aufnahmen, Wechseldatenträger und über den avahi-linker eingebundene Aufnahmen anderer VDRs sowie Archivverzeichnisse ohne störende Trennung durch extra Unterordner in der Aufnahmendarstellung des VDR nutzen möchte, kann man den hide-first-recording-level Patch aktivieren - die originale Beschreibung der Funktion sieht so aus:

  -H,       --hide-first-recording-level
                           The first level directories in the video directory
                           will be ignored in the recordings menu.
                           All recordings will be placed in the directory 'local'.
                           You can mount/link other video directories inside the
                           video directory to display their contents side by side
                           with your local video directory

Um den hide-first-recording-level Patch zu aktivieren, geht man folgendermaßen vor:

  • den VDR stoppen
sudo stop vdr
  • das Verzeichnis local im VIDEODIR des VDR erstellen, z.B.:
sudo mkdir -p /srv/vdr/video/local
sudo chown vdr:vdr /srv/vdr/video/local
  • eine Konfigurationsdatei (z.B. /etc/vdr/conf.d/05-vdr-hide-first-recording-level.conf) erstellen, um den VDR die Start-Option mitzugeben:
[vdr]
--hide-first-recording-level
  • alle bestehenden Aufnahmen aus dem VIDEODIR nach VIDEODIR/local verschieben:
cd /srv/vdr/video
sudo mv !(local)/ local/ # alle Ordner in das Verzeichnis local verschieben
  • vdr wieder starten:
sudo start vdr

Wenn mehrere VDRs den hist-first-recording-level Patch nutzen, empfiehlt es sich die /etc/init/mhddfs.conf entsprechend anzupassen, damit /srv/vdr/video.00/local nach /srv/share/vdr gemountet wird.

[Wichtig]Wichtig!

Wird der hide-first-recording-level Patch genutzt, müssen beim Verschieben von Aufnahmen der vollständige Pfad an den VDR und seine Plugins übergeben werden, d.h. im live-Plugin nutzt man dann z.B. local~Filme~Heidi statt dem gewohnten Pfad Filme~Heidi. Die folders.conf des VDR sollte man auch um eine Basis-Ebene local erweitern, damit die Aufnahmen an der richtigen Stelle landen. Auch eine Voreinstellung zum Kopieren von Aufnahmen ins Archiv (hier unter /srv/vdr/video/Archiv verfügbar) lässt sich so umsetzen:

local {
Dokumentationen
Kabarett
Filme
Serien
}
Archiv {
Dokumentationen
Filme
Serien
}