SelfLinux Multimedia Video vdr Abschnitt 2 | SelfLinux-0.13.0

| vdr | Autoren Formatierung GFDL

#### 2 Installation

#### 2.1 DVB-Treiber

Für die DVB-Karten braucht man den entprechenden Treiber, welcher ursprünglich von der Firma Convergence entwickelt wurde und auf http://www.linuxtv.org als freie Software zur Verfügung gestellt wird.

Die vom Entwickler der VDR-Software jeweilig genutzte Version steht auf der Projekthomepage bereit. Sie dient denn auch als Basis für diese Installation.

http://www.cadsoft.de/people/kls/vdr/ Voraussetzung für eine erfolgreiche Übersetzung der Quellen sind ein aktueller Kernel der Version 2.4 mit Modul-Unterstützung für video4linux und i2c. Ebenso muss die Unterstützung für input-core und event-interface vorhanden sein. Zudem müssen die Kernelquellen installiert sein.

Nunmehr kann es an die Installation des Treibers gehen. Diese erfolgt aus dem Verzeichnis /usr/local/src heraus.

root@linux ~# cd /usr/local/src root@linux /usr/local/src# tar -xjvf siemens_dvb-0.9.4-2002-12-08.tar.bz2 root@linux /usr/local/src# ln -s siemens_dvb-0.9.4-2002-12-08 DVB root@linux /usr/local/src# cd DVB/driver root@linux /usr/local/src/DVB/driver# make root@linux /usr/local/src/DVB/driver# ./makedev.napi root@linux /usr/local/src/DVB/driver# make insmod

Aktuell ist dies die als NEWSTRUCT bezeichnete CVS-Entwicklerversion des Treibers, welcher die gleichzeitige Aufnahme mehrerer Programme vom gleichen Transponder und das Timeshifting mit nur einer einzigen DVB-Karte möglich macht.

Beim Laden der Treiber sollte der Copyright-Schriftzug und bei korrekter Ausrichtung auf ASTRA am TV-Ausgang der DVB-Karte erscheinen. Ist das der Fall, war zumindest das Laden des Treibers schon mal erfolgreich.

#### 2.2 VDR

Die aktuelle Version der VDR-Software mit Plugins-Konzept befindet sich offiziell noch im experimentellen Stadium, ist aber schon für den praktischen Einsatz geeignet und kann downgeloaded werden.

ftp://ftp.cadsoft.de/vdr/Developer/

Die Übersetzung dieser Software muss unbedingt aus dem gleichen Verzeichnis /usr/local/src wie das des DVB-Treibers erfolgen.

root@linux ~# cd /usr/local/src root@linux /usr/local/src# tar -xjvf vdr-1.1.20.tar.bz2 root@linux /usr/local/src# ln -s vdr-1.1.20 VDR root@linux /usr/local/src# cd VDR root@linux /usr/local/src/VDR# make VFAT=1

Die Steuerung mit der Tastatur ist hierbei immer möglich. Man kann auch zusätzlich mit REMOTE=LIRC die Bedienung mittels des Paketes LIRC per Fernbedienung vorsehen. Die Option VFAT=1 ist notwendig, wenn man beispielsweise auf einer FAT32-Partition des Betriebssystems Windows aufzeichnen will, oder aber auch, sobald man die gespeicherten Files zur späteren Bearbeitung etwa mittels Samba im Windows-Netzwerk exportieren will.

Vor dem ersten Aufruf des Programms müssen noch die Konfigurationsdateien in das zu erstellende Verzeichnis /video kopiert werden. In diesem Verzeichnis werden später auch die aufgezeichneten Video-Dateien gespeichert.

root@linux /usr/local/src/VDR# mkdir /video root@linux /usr/local/src/VDR# cp *.conf /video

Anschließend wird die Software aus dem aktuellen Verzeichnis heraus gestartet und kann mit Tastatursteuerung bedient werden.

root@linux /usr/local/src/VDR# ./vdr

Zum Beenden verwendet man die Tastenkombination `STRG+``c`.

