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).]]