Skip to content

VDR4Arch Installation (de_DE)

Manuel Reimer edited this page Apr 2, 2020 · 14 revisions

Table of Contents

Allgemein

VDR4Arch ist ein fertiger Paketsatz für VDR auf Arch Linux. Höchstes Ziel ist es dabei, die Regeln des [Arch](https://wiki.archlinux.org/index.php/DeveloperWiki) einzuhalten.

Basiseinrichtung

Eine ausführliche Anleitung zur Grundinstallation von Arch Linux gibt es auf der [Arch]([Arch-Linux|)]. Hier nur ein paar Schritte, die neben den x86-Systemen auch für die ARM-Systeme wichtig sind.

Hostnamen setzen (z.B. "vdr01")

 # echo vdr01 > /etc/hostname

Zeitzone festlegen

 # ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
 # nano /etc/locale.gen

Von 'de_DE.UTF-8' das Kommentarzeichen entfernen

Sprachen generieren

 # locale-gen

Systemsprache setzen

 # echo 'LANG=de_DE.UTF-8' > /etc/locale.conf

Tastaturlayout dauerhaft auf Deutsch stellen.

 # echo 'KEYMAP=de' > /etc/vconsole.conf

Root-Passwort setzen (Auf x86-Systemen gibt es keines, auf ARM-Systemen ist das Default 'root')

 # passwd

Und das System booten

 # reboot

Installation VDR4Arch

Das Repository fügt man ans Ender von /etc/pacman.conf an

 [vdr4arch]
 Server = https://vdr4arch.github.io/$arch
 SigLevel = Never

Dann aktualisieren wir die lokale Paketdatenbank

 # pacman -Sy

Über

 # pacman -Sl vdr4arch

kann man die verfügbaren Pakete auflisten.
Weitere Einzelheiten können auch in der Paketübersicht](vdr4arch])] nachgelesen werden.

Ausgabe VA-API/VDPAU

Vorbereitung

Sollte der X-Server nicht schon auf eine andere Weise gestartet werden, muss der Start des X-Servers aktiviert werden. Der einfachste Weg dafür ist es, vdr-xorg zu installieren:
 # pacman -S vdr-xorg
Das Paket vdr-xorg erweitert die systemd-Konfiguration für VDR so, dass vor dem Start ein X-Server mitgestartet wird.

Intel(VA-API)

Zuerst muss der Treiber installiert werden:
 # pacman -S xf86-video-intel
Danach wird der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden
 # nano /etc/X11/xorg.conf.d/20-vdr.conf
mit folgendem Inhalt
 Section "Screen"
   Identifier  "Screen0"
   Device      "Device0"
   Monitor     "HDMI1"
   DefaultDepth  24
   SubSection "Display"
     Depth       24
     Modes     "1920x1080_50" "1920x1080_60" "1920x1080_24"
   EndSubSection
 EndSection
 
 Section "Monitor"
   Identifier  "HDMI1"
   Modeline    "1920x1080_24"     74.230 1920 2560 2604 2752 1080 1084 1089 1125 +hsync +vsync
   Modeline    "1920x1080_50"    148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
   Modeline    "1920x1080_60"    148.500 1920 2008 2056 2200 1080 1084 1089 1125 +hsync +vsync
 EndSection
 
 Section "Extensions"
     Option         "Composite" "Disable"
 EndSection
Damit die Tonausgabe auch funktioniert legen stellen wir das Standard Device von ALSA in der /etc/asound.conf um. Bei Intel sollte grundsätzlich das hier funktionieren.
 pcm.!default {
   type hw
   card PCH
   device 7
 }
Sollte wider erwarten nicht funktionieren, lohnt sich ein Blick in die Deviceliste. Dafür installieren wir alsa-utils
 # pacman -S alsa-utils
und geben die Deviceliste mit
 # aplay -l
aus.
     *    * List of PLAYBACK Hardware Devices     *    *
 card 0: PCH [Intel](HDA), device 0: ALC662 rev1 Analog [rev1](ALC662)
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 0: PCH [Intel](HDA), device 3: HDMI 0 [0](HDMI)
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 0: PCH [Intel](HDA), device 7: HDMI 1 [1](HDMI)
   Subdevices: 1/1
   Subdevice #0: subdevice #0