Die verschiedenen Optionen kann man sich anzeigen lassen mittels:

root@linux /usr/local/src/VDR# ./vdr --help

Die VDR-Software startet nur, wenn auch die DVB-Treiber geladen sind. Der komfortabelste Weg dies zu erreichen ist, das Skript runvdr dafür zu nutzen. Ruft man dieses als root auf, lädt es die Treiber bei Bedarf automatisch und startet dann die VDR-Software. Ausserdem sorgt es durch Aktivierung der internen Watchdog-Funktion dafür, dass eine im Fehlerfall abgestorbene VDR-Software und auch der DVB-Treiber im Bedarfsfall selbstständig innerhalb einer Minute wieder neu gestartet wird.

Zuvor sollte man noch dafür sorgen, dass die Steuerung über Tastatur weiterhin möglich bleibt. Dazu legt man tty8 als kontrollierendes Terminal mit einer Ergänzung in der Datei runvdr. Von der graphischen Oberfläche schaltet man mit der Tastenkombination `STRG+``ALT+``F8` um und von der Textkonsole aus mit `ALT+``F8`.

runvdr

    ...
    DVBDIR="../DVB/driver"
    VDRPRG="./vdr"
    VDRCMD="$VDRPRG -w 60 -t /dev/tty8 $*"
    ...

Danach kann man das Startskript aus dem Quellverzeichnis her aufrufen.

root@linux ~# cd /usr/local/src/VDR root@linux /usr/local/src/VDR# ./runvdr

Bei der vollständigen Installation der VDR-Software wird das Binary und auch das Skript runvdr in das Verzeichnis /usr/local/bin kopiert.

root@linux ~# cd /usr/local/src/VDR root@linux /usr/local/src/VDR# make install

Ebenso ist dann die Manpage als Ergänzung zur beigefügten Dokumentation im Quellpaket auf dem System verfügbar und kann aufgerufen werden.

root@linux ~# man vdr

Gleiches gilt für den Abschnitt 5 mit den Erläuterungen zum Format der einzelnen Konfigurationsdateien.

root@linux ~# man 5 vdr

#### 2.3 Konfigurationsdateien

#### 2.3.1 remote.conf

Beim erstmaligen Aufruf der VDR-Software geht das Programm in den Lernmodus um wahlweise die Tasten oder aber auch bei laufendem LIRC-Dämon im Falle einer Fernbedienung die Signale zur Steuerung der VDR-Funktionen wunschgemäß zuzuordnen. Während der Lernphase kann man Korrekturen durchführen oder vorzeitig abbrechen. Das Ergebnis wird dann in der Datei remote.conf gespeichert. Der Inhalt der erzeugten Datei bei Einsatz von LIRC könnte folgendermaßen aussehen:

LIRC.Up | UP
LIRC.Down | DOWN
LIRC.Menu | MENU
LIRC.Ok | OK
LIRC.Back | BACK
LIRC.Left | LEFT
LIRC.Right | RIGHT
LIRC.Red | RED
LIRC.Green | GREEN
LIRC.Yellow | YELLOW
LIRC.Blue | BLUE
LIRC.0 | 0
LIRC.1 | 1
LIRC.2 | 2
LIRC.3 | 3
LIRC.4 | 4
LIRC.5 | 5
LIRC.6 | 6
LIRC.7 | 7
LIRC.8 | 8
LIRC.9 | 9
LIRC.Power | POWER
LIRC.Volume+ | VOLUME+
LIRC.Volume- | VOLUME-
LIRC.Mute | MUTE

Auch wenn es in dieser Beispieldatei noch der Fall ist, ist es jetzt nicht mehr nötig die Tastenbenennung in der lircd.conf den Kommandos für VDR anzupassen. Es ist jetzt grundsätzlich eine freie Belegung möglich. Löscht man diese Datei, geht die VDR-Software beim nächsten Aufruf wieder in den Lernmodus.

