-
Notifications
You must be signed in to change notification settings - Fork 21
VDR4Arch Installation (de_DE)
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.
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
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.
# pacman -S vdr-xorgDas Paket vdr-xorg erweitert die systemd-Konfiguration für VDR so, dass vor dem Start ein X-Server mitgestartet wird. Zuerst muss der Treiber installiert werden:
# pacman -S xf86-video-intelDanach 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.confmit 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" EndSectionDamit 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-utilsund geben die Deviceliste mit
# aplay -laus.
* * 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 #0Intel hat in den neueren Treiberversionen einen unschönen Grauschleier über dem Bild. Um diesen wegzubekommen installieren wir xorg-xrandr
# pacman -S xorg-xrandrund erstellen die Datei /home/vdr/.xinitrc
#!/usr/bin/bash xrandr --output HDMI1 --set "Broadcast RGB" "Full"Zuerst muss der Treiber installiert werden
# pacman -S nvidiaDanach 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.confmit 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 EndSectionDieses 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>&1Muss nach etwa 5 Sekunden mit Strg + C abgebrochen werden
# nvidia-xconfig --extract-edids-from-file=/tmp/xlog --extract-edids-output-file=/etc/X11/edid.binDamit 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-utilsund geben die Deviceliste mit
# aplay -laus.
* * 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
# pacman -S vdr-softhddeviceUnd über einen entsprechenden Symlink aktivieren
# cd /etc/vdr/conf.d
# ln -s ../conf.avail/50-softhddevice.conf .
# pacman -S vdr-xineliboutputUnd ü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
# pacman -S vdr-xineliboutputUnd ü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 Installiere die Xineliboutput Frontends
# pacman -S xineliboutput-frontendsUm vdr-sxfe zu starten:
# vdr-sxfeUm vdr-fbfe zu starten:
# vdr-fbfe
# 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-dkmsund mit
# modprobe saa716x_ffgeladen 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 dkmsDie 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 8Jetzt noch den VDR für den Autostart aktivieren
# systemctl enable vdrUnd schließlich starten.
# systemctl daemon-reload
# systemctl start vdr
# pacman -S vdr-rpihddeviceUnd ü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=256Wenn 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 offJetzt noch den VDR für den Autostart aktivieren
# systemctl enable vdrUnd schließlich starten.
# systemctl daemon-reload
# systemctl start vdrFü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.targetZusä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-onlineDazu gibt es eine sehr umfangreiche Erklärung im Arch Wiki(Unit]) Für NetworkManager ist es dieser Befehl
# systemctl enable NetworkManager-wait-onlineDer 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 vdrpbdwird vdrpbd installiert und über
# systemctl enable vdrpbdund
# systemctl start vdrpbdwird der Daemon aktiviert und gestartet. 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_kodiDie 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_kodiIn 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.xzPKGBUILDs auschecken
# git clone https://github.com/CReimer/vdr4arch.git
# cd vdr4archAutomatischen Buildvorgang starten
# repo-makeDie Pakete landen anschließend im neuen Verzeichnis "repo" garbagePaketübersicht](vdr4arch])] nachgelesen werden.
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.
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"
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
# pacman -S vdr-softhddevice
Und über einen entsprechenden Symlink aktivieren
# cd /etc/vdr/conf.d
# ln -s ../conf.avail/50-softhddevice.conf .
# 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
# 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
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>
# 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
# 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
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
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.
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
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"