Intel hat in den neueren Treiberversionen einen unschönen Grauschleier über dem Bild. Um diesen wegzubekommen installieren wir xorg-xrandr
 # pacman -S xorg-xrandr
und erstellen die Datei /home/vdr/.xinitrc
 #!/usr/bin/bash
 xrandr --output HDMI1 --set "Broadcast RGB" "Full"
NVidia(VDPAU)
Zuerst muss der Treiber installiert werden
 # pacman -S nvidia
Danach wird der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden
 # nano /etc/X11/xorg.conf.d/20-vdr.conf
mit folgendem Inhalt
 Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "ExactModeTimingsDVI" "True"
    Option         "FlatPanelProperties" "Dithering = disabled"
    Option         "NoLogo" "True"
    SubSection     "Display"
        Depth       24
        Modes      "1920x1080_50" "1920x1080_60_0" "1920x1080_24"
    EndSubSection
 EndSection
Dieses Grundgerüst muss dann in Ausnahmefällen noch etwas erweitert werden:
    Option         "DPI" "100x100"
    Option         "UseEdidDpi" "False"
Für Displays mit falschen DPI-Angaben
     Option         "CustomEDID" "DFP-0:/etc/X11/edid.bin"
Zum Einlesen einer edid.bin Eine edid.bin erstellt man so:
 # X -verbose 6 > /tmp/xlog 2>&1
Muss nach etwa 5 Sekunden mit Strg + C abgebrochen werden
 # nvidia-xconfig --extract-edids-from-file=/tmp/xlog --extract-edids-output-file=/etc/X11/edid.bin
Damit die Tonausgabe auch funktioniert legen stellen wir das Standard Device von ALSA in der /etc/asound.conf um. Bei NVidia Grafikkarten sollte grundsätzlich das hier funktionieren.
 pcm.!default {
   type hw
   card NVidia
   device 7
 }
Sollte wider erwarten nicht funktionieren, lohnt sich ein Blick in die Deviceliste. Dafür installieren wir alsa-utils
 # pacman -S alsa-utils
und geben die Deviceliste mit
 # aplay -l
aus.
     *    * List of PLAYBACK Hardware Devices     *    *
 card 0: NVidia [NVidia](HDA), device 3: HDMI 0 [0](HDMI)
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 0: NVidia [NVidia](HDA), device 7: HDMI 1 [1](HDMI)
   Subdevices: 0/1
   Subdevice #0: subdevice #0

Plugins

Softhddevice
 # pacman -S vdr-softhddevice
Und über einen entsprechenden Symlink aktivieren
 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-softhddevice.conf .
Xineliboutput (eigenständiger VDR)
 # pacman -S vdr-xineliboutput
Und über einen entsprechenden Symlink aktivieren
 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-xineliboutput.conf .
Setze --local=sxfe (oder --local=fbfe) und --remote=none in der /etc/vdr/conf.d/50-xineliboutput.conf
Xineliboutput (Client/Server)
Server
 # pacman -S vdr-xineliboutput
Und über einen entsprechenden Symlink aktivieren
 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-xineliboutput.conf .
Setze `--local=none` und `--remote=3789` in der /etc/vdr/conf.d/50-xineliboutput.conf
Client
Installiere die Xineliboutput Frontends
 # pacman -S xineliboutput-frontends
Um vdr-sxfe zu starten:
 # vdr-sxfe 
Um vdr-fbfe zu starten:
 # vdr-fbfe 

Ausgabe über Full-Featured

 # pacman -S vdr
(vdr-dvbsddevice und vdr-dvbhddevice sind Bestandteil des vdr Paketes) Und über einen entsprechenden Symlink aktivieren
 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-dvbhddevice.conf .
oder
 # ln -s ../conf.avail/50-dvbsddevice.conf .
Für die Technotrend S2-6400 muss natürlich noch der Treiber installiert werden
 # pacman -S media-build-experimental-dkms
und mit
 # modprobe saa716x_ff