Mann kann zusätzlich spezielle Schlüssel für den direkten Zugriff auf einige Menüpunkte der VDR-Software anlernen. Ebenso lassen sich einige weitere Schlüsselwörter auf Wunsch für bestimmte Tasten einer Fernbedienung anlernen, welche z. B. in den Plugins eine besondere Bedeutung zugewiesen bekommen können. Während der Lernphase lassen sich nicht benötigte Tasten auch überspringen. Im obigen Beispiel sind nur die für die Grundfunktionen des VDR nötigen Elemente aufgeführt.

#### 2.3.2 channels.conf

Die mitgelieferte Datei channels.conf für DVB-s(atellite) enthält relativ aktuell eine Senderbelegung des digitalen ASTRA-Programmangebotes. Auch jeweils eine Vorlagedatei für DVB-c(able) und DVB-t(errestrial) liegen bei.

channels.conf

    ..
    ORF1:12692:h:S19.2E:22000:160:161:165:102:13001:0:0:0
    ORF2:12692:h:S19.2E:22000:500:501:505:102:13002:0:0:0
    ZDF.info:11954:h:S19.2E:27500:610:620:0:0:28011:0:0:0
    CNN:12168:v:S19.2E:27500:165:100:0:0:28512:0:0:0
    Super RTL:12188:h:S19.2E:27500:165:120:65:0:12040:0:0:0
    VOX:12188:h:S19.2E:27500:167:136:71:0:12060:0:0:0
    Kabel 1:12480:v:S19.2E:27500:511:512:33:0:899:0:0:0
    Neun Live:12480:v:S19.2E:27500:767:768:35:0:897:0:0:0
    DSF:12480:v:S19.2E:27500:1023:1024:0:0:900:0:0:0
    HOT:12480:v:S19.2E:27500:1279:1280:0:0:40:0:0:0
    Bloomberg TV Germany:12552:v:S19.2E:22000:162:99:0:0:12160:0:0:0
    Bloomberg TV France:11817:v:S19.2E:27500:163:92:0:0:8004:0:0:0
    Bloomberg TV Spain:12168:v:S19.2E:27500:167:112:0:0:12721:0:0:0
    Sky News:12552:v:S19.2E:22000:305:306:0:0:3995:0:0:0
    Fox Kids Netherlands:12574:h:S19.2E:22000:163:92:0:0:5020:0:0:0
    Alice:12610:v:S19.2E:22000:162:96:0:0:12200:0:0:0
    n-tv:12670:v:S19.2E:22000:162:96:55:0:12730:0:0:0
    Grand Tourisme:12670:v:S19.2E:22000:289:290:0:0:17300:0:0:0
    TW1:12692:h:S19.2E:22000:166:167:0:0:13013:0:0:0
    Eurosport:11954:h:S19.2E:27500:410:420:0:0:28009:0:0:0
    EinsExtra:12110:h:S19.2E:27500:101:102:0:0:28201:0:0:0
    EinsFestival:12110:h:S19.2E:27500:201:202:0:0:28202:0:0:0
    EinsMuXx:12110:h:S19.2E:27500:301:302:0:0:28203:0:0:0
    ZDF Theaterkanal:11954:h:S19.2E:27500:1110:1120:0:0:28016:0:0:0
    ZDF.doku:11954:h:S19.2E:27500:660:670:0:0:28014:0:0:0
    MDR:12110:h:S19.2E:27500:401:402:404:0:28204:0:0:0
    ORB:12110:h:S19.2E:27500:501:502:504:0:28205:0:0:0
    B1:12110:h:S19.2E:27500:601:602:604:0:28206:0:0:0
    :Premiere World
    Premiere Start:11797:h:S19.2E:27500:255:256:0:101:8:0:0:0
    Premiere 1:11797:h:S19.2E:27500:511:512,513;515:0:101:10:0:0:0
    Premiere 2:11797:h:S19.2E:27500:1791:1792,1793;1795:0:101:11:0:0:0
    Premiere 3:11797:h:S19.2E:27500:2303:2304:0:101:43:0:0:0
    Premiere 4:11797:h:S19.2E:27500:767:768:0:101:9:0:0:0
    Premiere 5:11797:h:S19.2E:27500:1279:1280:0:101:29:0:0:0
    Premiere 6:11797:h:S19.2E:27500:1535:1536:0:101:41:0:0:0
    Premiere 7:11797:h:S19.2E:27500:1023:1024:0:101:20:0:0:0
    ...

