Benutzer-Werkzeuge

Webseiten-Werkzeuge


Writing /srv/www/htdocs/udo/singollo.de/linux.singollo.de/public_html/data/cache/b/b62fc7087f3ae5df7f7b3c7596354e07.metadata failed
vdr:vdr-220_12.3_kernel_3.19.8

VDR Logo (c) by Jan Grell

Serverupdate VDR unter openSUSE 12.3

Nach Jahren des Provisoriums habe ich den Server mit „neuer“ Hardware ausgestattet, als ich mir ein vernünftiges und wohnzimmertaugliches Gehäuse von Fractal Design gekauft habe.

Hardware

  • Intel Core2 E6300 auf Asus P5K Deluxe (Intel P35)
  • 4GB DDR2
  • 120GB SSD (Samsung SSD 840)
  • 3x 2TB Festplatten (davon 2 als Raid1 für /srv/video)
  • Tevii S464 DVB-S/S2
  • NVIDIA GeForce GT 240

Software

Umstellungen

vdr

Beim Übersetzen der Quellen habe ich einige Pfade im Makefile gesetzt, die ich damit nicht mehr auf der Kommandozeile angeben brauche.

Fernbedienung

Bereits der Kernel 3.7.10 bringt bereits alles mit, um die Fernbedienung benutzen zu können. Mit dem Update auf 3.19.8 lief die Fernbedienung leider nicht mehr. Selbst ein neuer LIRCD hat nichts gebracht. Erst nach dem ich die v4l-tools nachinstalliert hatte, konnte ich mit ir-keytable auf Fehlersuche gehen. Der IR-Empfänger wurde ja vom Kernel gefunden und eingebunden, nur irw konnte nichts damit anfangen. Daher habe ich mit den Optionen von ir-keytable gespielt und bin beim IR-Protokoll fündig geworden. Ich musste einfach auf das NEC-Protokoll umstellen, den lircd anders einbinden und die Fernbedienung läuft! Das Startscript ist entsprechend angepasst.

Sound

Auch der Sound wollte am Anfang nicht wirklich. Ich musste die Konfiguration löschen, den Kernel mit den passenden Modulen für AD1988B und HDMI ausstatten und alles neu einrichten. Am Anfang meiner VDR-„Bastelei“ habe ich den snd-hda-intel-Treiber nicht richtig verstanden. Ich war der irrigen Meinung, dieser könnte nur eine Soundkarte nutzen, was aber nicht stimmte. Es hat mich ein paar Stunden suchen und probieren gekostet, aber mittlerweile laufen beide Soundkarten. Die Terratec Aureon 7.1 habe ich abgebaut, da ich die nicht mehr brauche, ist aber noch als dritte definiert.

/etc/modprobe.d/50-sound.conf

options snd-hda-intel model=6stack-dig,auto enable_msi=0,0 probe_mask=1,0xfff2
options snd slots=snd-hda-intel,snd-hda-intel
 
alias snd-card-0 snd-hda-intel
alias snd-card-1 snd-hda-intel
alias snd-card-2 snd-usb-audio

Probleme

Normalerweise startet mein VDR nach dem Booten mit einem fest eingestellten Programm (hier ein Radio). Bisher gab es damit auch kein Problem. Jetzt wird aber die Firmware der Sat-Karte nicht richtig aktiviert. Eine Anpassung der Scripte reichte nicht. Ich musste den VDR mit dem dynamite-Plugin patchen. Das Plugin deaktiviert kurz das Device und aktiviert es wieder. Dazu müssen in der setup.conf zwei Zeilen hinzugefügt und eine neue, ausführbare Datei runvdr_svdrpsend erstellt werden.

/etc/vdr/setup.conf

dynamite.DefaultGetTSTimeout = 10
dynamite.GetTSTimeoutHandler = /usr/local/bin/runvdr_svdrpsend

/usr/local/bin/runvdr_svdrpsend

#!/bin/bash
svdrpsend plug dynamite FDTD /dev/dvb/adapter0/frontend0 
svdrpsend plug dynamite ATTD /dev/dvb/adapter0/frontend0

Globale Konfiguration