geladen werden. Die Installation eines DKMS Treibers dauert einige Zeit, außerdem ist für den späteren sicheren Betrieb ein Daemon notwendig
 # systemctl enable dkms
 # systemctl start dkms
Die eigentliche Konfiguration läuft über /etc/vdr/conf.avail bzw. über /etc/vdr/conf.d VDR spezifische Einstellungen findet man in /etc/vdr/conf.d/10-vdr.conf Plugins legen eine Config in /etc/vdr/conf.avail ab und um es zu aktivieren muss ein Symlink nach /etc/vdr/conf.d erstellt werden. Plugins werden in alphabetischer Reihenfolge geladen. Damit auch Tastatureingaben im VDR ankommen, muss die Datei /etc/systemd/system/vdr.service.d/fullfeatured.conf angelegt werden.
 [[email protected]
])
 StandardInput=tty
 TTYPath=/dev/tty8
 ExecStartPre=/usr/bin/chvt 8
Jetzt noch den VDR für den Autostart aktivieren
 # systemctl enable vdr
Und schließlich starten.
 # systemctl daemon-reload
 # systemctl start vdr

Ausgabe des Raspberry Pi

 # pacman -S vdr-rpihddevice
Und über einen entsprechenden Symlink aktivieren
 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-rpihddevice.conf .
Die eigentliche Konfiguration läuft über /etc/vdr/conf.avail bzw. über /etc/vdr/conf.d VDR spezifische Einstellungen findet man in /etc/vdr/conf.d/10-vdr.conf Plugins legen eine Config in /etc/vdr/conf.avail ab und um es zu aktivieren muss ein Symlink nach /etc/vdr/conf.d erstellt werden. Plugins werden in alphabetischer Reihenfolge geladen. In der Datei /boot/config.txt sollte noch nach gpu_mem gesucht werden. Das steht standardmäßig auf 64MB, was für unsere Zwecke zu wenig ist. Im offiziellen Kodi-Wiki werden 128MB für den RaspberryPi 1 und 256MB für den RaspberryPi 2 vorgeschlagen
 gpu_mem=256
Wenn wir schon an der config.txt beschäftigt sind können wir auch gleich die Lizenzcodes für die Codecs eingeben.
 decode_MPG2=0x12345678
 decode_WVC1=0x12345678