Im Einzelnen bedeuten die Einträge in jeder Zeile der Reihe nach: Programmbezeichnung, Transponderfrequenz, Polarisation, DiSEqC-Quelle, Symbolrate, Video-PID, Audio-PID, Teletext-PID, Verschlüsselungsmethode und Service-ID. Es folgen noch für zukünftige Nutzung die Network-ID, die Transport Stream-ID und sowie die Radio-ID. Die verschiedenen Programmgruppen können durch eine Zeile mit vorangestelltem Doppelpunkt zusammengefasst werden, damit sie im Menü auf kurzem Wege angewählt werden können. Zusätzlich kann hier nach einem "@" noch die nächste Kanalnummer vorgegeben werden.

#### 2.3.3 ca.conf

Wer ein CI-Modul für seine DVB-Karte sowie ein AllCAM 4.6/4.7SE und natürlich die entsprechende Abo-Karte besitzt, kann auch verschlüsselte Sendungen betrachten. Das jeweilig benutzte Verschlüsselungsverfahren muss dafür im OSD für jede Karte ausgewählt werden. Die in der Datei ca.conf vorgesehenen Werte entsprechen dem vorletzten Wert jeder Zeile in der channels.conf.

ca.conf

    # Conditional Access configuration for VDR
    #
    # Format:
    #
    # number  description
    #
    # Please contact kls@cadsoft.de before assigning a new number
    # to a description, in order to keep them unique.

    0      Free To Air

    # BetaCrypt

    101    Premiere World
    102    ORF
    103    DIGI-Kabel

    ...

Maximal 2 Verschlüsselungen je DVB-Karte sind möglich; die freien Programme (FTA) können dabei auch ohne besondere Angabe empfangen werden.

#### 2.3.4 svdrphosts.conf

Über das Simple Video Disk Recorder Protocol (SVDRP) kann die VDR-Software auch über das Netzwerk gesteuert werden. Standardmäßig ist in der Datei svdrphost.conf nur der Zugriff von localhost mit der IP-Adresse 127.0.0.1 freigegeben, kann aber auf Wunsch auch beispielsweise für ein ganzes Subnetz wie 192.168.1.0 mit der Netzmaske 255.255.255.0 freigegeben werden. Notwendig ist der Zugang via Netz z. B. für Programme wie kvdr und vdradmin, die diese Möglichkeit der Steuerung nutzen. Der gleichzeitige Zugriff mehrerer Programme über diese Schnittstelle ist allerdings nicht möglich.

scdrphosts.conf

    #
    # svdrphosts    This file describes a number of host addresses that
    #               are allowed to connect to the SVDRP port of the Video
    #               Disk Recorder (VDR) running on this system.
    # Syntax:
    #
    # IP-Address[/Netmask]
    #

    127.0.0.1             # always accept localhost
    192.168.1.0/24        # any host on the local net
    #204.152.189.113      # a specific host
    #0.0.0.0/0            # any host on any net (USE THIS WITH CARE!)

In der Voreinstellung wird Port 2001 zur Steuerung genutzt.

root@linux ~# telnet localhost 2001

Die verfügbaren Befehle werden einem nach dem Einloggen mit help angezeigt. Auch eine Erklärung zu jedem einzelnen Befehl kann man erhalten.

root@linux ~# help BEFEHL

#### 2.3.5 sources.conf

VDR arbeitet grundsätzlich mit den verschiedenen DVB-Karten für Kabel (DVB-c), terrestrischen Empfang (DVB-t) und Empfang über Satellit (DVB-s) zusammen. In den Menüeinstellungen zum Festlegen der Quelle eines Kanals werden aus der sources.conf die Angaben entnommen. Sie finden sich dann auch entsprechend in der channels.conf wieder.