/etc/sysconfig/vdr

Die Variable XBGIMAGE ist neu hinzu gekommen und zeigt auf ein Bild für den Hintergrund, wenn der VDR noch nicht gestartet ist oder sich mal beendet hat. Sollte die Variable leer oder auf ein ungültiges Bild verweisen, so wird dieses Feature nicht genutzt. Ich verwende das Logo von Jan Grell (siehe kleines Bild oben, http://grell-netz.de/content.php/21?selected=41, CC BY-ND 3.0 DE), dass ich auf die Auflösung meines TVs skaliert habe.

XMODE entspricht der physischen Auflösung des Monitors XOUTPUT. Ich verwende einen Full-HD LCD-TV von Philips, den ich per HDMI an die Grafikkarte angeschlossen habe. Die Auflösung des Xorg-Servers wird auf 1920×1080 Punkte gesetzt.

# VDR Plugins
VDRPLUGINS="-Ptvguide -Pextrecmenu -P'softhddevice -a hw:1,3 -p hw:1,3 -v vdpau' \
   -P'osdteletext -d /var/tmp/vtx' -Pstreamdev-server \
   -Pburn -Pskinenigmang -Pfemon -Pdynamite"
# VDR Konfiguration
VDROPT="-d -w 60 -s /usr/local/bin/vdrpoweroff.sh"
 
# X
XBGIMAGE=/etc/vdr/vdr-logo.jpg
XMODE="1920x1080"
XOUTPUT="HDMI-0"
 
# Plugin GraphLCD
PARPORTDEV=/dev/parport0
PARPORTMOD=0666
 
# IR Protokoll
IRPROTO=NEC
 
# Soundsystem neustarten
SOUNDRESTART=0

Startscripte

/usr/local/bin/runvdr

#!/bin/sh
 
# Konfiguration laden
. /etc/sysconfig/vdr
 
# Sprache setzen
export LANG="de_DE.UTF-8"
 
# Falls Plugin graphlcd aufgerufen wird
if [[ $VDRPLUGINS == *"graphlcd"* ]] ; then
    # Parport auf 666 setzen
    if [ -f $PARPORTDEV ] ; then 
        chmod $PARPORTMOD $PARPORTDEV
    else
        modprobe ppdev
        modprobe parport
        if [ -f $PARPORTDEV ] ; then
           chmod $PARPORTMOD $PARPORTDEV
        fi
    fi
fi
 
# Alsa auf Default setzen
if [ $SOUNDRESTART -eq 1 ] ; then
    systemctl restart alsasound
fi
alsactl restore
 
# Protokoll NEC
ir-keytable -p $IRPROTO
while killall lircd; do sleep 2; done
IRDEV=$(ir-keytable 2>&1 | grep "event" | awk '{print substr($3, 2,length($3)-2)}')
if [ -c $IRDEV ] ; then 
    lircd --device $IRDEV --driver devinput
fi
 
# X11 starten
while ps auxww | awk '$0~/Xorg/&&$0!~/awk/{print $2}'|xargs kill; do sleep 2; done
DISPLAY=":0"
Xorg $DISPLAY vt8 -nocursor -quiet &
sleep 2
export $DISPLAY
xhost vdr
xrandr --output $XOUTPUT --mode $XMODE
if [ -f $XBGIMAGE ] ; then
     xloadimage -display $DISPLAY -fillscreen -onroot $XBGIMAGE
fi
 
# vdr
VDRBIN=$(which vdr)
 
# vdradmind
VDRADM=$(which vdradmind)
 
if [ -x $VDRBIN ] ; then 
        while killall $VDRBIN; do sleep 2; done
        eval "$VDRBIN $VDROPT $VDRPLUGINS"
        sleep 2
fi

systemd: vdr.service

[Unit]
Description=VDR
After=
Wants=
 
[Service]
ExecStart=/usr/local/bin/runvdr
ExecStop=/usr/bin/killall vdr
RemainAfterExit=true
 
[Install]
WantedBy=multi-user.target

systemd: 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
vdr/vdr-220_12.3_kernel_3.19.8.txt · Zuletzt geändert: 21.08.2016 09:51 von udo