Activy vdpau xbmc

Aus VDR Wiki
Wechseln zu: Navigation, Suche

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