sources.conf

    # Sources configuration for VDR
    #
    # Format:
    #
    # code  description
    #
    # S (satellite) xy.z (orbital position in degrees) E or W (east or west)
    # Note: only the first part is actually used by VDR. The description part
    # is for the "human" interface for clarity.
    #
    # '&' means same orbital position but different host company.
    # '/' means same (or very little deviation) orbital position & host.
    # A value in () means this satellite is still in it's test phase.
    #
    # Please contact kls@cadsoft.de before assigning a new code
    # to a description, in order to keep them unique.

    # Satellites

    S5E     Sirius 2/3
    S7E     Eutelsat W3
    S10E    Eutelsat W1R
    S13E    Hotbird 1-(5)-6
    S16E    Eutelsat W2
    S19.2E  Astra 1B/C/E/F/G/H/2C

    ...

    # Cable

    C       Cable

    # Terrestrial

    T       Terrestrial

#### 2.3.6 diseqc.conf

Die Datei diseqc.conf dient zur Steuerung einer Anlage mit mehreren Satelliten. Diese werden mittels der Signalisierung nach DiSEqC (Digital Satellite Equipment Control). Die Angaben werden nur gebraucht, wenn man mehr als einen Satelliten über beispielsweise einen entsprechenden Umschalter an einer DVB-Karte betreibt.

diseqc.conf

    # DiSEqC configuration for VDR
    #
    # Format:
    #
    # satellite slof polarization lof command...
    #
    # satellite:      one of the 'S' codes defined in sources.conf
    # slof:           switch frequency of LNB; the first entry with
    #                 an slof greater than the actual transponder
    #                 frequency will be used
    # polarization:   V = vertical, H = horizontal
    # lof:            the local oscillator frequency to subtract from
    #                 the actual transponder frequency
    # command:
    #   t         tone off
    #   T         tone on
    #   v         voltage low (13V)
    #   V         voltage high (18V)
    #   A         mini A
    #   B         mini B
    #   Wnn       wait nn milliseconds (nn may be any positive integer number)
    #   [xx ...]  hex code sequence (max. 6)
    #
    # The 'command...' part is optional.
    #
    # Examples:

    # Full DiSEqC sequence:

    S19.2E  11700 V  9750  t v W15 [E0 10 38 F0] W15 A W15 t
    S19.2E  99999 V 10600  t v W15 [E0 10 38 F1] W15 A W15 T
    S19.2E  11700 H  9750  t V W15 [E0 10 38 F2] W15 A W15 t
    S19.2E  99999 H 10600  t V W15 [E0 10 38 F3] W15 A W15 T

    S21.5E  11700 V  9750  t v W15 [E0 10 38 F4] W15 B W15 t
    S21.5E  99999 V 10600  t v W15 [E0 10 38 F5] W15 B W15 T
    S21.5E  11700 H  9750  t V W15 [E0 10 38 F6] W15 B W15 t
    S21.5E  99999 H 10600  t V W15 [E0 10 38 F7] W15 B W15 T

    ...

Für den Fall des Falles sind hier auch noch Alternativen für die DiSEqC-Ansteuerung aufgeführt.

#### 2.3.7 commands.conf

Die VDR-Software bietet die Möglichkeit selbst definierte Befehle aus dem OSD heraus per Fernbedienung ausführen zu lassen. Hierzu legt man sich eine Datei unter der Bezeichnung commands.conf an. Es lassen sich daraus beliebige Scripte ausführen und deren Ausgaben formatiert im OSD anzeigen.

TDSL-Verbindung ein :

root@linux ~# sudo /usr/sbin/cinternet -start; echo "PPPD gestartet"

TDSL-Verbindung aus :

root@linux ~# sudo /usr/sbin/cinternet -stop; echo "PPPD gestoppt"