(Das sind nur Beispieleinträge eure eigenen Lizenzcodes könnt ihr [hier](http://www.raspberrypi.com/license-keys/) kaufen.) Damit auch Tastatureingaben im VDR ankommen, muss die Datei /etc/systemd/system/vdr.service.d/rpi.conf angelegt werden.
 [Unit]
 [email protected]
 [Service]
 StandardInput=tty
 TTYPath=/dev/tty8
 ExecStartPre=/usr/bin/chvt 8
 ExecStartPre=/usr/bin/setterm --clear all --cursor off
Jetzt noch den VDR für den Autostart aktivieren
 # systemctl enable vdr
Und schließlich starten.
 # systemctl daemon-reload
 # systemctl start vdr

Optionale Einstellungen

Auf das Netzwerk warten

Für den Fall, dass ein Plugin nicht dazu in der Lage ist, selbstständig auf eine Netzwerkverbindung zu warten sollte folgendes geändert werden. In /etc/systemd/system/vdr.service.d die Datei 01-wait-for-net.conf angelegt werden.
 # mkdir -p /etc/systemd/system/vdr.service.d
 # nano /etc/systemd/system/vdr.service.d/01-wait-for-net.conf
 [Unit]
 After=network-online.target
 Wants=network-online.target
Zusätzlich muss die Netzwerkeinstellung überarbeitet werden. Es hat sich gezeigt, das nicht alle netzwerbereitstellenden Daemons dazu in der Lage sind zu erkennen, wann das Netzwerk verfügbar ist. Dadurch hat das network-online.target keine Wirkung. Sicher funktioniert es mit systemd-networkd oder NetworkManager Es ist also empfehlenswert die Netzwerkverbindung auf systemd-networkd umzustellen und folgenden Befehl auszuführen.
 # systemctl enable systemd-networkd-wait-online
Dazu gibt es eine sehr umfangreiche Erklärung im Arch Wiki(Unit]) Für NetworkManager ist es dieser Befehl
 # systemctl enable NetworkManager-wait-online

Sicherer Shutdown über den Powerbutton

Der Powerbutton wird normalerweise von systemd beobachtet. Systemd löst beim Drücken den Shutdown aus. Das wäre alles kein Problem, wenn da nicht der VDR wäre. Der Timer wird nur gespeichert, wenn der VDR den Shutdown selbst auslöst. Im Fall VDR löst den Shutdown aus: /usr/lib/vdr/bin/shutdown.sh wird gestartet, diese setzt den Wakeup-Timer und löst den Shutdown aus. Im Fall systemd löst den Shutdown aus: VDR bekommt von systemd ein SIGTERM gesendet, der VDR beendet sich und systemd fährt mit dem Shutdown fort (Der Wakeup-Timer wurde nicht gesetzt). vdrpbd verbietet systemd auf den Powerbutton zu reagieren. Stattdessen wartet vdrpbd auf den Tastendruck und teilt dem VDR über svdrpsend mit, dass der Powerbutton gedrückt wurde. Mit
 # pacman -S vdrpbd
wird vdrpbd installiert und über
 # systemctl enable vdrpbd
und
 # systemctl start vdrpbd
wird der Daemon aktiviert und gestartet.

Kodi

Kodi aus dem VDR heraus starten

Mit dem externalplayer-Plugin bleibt der VDR hängen nachdem man aus Kodi zurückkommt. Daher wird hier der Weg über die commands.conf beschrieben Folgende Datei nach /usr/lib/vdr/start_kodi erstellen
 #!/bin/bash
 (
   export DISPLAY=:0
   svdrpsend remo off
   svdrpsend plug graphlcd off
   svdrpsend plug softhddevice deta
   kodi
   svdrpsend remo on
   svdrpsend plug graphlcd on
   svdrpsend plug softhddevice atta
 ) > /dev/null 2>&1 &
und ausführbar machen
 # chmod +x /usr/lib/vdr/start_kodi
Die Freigabe des Displays (oben beispielhaft für graphlcd) funktioniert natürlich auch bei imolcd, lcdproc und targavfd Danach die /var/lib/vdr/commands.conf um folgenden Eintrag erweitern:
 Kodi: /usr/lib/vdr/start_kodi

VDR aus Kodi heraus starten

Wakeup mit Kodi und VDR auf dem selben System

Selbst kompilieren

In einer Archlinux-Installation, aufgesetzt auf einer virtuellen Maschine folgendes ausführen. Installation der Entwicklungsumgebung
 # pacman -S base-devel
[repo-make](http://repo-make.tuxfamily.org/) installieren
 # pacman -U http://downloads.tuxfamily.org/repomake/repo-make-1.1.0-1-any.pkg.tar.xz
PKGBUILDs auschecken
 # git clone https://github.com/CReimer/vdr4arch.git
 # cd vdr4arch
Automatischen Buildvorgang starten
 # repo-make
Die Pakete landen anschließend im neuen Verzeichnis "repo" garbagePaketübersicht](vdr4arch])] nachgelesen werden.

Ausgabe VA-API/VDPAU

Vorbereitung

Sollte der X-Server nicht schon auf eine andere Weise gestartet werden, muss der Start des X-Servers aktiviert werden. Der einfachste Weg dafür ist es, vdr-xorg zu installieren:

 # pacman -S vdr-xorg

Das Paket vdr-xorg erweitert die systemd-Konfiguration für VDR so, dass vor dem Start ein X-Server mitgestartet wird.

Intel(VA-API)

Zuerst muss der Treiber installiert werden:

 # pacman -S xf86-video-intel

Danach wird der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden

 # nano /etc/X11/xorg.conf.d/20-vdr.conf

mit folgendem Inhalt

 Section "Monitor"
   Identifier  "HDMI1"
   Modeline    "1920x1080_24"     74.230 1920 2560 2604 2752 1080 1084 1089 1125 +hsync +vsync
   Modeline    "1920x1080_50"    148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
   Modeline    "1920x1080_60"    148.500 1920 2008 2056 2200 1080 1084 1089 1125 +hsync +vsync
 EndSection
 
 Section "Extensions"
     Option         "Composite" "Disable"
 EndSection

