Benutzer-Werkzeuge

Webseiten-Werkzeuge


vdr:vdr-1733_12.3

VDR auf openSUSE 12.3

Vor kurzem musste ich wegen eines Absturzes meines Servers den VDR neu einrichten. Die Vorraussetzungen sind die gleichen wie bei VDR 1.7.33 (Board Gigabyte M68M-S2P und Athlon X2 4850e). Dabei habe ich den Umstieg auf systemd vollzogen. Leider startet der X-Server aus dem übernommenen Script „runvdr“ beim Booten des Servers nicht. Erst als ich X durch Xorg ersetzt habe, funktioniert auch das wieder.

Software

  • openSuSE 12.3 mit Kernel 3.7.10
  • nVidia-Treiber Version 319.32
  • VDR 1.7.33
  • vdradmind 3.6.9

Scripte

vdr.service

[Unit]
Description=VDR
After=lirc.service
Wants=

[Service]
ExecStart=/usr/local/bin/runvdr
ExecStop=/usr/bin/killall vdr
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

vdradmind.service

[Unit]
Description=vdradmin
After=vdr.service
Wants=vdr.service

[Service]
ExecStart=/usr/bin/vdradmind
ExecStop=/usr/bin/vdradmind -k
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

lirc

Bei mir hat es sich herausgestellt, dass der Kernel das IR-Device mit unterschiedlichen Event-IDs zurück gibt. Daher funktioniert die Fernbedienung nicht immer. In der /etc/sysconfig/lirc wird für LIRCD_DEVICE folgende Zeile eingesetzt:

LIRCD_DEVICE="/dev/input/event"$(dmesg | grep -i -E 'input: cx88' | awk -F'/' '{print $NF;}' | awk -Finput '{print $2}')

runvdr

#!/bin/sh
 
# Konfiguration laden
. /etc/sysconfig/vdr
 
# Sprache setzen
export LANG="de_DE.UTF-8"
# Parport auf 666 setzen
if [ -f /dev/parport0 ] ; then
    chmod 666 /dev/parport0
else
    modprobe ppdev
    modprobe parport
    if [ -f /dev/parport0 ] ; then
        chmod 666 /dev/parport0
    fi
fi
 
# Alsa auf Default setzen
rcalsasound restart
alsactl restore
 
# X11 starten
while ps auxww | awk '$0~/Xorg/&&$0!~/awk/{print $2}'|xargs kill; do sleep 3; done
Xorg vt7 &
sleep 3
DISPLAY="127.0.0.1:0.0"
export DISPLAY
xhost +localhost
 
# vdr
VDRBIN=$(which vdr)
 
# vdradmind
VDRADM=$(which vdradmind)
 
if [ -x $VDRBIN ] ; then
        while killall $VDRBIN; do sleep 3; done
        eval "$VDRBIN $VDROPT $VDRPLUGINS"
        sleep 2
fi
vdr/vdr-1733_12.3.txt · Zuletzt geändert: 29.10.2013 18:51 von udo