Den verschiedenen Befehlen wird beim Aufruf automatisch eine laufende Nummer zur Kurzwahl vorangestellt. Hängt man ein Fragezeichen hinter den korrespondierenden Text, wird vor der Ausführung noch eine Bestätigung verlangt. Die Kommandos werden hier mit der Berechtigung des Users der VDR-Software ausgeführt. Bei Befehlen, welche eigentlich nur durch dem Superuser root ausgeführt werden können, ist hierzu sinnvollerweise auf die sudo-Anweisung zurückzugreifen, wenn die Software nicht mit der Berechtigung von root gestartet wurde.

#### 2.3.8 reccmds.conf

Wenn man im Auswahlmenü der Aufzeichnungen einen bestimmten Eintrag markiert, lassen sich hierfür frei definierbare Befehle ausführen. Das Format der reccmds.conf entspricht dabei den Vorgaben für die commands.conf. Aufgerufen wird es bei der markierten Aufnahme durch Drücken einer der Zifferntasten.

Konvertierungsliste ergänzen?:

root@linux ~# echo $1 >> /video/toconvert.txt

In diesem Beispiel wird nach einer Bestätigung der Name der markierten Aufnahme einer Datei zur späteren Konvertierung dieser Aufnahme hinzugefügt.

#### 2.3.9 keymacros.conf

Beigefügt ist auch eine Datei keymacros.conf für die Definition von Kurzbefehlen, die durch Drücken z. B. der Farbtasten direkt während einer Wiedergabe die direkte Ausführung von Menüpunkten erlaubt. Praktischerweise kann man dabei gleich verschiedene Tastendrücke hintereinander simulieren.

keymacros.conf

    # Remote control key macros for VDR
    #
    # Format:
    #
    # macrokey  key1 key2 key3...
    #
    # See man vdr(5)

    Red       Recordings
    Green     Schedule Ok
    Blue      Timers
    Yellow    Commands

#### 2.4 Systemuser

Aus Sicherheitsgründen ist es normalerweise keine gute Idee einen Dienst mit der Berechtigung des Superusers root laufen zu lassen. Man sollte allerdings bedenken, dass für die Funktion des Setzens der Systemzeit von der VDR-Software dies notwendig wäre. Dennoch richtet man für den im Hintergrund laufenden VDR-Dämon sinnvollerweise einen User auf dem System mit eingeschränkten Rechten ein. Das Konzept hierzu ist dem Paket vdrdaemon_SuSE.tar.gz aus dem Tools-Unterverzeichnis des Downloadservers der VDR-Software entnommen. Diese Paket enthält auch ein Skript namens mk_vdrdaemon, welches vollautomatisch alle notwendigen Schritte zum Einrichten eines Systemusers und der entsprechenden Startskripte ermöglicht, aber es setzt die korrekte und vollständige Installation der DVB-Treiber im System voraus. Dies habe ich auch in mehreren Anläufen noch nicht erfolgreich zu Wege gebracht. Daher beschränke ich mich hier auf denjenigen Teil, der auch tatsächlich funktioniert.

Es wird der User vdr mit der Zugehörigkeit zur vorab erstellten Gruppe vdrdaem sowie entsprechendem Passwort erzeugt.

root@linux ~# groupadd -g 99 vdrdaem root@linux ~# useradd -u 99 -g vdrdaem -d /usr/local/vdr -p vdrdaem -c 'VDR User' vdr

Die User- und Group-ID unterhalb des Wertes 100 sind traditionell für die speziellen User von Systemdiensten vorbehalten.

Im Anschluss daran muss man noch das Verzeichnis für die Videodaten und ein zu erstellendes Verzeichnis für die Konfigurationsdateien sowie die Gerätetreiber mit den passenden Zugehörigkeiten versehen.

root@linux ~# chown -R vdr:vdrdaem /video root@linux ~# mkdir -p /usr/local/vdr/etc/plugins root@linux ~# chown -R vdr:vdrdaem /usr/local/vdr root@linux ~# chown vdr:vdrdaem /dev/dvb/adapter?/*

Ausserdem sind noch die Beispielkonfigurationsdateien in das dafür vorgesehene Verzeichnis zu kopieren. Ebenfalls sind ggf. noch die Rechte zu erweitern für das kontrollierende Terminal wie und das DVD-Laufwerk, wenn es später einmal mit dem DVD-Plugin genutzt werden sollte.