Damit die Tonausgabe auch funktioniert legen stellen wir das Standard Device von ALSA in der /etc/asound.conf um.

Bei Intel sollte grundsätzlich das hier funktionieren.

 pcm.!default {
   type hw
   card PCH
   device 7
 }

Sollte wider erwarten nicht funktionieren, lohnt sich ein Blick in die Deviceliste.

Dafür installieren wir alsa-utils

 # pacman -S alsa-utils

und geben die Deviceliste mit

 # aplay -l

aus.

     *    * List of PLAYBACK Hardware Devices     *    *
 card 0: PCH [Intel](HDA), device 0: ALC662 rev1 Analog [rev1](ALC662)
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 0: PCH [Intel](HDA), device 3: HDMI 0 [0](HDMI)
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 0: '''PCH''' [Intel](HDA), '''device 7''': HDMI 1 [1](HDMI)
   Subdevices: 1/1
   Subdevice #0: subdevice #0

Intel hat in den neueren Treiberversionen einen unschönen Grauschleier über dem Bild. Um diesen wegzubekommen installieren wir xorg-xrandr

 # pacman -S xorg-xrandr

und erstellen die Datei /home/vdr/.xinitrc

 #!/usr/bin/bash
 xrandr --output HDMI1 --set "Broadcast RGB" "Full"
NVidia(VDPAU)

Zuerst muss der Treiber installiert werden

 # pacman -S nvidia

Danach wird der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden

 # nano /etc/X11/xorg.conf.d/20-vdr.conf

mit folgendem Inhalt

 Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "ExactModeTimingsDVI" "True"
    Option         "FlatPanelProperties" "Dithering = disabled"
    Option         "NoLogo" "True"
    SubSection     "Display"
        Depth       24
        Modes      "1920x1080_50" "1920x1080_60_0" "1920x1080_24"
    EndSubSection
 EndSection

Dieses Grundgerüst muss dann in Ausnahmefällen noch etwas erweitert werden:

    Option         "DPI" "100x100"
    Option         "UseEdidDpi" "False"

Für Displays mit falschen DPI-Angaben

     Option         "CustomEDID" "DFP-0:/etc/X11/edid.bin"

Zum Einlesen einer edid.bin

Eine edid.bin erstellt man so:

 # X -verbose 6 > /tmp/xlog 2>&1

Muss nach etwa 5 Sekunden mit Strg + C abgebrochen werden

 # nvidia-xconfig --extract-edids-from-file=/tmp/xlog --extract-edids-output-file=/etc/X11/edid.bin

Damit die Tonausgabe auch funktioniert legen stellen wir das Standard Device von ALSA in der /etc/asound.conf um.

Bei NVidia Grafikkarten sollte grundsätzlich das hier funktionieren.

 pcm.!default {
   type hw
   card NVidia
   device 7
 }

Sollte wider erwarten nicht funktionieren, lohnt sich ein Blick in die Deviceliste.

Dafür installieren wir alsa-utils

 # pacman -S alsa-utils

und geben die Deviceliste mit

 # aplay -l

aus.

     *    * List of PLAYBACK Hardware Devices     *    *
 card 0: NVidia [NVidia](HDA), device 3: HDMI 0 [0](HDMI)
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 0: '''NVidia''' [NVidia](HDA), '''device 7''': HDMI 1 [1](HDMI)
   Subdevices: 0/1
   Subdevice #0: subdevice #0

Plugins

Softhddevice
 # pacman -S vdr-softhddevice

Und über einen entsprechenden Symlink aktivieren

 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-softhddevice.conf .
Xineliboutput (eigenständiger VDR)
 # pacman -S vdr-xineliboutput

Und über einen entsprechenden Symlink aktivieren

 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-xineliboutput.conf .

Setze --local=sxfe (oder --local=fbfe) und --remote=none in der /etc/vdr/conf.d/50-xineliboutput.conf

Xineliboutput (Client/Server)
Server
 # pacman -S vdr-xineliboutput

Und über einen entsprechenden Symlink aktivieren

 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-xineliboutput.conf .

