Activy vdpau xbmc
Hier fasse ich kurz meine Erfahrungen und Tipps beim Aufbau eines VDPAU Systems mit Umschaltung zw XBMC und vdr-sxfe zusammen. Mein konkretes Ziel war es auf Ubuntu Jaunty Basis auf meiner Activy 300 diese Software zu verwenden.
Zur Installation verwende ich die Pakete von gda Mit ihnen lässt sich die nötige Software inklusive aktuellem NVIDIA Treiber sehr schnell installieren.
XBMC installiere ich aus dem offiziellen XBMC PPA
Ein Switch-Skript um bei laufendem Betrieb zw vdr-sxfe und XBMC umzuschalten habe ich wie folgt realisiert:
#!/bin/bash if [ `ps ax | grep vdr-sxfe | wc -l` -ne 1 ]; then /etc/init.d/vdr-sxfe stop svdrpsend remo off export DISPLAY=:0 wait `pidof vdr-sxfe` xbmc >/dev/null 2>&1 & logger "VDR auf XBMC umgeschaltet" else killall xbmc killall xbmc.bin svdrpsend remo on wait `pidof xbmc` vdr-sxfe --fullscreen --post tvtime:method=use_vo_driver --display=0 >/dev/null 2>&1 & logger "XBMC auf VDR umgeschaltet" fi
Den Start des XServers habe ich in ein Skript zum ausführen beim Start in /etc/init.d/X wie folgt gelöst:
#!/bin/sh ### BEGIN INIT INFO # Provides: X # Required-Start: $syslog $remote_fs $vdr $all # Required-Stop: $syslog $remote_fs $vdr $all # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start FOO to allow XY and provide YZ ### END INIT INFO # Quick start-stop-daemon example, derived from Debian /etc/init.d/ssh set -e # Must be a valid filename NAME=X PIDFILE=/var/run/$NAME.pid #This is the command to be run, give the full pathname DAEMON=/usr/bin/startx DAEMON_OPTS="" USER=derblubber export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" case "$1" in start) echo -n "Starting daemon: "$NAME start-stop-daemon --start --quiet -c $USER --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS >/dev/null 2>&1 & echo "." ;; stop) echo -n "Stopping daemon: "$NAME start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE echo "." ;; restart) echo -n "Restarting daemon: "$NAME start-stop-daemon --stop --quiet -c $USER --oknodo --retry 30 --pidfile $PIDFILE start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS >/dev/null 2>&1 & echo "." ;; *) echo "Usage: "$1" {start|stop|restart}" exit 1 esac exit 0
Um dann beim booten noch XBMC zu starten, habe ich die /etc/X11/xinit/xinitrc wie folgt angepasst:
#!/bin/bash # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $ # /etc/X11/xinit/xinitrc # # global xinitrc file, used by all X sessions started by xinit (startx) # invoke global X session script xset s off xbmc & #xbmc xterm -fg black -bg black
Hiermit bleibt der Xserver laufen, selbst wenn das Programm (hier XBMC) beendet wird. Ansonsten wird der Xserver beendet, wenn das xinitrc Skript durchgelaufen ist!
Damit XBMC bei laufendem activylircd! Eingaben der FB aktzeptiert, muss man aus /usr/share/xbmc/system die beiden Dateien Lircmap.xml undKeymap.xml in /home/username/.xbmc/userdate kopieren. Dann muss die Lircmap.xml dahingehend angepasst werden, dass die Lirc Eingabecodes stimmen. Beispiel "Up"->"up", "Down"->"down" und so weiter.
Um Start/Stop Zeiten des Gerätes massiv zu verbessern, habe ich folgendes kleines script geschrieben, damit der VDR in den Suspend-to-RAM Modus geht:
/etc/init.d/vdr stop /etc/init.d/vdr-sxfe stop /etc/init.d/vdr-addon-acpiwakeup stop sleep 1 modprobe -r b2c2_flexcop_pci modprobe -r b2c2_flexcop logger "S3 ACPI SLEEP" echo -n "mem" > /sys/power/state logger "WAKEUP FROM S3 ACPI SLEEP" modprobe b2c2_flexcop modprobe b2c2_flexcop_pci /etc/init.d/vdr-addon-acpiwakeup start /etc/init.d/vdr start sleep 2 /etc/init.d/vdr-sxfe start
Das verringert die Einschaltzeit auf ca 5 Sekunden (Kaltstart: ca 50 Sekunden).]]