root@linux ~# cp /usr/local/src/VDR/*.conf /usr/local/vdr/etc root@linux ~# chmod o+rw /dev/tty8 root@linux ~# chmod o+rw /dev/dvd

#### 2.5 Systemstart

Was noch fehlt, ist eine elegante Art die VDR-Software beim Booten des Rechners automatisch vom System aus starten zu lassen. Geeignet ist hierzu das Skript runvdr, weil es gleichzeitig den DVB-Treiber startet. Um mit dem Skript runvdr aus dem Verzeichnis /usr/local/bin die VDR-Software starten zu können sind hierin Änderungen und Ergänzungen durchzuführen.

runvdr

    ...
    DVBDIR="/usr/local/src/DVB/driver"
    VDRPRG="/usr/local/bin/vdr -L /usr/local/src/VDR/PLUGINS/lib -c /usr/local/vdr/etc"
    VDRCMD="$VDRPRG -w 60 -t /dev/tty8 $*"
    VDRUSR=vdr
    ...

Wie man erkennen kann, ist das zu nutzende Verzeichnis für die Konfigurationsdateien mit einer Option angegeben und auch die Variable für den Systemuser, mit dessen Berechtigung die VDR-Software laufen soll, ist gesetzt. Ausserdem wird schon mal der Pfad angegeben, in dem später die Libs der Plugins zu finden sind. Damit die Treiber geladen werden können in das Skript zunächst noch vom Superuser root aufzurufen.

Für die vollständige Automatisierung des Startvorgangs kann man am Ende der Datei /etc/inittab z. B. folgende Zeile hinzufügen. Diese bewirkt den Start der VDR-Software in den definierten Runleveln 3 und 5 beim Hochfahren des Rechners.

runvdr

    ...
    vdr:35:once:/usr/local/bin/runvdr > /dev/null

#### 2.6 Shutdown

Die VDR-Software bietet die praktische Möglichkeit den Rechner nach einer bestimmten Zeit der Inaktivität und wenn keine Aufnahmen anstehen den Rechner automatisch oder aber auch per Direkteingabe herunterzufahren. Man benötigt lediglich ein kleines Skript, welches diese Aufgabe erledigt und beispielsweise unter dem Namen vdrshutdown im Verzeichnis /usr/local/bin angelegt wird.

vdrshutdown

    #!/bin/bash
    sudo /sbin/halt -p

Das Skript muss ausführbar gemacht werden.

root@linux ~# chmod +x /usr/local/bin/vdrshutdown

Da in diesem Fall die VDR-Software mit den beschränkten Rechten des Users vdr läuft muss per sudo das Kommando zum Herunterfahren des Rechners gegeben werden. Damit nun der User vdr auf dem Rechner namens vdr diesen Befehl ohne Eingabe des Passworts ausführen kann, ist die Datei /etc/sudoers zu editieren. Dies geschieht mit mit dem berüchtigten Editor vi, der hier gleichzeitig eine formale Prüfung der Änderungen durchführt.

root@linux ~# visudo

Bei diesem Editor gelangt man mit der Taste `i` in den Einfügemodus und mit `ESC` wieder zurück. Abgespeichert werden kann durch die Eingabe von :wq und beendet ohne zu speichern wird mit :q.

visudo

    ...
    # User privilege specification
    root    ALL=(ALL) ALL
    vdr     ALL=(ALL) NOPASSWD: /sbin/halt

Abschließend wird noch die Option für den automatischen Shutdown im Skript runvdr ergänzt.

runvdr

    ...
    DVBDIR="/usr/local/src/DVB/driver"
    VDRPRG="/usr/local/bin/vdr -L /usr/local/src/VDR/PLUGINS/lib -c /usr/local/vdr/etc"
    VDRCMD="$VDRPRG -w 60 -t /dev/tty8 -s /usr/local/bin/vdrshutdown $*"
    VDRUSR=vdr
    ...