Setze `--local=none` und `--remote=3789` in der /etc/vdr/conf.d/50-xineliboutput.conf

Client

Installiere die Xineliboutput Frontends

 # pacman -S xineliboutput-frontends

Um vdr-sxfe zu starten:

 # vdr-sxfe <IP-Adresse des Servers>

Um vdr-fbfe zu starten:

 # vdr-fbfe <IP-Adresse des Servers>

Ausgabe über Full-Featured

 # pacman -S vdr

(vdr-dvbsddevice und vdr-dvbhddevice sind Bestandteil des vdr Paketes)

Und über einen entsprechenden Symlink aktivieren

 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-dvbhddevice.conf .

oder

 # ln -s ../conf.avail/50-dvbsddevice.conf .

Für die Technotrend S2-6400 muss natürlich noch der Treiber installiert werden

 # pacman -S media-build-experimental-dkms

und mit

 # modprobe saa716x_ff

geladen werden.

Die Installation eines DKMS Treibers dauert einige Zeit, außerdem ist für den späteren sicheren Betrieb ein Daemon notwendig

 # systemctl enable dkms
 # systemctl start dkms

Die eigentliche Konfiguration läuft über /etc/vdr/conf.avail bzw. über /etc/vdr/conf.d VDR spezifische Einstellungen findet man in /etc/vdr/conf.d/10-vdr.conf

Plugins legen eine Config in /etc/vdr/conf.avail ab und um es zu aktivieren muss ein Symlink nach /etc/vdr/conf.d erstellt werden. Plugins werden in alphabetischer Reihenfolge geladen.

Damit auch Tastatureingaben im VDR ankommen, muss die Datei /etc/systemd/system/vdr.service.d/fullfeatured.conf angelegt werden.

 [[email protected]
])
 StandardInput=tty
 TTYPath=/dev/tty8
 ExecStartPre=/usr/bin/chvt 8

Jetzt noch den VDR für den Autostart aktivieren

 # systemctl enable vdr

Und schließlich starten.

 # systemctl daemon-reload
 # systemctl start vdr

Ausgabe des Raspberry Pi

 # pacman -S vdr-rpihddevice

Und über einen entsprechenden Symlink aktivieren

 # cd /etc/vdr/conf.d
 # ln -s ../conf.avail/50-rpihddevice.conf .

Die eigentliche Konfiguration läuft über /etc/vdr/conf.avail bzw. über /etc/vdr/conf.d VDR spezifische Einstellungen findet man in /etc/vdr/conf.d/10-vdr.conf

Plugins legen eine Config in /etc/vdr/conf.avail ab und um es zu aktivieren muss ein Symlink nach /etc/vdr/conf.d erstellt werden. Plugins werden in alphabetischer Reihenfolge geladen.

In der Datei /boot/config.txt sollte noch nach gpu_mem gesucht werden. Das steht standardmäßig auf 64MB, was für unsere Zwecke zu wenig ist.

Im offiziellen Kodi-Wiki werden 128MB für den RaspberryPi 1 und 256MB für den RaspberryPi 2 vorgeschlagen

 gpu_mem=256

Wenn wir schon an der config.txt beschäftigt sind können wir auch gleich die Lizenzcodes für die Codecs eingeben.

 decode_MPG2=0x12345678
 decode_WVC1=0x12345678

(Das sind nur Beispieleinträge eure eigenen Lizenzcodes könnt ihr [hier](http://www.raspberrypi.com/license-keys/) kaufen.)

Damit auch Tastatureingaben im VDR ankommen, muss die Datei /etc/systemd/system/vdr.service.d/rpi.conf angelegt werden.

 [Unit]
 [email protected]
 [Service]
 StandardInput=tty
 TTYPath=/dev/tty8
 ExecStartPre=/usr/bin/chvt 8
 ExecStartPre=/usr/bin/setterm --clear all --cursor off

Jetzt noch den VDR für den Autostart aktivieren

 # systemctl enable vdr

Und schließlich starten.

 # systemctl daemon-reload
 # systemctl start vdr

Optionale Einstellungen

Auf das Netzwerk warten

Für den Fall, dass ein Plugin nicht dazu in der Lage ist, selbstständig auf eine Netzwerkverbindung zu warten sollte folgendes geändert werden.

In /etc/systemd/system/vdr.service.d die Datei 01-wait-for-net.conf angelegt werden.

 # mkdir -p /etc/systemd/system/vdr.service.d
 # nano /etc/systemd/system/vdr.service.d/01-wait-for-net.conf
 [Unit]
 After=network-online.target
 Wants=network-online.target

Zusätzlich muss die Netzwerkeinstellung überarbeitet werden. Es hat sich gezeigt, das nicht alle netzwerbereitstellenden Daemons dazu in der Lage sind zu erkennen, wann das Netzwerk verfügbar ist. Dadurch hat das network-online.target keine Wirkung.

Sicher funktioniert es mit systemd-networkd oder NetworkManager

Es ist also empfehlenswert die Netzwerkverbindung auf systemd-networkd umzustellen und folgenden Befehl auszuführen.

 # systemctl enable systemd-networkd-wait-online

Dazu gibt es eine sehr umfangreiche Erklärung im Arch Wiki(Unit])

Für NetworkManager ist es dieser Befehl

 # systemctl enable NetworkManager-wait-online

Sicherer Shutdown über den Powerbutton

Der Powerbutton wird normalerweise von systemd beobachtet. Systemd löst beim Drücken den Shutdown aus. Das wäre alles kein Problem, wenn da nicht der VDR wäre. Der Timer wird nur gespeichert, wenn der VDR den Shutdown selbst auslöst.

Im Fall VDR löst den Shutdown aus: /usr/lib/vdr/bin/shutdown.sh wird gestartet, diese setzt den Wakeup-Timer und löst den Shutdown aus. Im Fall systemd löst den Shutdown aus: VDR bekommt von systemd ein SIGTERM gesendet, der VDR beendet sich und systemd fährt mit dem Shutdown fort (Der Wakeup-Timer wurde nicht gesetzt).

vdrpbd verbietet systemd auf den Powerbutton zu reagieren. Stattdessen wartet vdrpbd auf den Tastendruck und teilt dem VDR über svdrpsend mit, dass der Powerbutton gedrückt wurde.

Mit

 # pacman -S vdrpbd

wird vdrpbd installiert und über

 # systemctl enable vdrpbd

und

 # systemctl start vdrpbd

wird der Daemon aktiviert und gestartet.

Kodi

Kodi aus dem VDR heraus starten

Mit dem externalplayer-Plugin bleibt der VDR hängen nachdem man aus Kodi zurückkommt. Daher wird hier der Weg über die commands.conf beschrieben

Folgende Datei nach /usr/lib/vdr/start_kodi erstellen

 #!/bin/bash
 (
   export DISPLAY=:0
   svdrpsend remo off
   svdrpsend plug graphlcd off
   svdrpsend plug softhddevice deta
   kodi
   svdrpsend remo on
   svdrpsend plug graphlcd on
   svdrpsend plug softhddevice atta
 ) > /dev/null 2>&1 &

und ausführbar machen

 # chmod +x /usr/lib/vdr/start_kodi

Die Freigabe des Displays (oben beispielhaft für graphlcd) funktioniert natürlich auch bei imolcd, lcdproc und targavfd

Danach die /var/lib/vdr/commands.conf um folgenden Eintrag erweitern:

 Kodi: /usr/lib/vdr/start_kodi

VDR aus Kodi heraus starten

Wakeup mit Kodi und VDR auf dem selben System

Selbst kompilieren

In einer Archlinux-Installation, aufgesetzt auf einer virtuellen Maschine folgendes ausführen.

Installation der Entwicklungsumgebung

 # pacman -S base-devel

[repo-make](http://repo-make.tuxfamily.org/) installieren

 # pacman -U http://downloads.tuxfamily.org/repomake/repo-make-1.1.0-1-any.pkg.tar.xz

PKGBUILDs auschecken

 # git clone https://github.com/CReimer/vdr4arch.git
 # cd vdr4arch

Automatischen Buildvorgang starten

 # repo-make

Die Pakete landen anschließend im neuen Verzeichnis "repo"