HDTV Installationsanleitung Ubuntu

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(VDR 1.7.9)
(/usr/local/bin/switchtv)
Zeile 577: Zeile 577:
 
#!/bin/bash
 
#!/bin/bash
 
DEFAULT=run_vdrxine
 
DEFAULT=run_vdrxine
 +
 +
if [ -n "`/bin/pidof switchtv`" ];then
 +
    echo "switchtv already running ..."
 +
    exit 0
 +
fi
  
 
run_vdr() {
 
run_vdr() {
Zeile 583: Zeile 588:
  
 
run_vdrxineliboutput() {
 
run_vdrxineliboutput() {
    kill_apps
 
 
     /usr/bin/xinit -e /usr/bin/vdr-sxfe --video=vdpau --post tvtime:method=use_vo_driver --audio=alsa --fullscreen --reconnect $@ &
 
     /usr/bin/xinit -e /usr/bin/vdr-sxfe --video=vdpau --post tvtime:method=use_vo_driver --audio=alsa --fullscreen --reconnect $@ &
 
}
 
}
  
 
run_vdrxine() {
 
run_vdrxine() {
    kill_apps
 
 
     /usr/bin/xinit -e /usr/bin/xine -I -V vdpau -f -r anamorphic  --post vdr_video --post vdr_audio --post upmix_mono --post vdr --verbose=2 vdr:/tmp/vdr-xine/stream#demux:mpeg_pes &
 
     /usr/bin/xinit -e /usr/bin/xine -I -V vdpau -f -r anamorphic  --post vdr_video --post vdr_audio --post upmix_mono --post vdr --verbose=2 vdr:/tmp/vdr-xine/stream#demux:mpeg_pes &
 
}
 
}
  
 
run_xbmc() {
 
run_xbmc() {
    kill_apps
 
 
     if [ -f /usr/share/xbmc/xbmc.bin ];then
 
     if [ -f /usr/share/xbmc/xbmc.bin ];then
 
         /usr/local/bin/scanvdr &
 
         /usr/local/bin/scanvdr &
        /usr/bin/irexec -d /etc/irexec.conf &
 
 
         /usr/bin/xinit -e /usr/share/xbmc/xbmc.bin -fs $@ &
 
         /usr/bin/xinit -e /usr/share/xbmc/xbmc.bin -fs $@ &
 
     else
 
     else
Zeile 605: Zeile 606:
 
kill_apps() {
 
kill_apps() {
 
     killall -9 vdr-sxfe 2>/dev/null
 
     killall -9 vdr-sxfe 2>/dev/null
 +
    killall -9 xterm    2>/dev/null
 +
    killall -9 runvdr  2>/dev/null
 +
    killall -9 vdr      2>/dev/null
 
     killall -9 xine    2>/dev/null
 
     killall -9 xine    2>/dev/null
 
     killall -9 xbmc    2>/dev/null
 
     killall -9 xbmc    2>/dev/null
 
     killall -9 xbmc.bin 2>/dev/null
 
     killall -9 xbmc.bin 2>/dev/null
 +
    killall -9 scanvdr  2>/dev/null
 +
    killall -9 irexec  2>/dev/null
 
     /usr/bin/killall xinit
 
     /usr/bin/killall xinit
 
     while [ true ]
 
     while [ true ]
Zeile 613: Zeile 619:
 
         [[ "`ps -ef | grep -v grep | grep xinit`" = "" ]] && break
 
         [[ "`ps -ef | grep -v grep | grep xinit`" = "" ]] && break
 
     done
 
     done
 +
    sleep 5
 
}
 
}
  
 
if [ "$1" = "xbmc" ];then
 
if [ "$1" = "xbmc" ];then
 +
    kill_apps
 +
    /usr/bin/irexec -d /etc/irexec.conf
 
     run_xbmc
 
     run_xbmc
 
elif [ "$1" = "vdr" ];then
 
elif [ "$1" = "vdr" ];then
     run_vdr
+
     kill_apps
elif [ "$1" = "vdrxine" ];then
+
     /usr/bin/irexec -d /etc/irexec.conf
     run_vdrxine
+
     /etc/init.d/vdr start
elif [ "$1" = "vdrxineliboutput" ];then
+
     run_vdrxineliboutput
+
 
elif [ "$1" = "kill" ];then
 
elif [ "$1" = "kill" ];then
 
     kill_apps
 
     kill_apps
 
elif [ -z "$1" ];then
 
elif [ -z "$1" ];then
     if [ "`ps -ef | grep -v grep | egrep "vdr-sxfe|bin/xine"`" != "" ];then
+
     killall -9 irexec  2>/dev/null
        echo "VDR application is running => starting XBMC ..."
+
    run_vdr
        /etc/init.d/vdr stop
+
     /usr/bin/irexec -d /etc/irexec.conf
        kill_apps
+
        run_xbmc
+
     elif [ "`ps -ef | grep -v grep | grep 'xbmc'`" != "" ];then
+
        echo "XBMC application is running => starting VDR ..."
+
        kill_apps
+
        /etc/init.d/vdr start
+
    else
+
        echo "no application is running => starting VDR ..."
+
        kill_apps
+
        /etc/init.d/vdr restart
+
    fi
+
 
fi
 
fi
  

Version vom 30. September 2009, 19:02 Uhr

Inhaltsverzeichnis

Gehäuse/Karten Empfehlung

Wer gute Kombinationen hat, bitte posten ...

Asus Pundit4-P5N9300 mit TeVii S470 DVB-S2 PCI-E (~170,- Euro Gehäuse, ~80 Euro DVB-S2)

Installationsanleitung Ubuntu 9.04

Nvidia Installation

Achtung: vorher alle nvidia/nv Pakete/Module deinstallieren

apt-get install build-essential xserver-xorg-dev xorg-dev
/etc/init.d/gdm stop
cd /home/deinkonto 
wget ftp://download.nvidia.com/XFree86/Linux-x86/185.19/NVIDIA-Linux-x86-185.19-pkg1.run #(oder neuer)
sh *.run

/etc/X11/xorg.conf

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "Composite" "Disable"
EndSection

gdm restarten und anschließend im /var/log/Xorg.0.log prüfen ob der Treiberr wirklich geladen wurde

/etc/init.d/gdm restart

vdpinfo

Mit dem Tool kann man testen ob die vdapu Unterstützung funktioniert

cd /usr/local/src
wget http://www.cs.rug.nl/~wladimir/vdpinfo/vdpinfo-0.0.5.tar.gz
tar -xivf vdpinfo-0.0.5.tar.gz
cd vdpinfo
make
cp vdpinfo /usr/local/bin

LIB Installation

apt-get install mercurial cvs subversion libncurses-dev zlib1g-dev
apt-get install autoconf libtool automake pkg-config gettext unrar
apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev libpng12-dev libx11-dev libxv-dev libasound2-dev

Treiber Installation

cd /usr/local/src
hg clone http://mercurial.intuxication.org/hg/s2-liplianin/
cd s2-liplianin
cd linux/include/linux
ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h ./
cd ../../../
make
make install
depmod -a
reboot

Firmware Installation (unterschiedlich je nach Karte)

TT-S2-1600

cd /usr/src
hg clone http://powarman.dyndns.org/hg/v4l-dvb
cd v4l-dvb
make
make install

TeVii S470 / TBS 6920 (DVB-S2 PCI-E)

cd /usr/local/src
wget http://www.tbsdtv.com/download/tbs6920_8920_v23_linux_x86_x64.rar
unrar x tbs6920_8920_v23_linux_x86_x64.rar
tar xivf linux-s2api-tbs6920-8920-v23.tar.gz
cd linux-s2api-tbs6920-8920-v23
make
make install

#firmware runterladen von http://www.vdr-portal.de/board/thread.php?threadid=86740
tar xvzf firmware.tar.gz
cp dvb-fe-cx24116.fw /lib/firmware/

Nova-HD-S2

cd /usr/local/src
apt-get install unrar -y
rm /lib/firmware/dvb-fe-c*
cd /usr/local/src
wget http://www.hauppauge.de/software/mce/88x_2_122_26109_WHQL.zip
unzip -jo 88x_2_122_26109_WHQL.zip Driver88/hcw88bda.sys
dd if=hcw88bda.sys of=dvb-fe-cx26109.fw skip=75504 bs=1 count=32501
cp dvb-fe-cx26109.fw /lib/firmware/
ln -s /lib/firmware/dvb-fe-cx26109.fw /lib/firmware/dvb-fe-cx24116.fw

ffmpeg

cd /usr/local/src
apt-get install build-essential checkinstall
apt-get install mercurial cvs subversion git-core libncurses-dev
apt-get install autoconf libtool automake pkg-config gettext
apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev zlib1g-dev libpng12-dev libx11-dev libxv-dev libxvmc-dev libasound2-dev libmpcdec-dev
apt-get install yasm
apt-get build-dep ffmpeg
git clone git://git.videolan.org/x264.git
cd x264
./configure --prefix=/usr --enable-pic --enable-shared --enable-pthread --enable-asm --extra-cflags="-mtune=native -march=native -mfpmath=sse -O4 -pipe"
make
checkinstall
ldconfig -v
cd /usr/local/src
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg/
./configure --prefix=/usr --enable-shared --enable-gpl --enable-postproc --enable-libmp3lame --enable-libvorbis --enable-pthreads --enable-libx264 --extra-cflags="-mtune=native -march=native -mfpmath=sse -O4 -pipe"
make
checkinstall
ldconfig –v

xine plugin

cd /usr/local/src
wget http://home.vr-web.de/~rnissl/vdr-xine-0.9.3.tgz
tar xivf vdr-xine-0.9.3.tgz 


Xine-VDPAU

apt-get remove --purge libxine1 libxine1-bin libxine1-console libxine1-misc-plugins libxine1-x

Achtung! vorher prüfen, ob es in /usr/lib/xine oder /usr/local/lib/xine bereits plugins gibt, ./configure --prefix=/usr ggfs. entsprechend anpassen. Nach der Installation prüfen, ob im lib Verzeichnis die plugins vorhanden sind

cd /usr/local/src
svn co svn://jusst.de/xine-vdpau
cd xine-vdpau 

## vi /usr/local/src/xine-vdpau/src/combined/ffmpeg/ff_video_decoder.c
## "dort gibt es 2 Einträge mit RGBA32 dies ändern in RGB32"

find ../xine-0.9.3 -name xine-lib.patch -exec patch -p1 -i \{} \; 

./autogen.sh
./configure --prefix=/usr
make
checkinstall
ldconfig -v

Xine-UI

cd /usr/local/src
apt-get install libxt-dev libpostproc-dev liblircclient-dev
wget http://home.vrweb.de/~rnissl/xine-ui-cvs-20090617220000.tar.bz2
tar xivf xine-ui-cvs-20090617220000.tar.bz2
cd xine-ui
./autogen.sh --prefix=/usr --enable-vdr-keys
make
checkinstall

Xine Installation prüfen

Bei "Videoausgabe" muß "vdpau" vorhanden sein!

xine --list-plugins

Dies ist xine (X11 gui) - Ein freier Video-Player v0.99.6cvs.
(c) 2000-2007 Das xine Team.

 Verfügbare xine-Plugins:
   -Audioausgabe:
     alsa, oss, esd, file, none.

   -Videoausgabe:
     vdpau, dxr3, aadxr3, xv, raw, SyncFB, opengl, xshm, aa, caca, xxmc, none,
     sdl, vidix, vidixfb, fb, xvmc.

   -Demuxer:
     xvdr, anx, nsv, yuv4mpeg2, mpeg_block, matroska, ogg, pva, iff, mpeg-ts,
     avi, quicktime, wve, idcin, ipmovie, vqa, wc3movie, roq, str, film,
     smjpeg, fourxm, vmd, flashvideo, fli, real, asf, aud, aiff, flac, nsf,
     realaudio, snd, tta, voc, vox, mpeg_pes, slave, mpeg, ac3, dts, cdda, wav,
     mpc, rawdv, vc1es, mp3, shn, yuv_frames, elem, sputext, aac.

   -Eingang:
     CD, VCDO, rtp, DVD, stdin, VDR, pnm, VCD, v4l_radio, v4l_tv, rtsp, FILE,
     DVB, http, tcp, xvdr, mms, pvr.

   -Untertitel:
     dxr3-spudec, spudec, spudvb, spucc, spucmml, sputext.

   -Nachbearbeitung:
     vdr, goom, switch, mosaico, upmix, upmix_mono, stretch, volnorm, warp,
     swscale, expand, fill, invert, eq, denoise3d, boxblur, eq2, unsharp, pp,
     noise, oscope, fftscope, fftgraph, autocrop, tvtime, audiochannel,
     vdr_video, vdr_audio.

   -Audiodecoder:
     gsm610, mad, ffmpegaudio, realadec, vorbis, a/52, nsf, speex, mpc,
     dvaudio, pcm, dts, faad.

   -Videodecoder:
     dxr3-mpeg2, vdpau_mpeg12, vdpau_vc1, mpeg2, realvdec, vdpau_h264,
     ffmpegvideo, theora, bitplane, yuv, rgb, ffmpeg-wmv8, ffmpeg-wmv9.

VDR 1.7.9

cd /usr/local/src
apt-get install libfreetype6-dev libfontconfig1-dev libjpeg62-dev libcap-dev libncurses5-dev libncursesw5-dev libbz2-dev ethtool
wget ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.7.9.tar.bz2
tar xivf vdr-1.7.9.tar.bz2
cd vdr-1.7.9
mv /usr/local/src/xine-0.9.3 PLUGINS/src/xine

Make.config

#
# User defined Makefile options for the Video Disk Recorder
#
# Copy this file to 'Make.config' and change the parameters as necessary.
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Make.config.template 2.0 2008/01/13 12:54:09 kls Exp $

### The C compiler and options:

CC       = gcc
CFLAGS   = -g -O2 -Wall

CXX      = g++
CXXFLAGS = -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses

ifdef PLUGIN
CFLAGS   += -fPIC
CXXFLAGS += -fPIC
DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
endif

### The directory environment:
DVBDIR   = /usr/local/src/s2-liplianin/linux
MANDIR   = /usr/man
BINDIR   = /usr/bin
 
LOCDIR   = /usr/share/locale
PLUGINDIR= ./PLUGINS
PLUGINLIBDIR= /usr/lib/vdr/plugins
VDRSCRIPTDIR= /usr/lib/vdr/scripts
VIDEODIR = /var/lib/video.00
CONFDIR  = /etc/vdr/


### The remote control:

LIRC_DEVICE = /dev/lircd
RCU_DEVICE  = /dev/ttyS1

## Define if you want vdr to not run as root
#VDR_USER = vdr

Vorbereitung:

mkdir /var/lib/video.00
mkdir -p /usr/lib/vdr/plugins
mkdir -p /usr/lib/vdr/scripts
mkdir -p /etc/vdr/plugins
make
make plugins
make i18n
make install
locale-gen de_DE.UTF-8 de_DE
dpkg-reconfigure locales
cp -a svdrpsend.pl /usr/bin
cp *.conf /etc/vdr/

Wer Probleme hat in der Art:

dvbdevice.c: In constructor âcDvbDevice::cDvbDevice(int)â:
dvbdevice.c:487: error: âFE_CAN_2G_MODULATIONâ was not declared in this scope
# vi /usr/include/linux/dvb/frontend.h
    FE_HAS_EXTENDED_CAPS        = 0x800000,   // We need more bitspace for newer APIs, indicate this.
// Einfuegen, anfang
    FE_CAN_2G_MODULATION        = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
// Einfuegen, ende
    FE_NEEDS_BENDING        = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)

Xineliboutput plugin

bis vdr-1.7.3

cd /usr/local/src/vdr-1.7.x/PLUGINS/src
wget http://downloads.sourceforge.net/project/xineliboutput/xineliboutput/vdr-xineliboutput-1.0.4/vdr-xineliboutput-1.0.4.tar.bz2
tar xivf vdr-xineliboutput-1.0.4.tar.bz2

mv xineliboutput* xineliboutput
cd ../..
make plugins
make install
cd PLUGINS/src/xineliboutput
make
make install
mkdir -p /etc/vdr/plugins/xineliboutput
cp *.mpg /etc/vdr/plugins/xineliboutput/
cd ../../../
make plugins
make install

ab vdr-1.7.4

cd /usr/local/src/vdr-1.7.9/PLUGINS/src
apt-get install libextractor-dev
cvs -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput login
cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co -P vdr-xineliboutput

mv vdr-xineliboutput* xineliboutput
cd ../..
make plugins
make install
cd PLUGINS/src/xineliboutput
make
make install
mkdir -p /etc/vdr/plugins/xineliboutput
cp *.mpg /etc/vdr/plugins/xineliboutput/
cd ../../../
make plugins
make install

Xine plugin

cd /usr/local/src/vdr-1.7.9/PLUGINS/src/xine/data
mkdir -p /etc/vdr/plugins/xine
cp *.mpg /etc/vdr/plugins/xine

Scripts

/var/bin/runvdr

#!/bin/bash

export VDR_LANG=de_DE
export VDR_CHARSET_OVERRIDE="ISO-8859-15"
export LANG="de_DE"
export LC_COLLATE="de_DE"
export LC_ALL="de_DE"

PATH=/usr/local/bin:$PATH

/usr/bin/amixer set 'IEC958',1 unmute

/usr/bin/touch /var/lib/video.00/.update

VDRPRG="/usr/bin/vdr"
VDRCMD="/usr/bin/vdr -c /etc/vdr -v /var/lib/video.00 -E /var/vdr -l 3 --user=root --lirc=/dev/null \
-s /var/bin/vdrpoweroff -P'xineliboutput -l none -r 37890 -p' -P'xine -r' $*"


KILL="/usr/bin/killall -q -TERM"

# Detect whether the DVB driver is already loaded
# and return 0 if it *is* loaded, 1 if not:
DriverLoaded()
{
  return 1
}

# Load all DVB driver modules needed for your hardware:
LoadDriver ()
{

  return 0

}

# Unload all DVB driver modules loaded in LoadDriver():
UnloadDriver ()
{

  return 0

}

# Load driver if it hasn't been loaded already:
if ! DriverLoaded; then
   LoadDriver
fi

while (true) do
      eval "$VDRCMD"
      if test $? -eq 0 -o $? -eq 2; then exit; fi
      echo "`date` reloading DVB driver"
      $KILL $VDRPRG
      sleep 10
      UnloadDriver
      LoadDriver
      echo "`date` restarting VDR"
      done

/var/bin/vdrpoweroff

#!/bin/bash
/sbin/poweroff

/etc/init.d/vdr

#!/bin/bash
### BEGIN INIT INFO
# Provides:          VDR
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Description:       Start, Stop or Restart VDR
### END INIT INFO

# Shell functions sourced from /etc/rc.status:
# set -e
# Reset status of this service
# rc_reset

#
case "$1" in
    start)
        echo -n "Starting VDR "
                /usr/sbin/ethtool -s eth0 wol g
                /var/bin/runvdr > /var/log/vdr.log &
                /usr/local/bin/switchtv
        ;;
    stop)
        echo -n "Shutting down VDR "
                /usr/local/bin/switchtv kill
        ;;
    restart)
        echo -n "Restart VDR "
        $0 stop
        sleep 5
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac
# rc_exit
exit 0

update-rc.d vdr defaults

/var/bin/vdrwakealarm

#!/bin/sh

DEV=/sys/class/rtc/rtc0/wakealarm

if [ -z "$1" ];then
    wakeuptime=$(/usr/local/bin/svdrpsend.pl -d localhost NEXT abs|grep 250 |cut -f3 -d' '|tr -d '\r')
else
    wakeuptime=$1
fi

echo ""
echo "initialisiere Wakeup ..."
echo 0 > $DEV
echo "setze Timer $wakeuptime ..."
echo $wakeuptime > $DEV
echo ""
echo "naechster Timer abzgl. 2h:"
echo "-------------------------"

ALARM_DATE=$(cat /proc/driver/rtc | grep alrm_date )
ALARM_TIME=$(cat /proc/driver/rtc | grep alrm_time )

echo "$ALARM_DATE"
echo "$ALARM_TIME"
echo ""

TEST=$(echo $ALARM_DATE|grep '\*\*')

if [ -n "$TEST" ];then
     echo "**** ERROR: Wakeup nicht korrekt ... ****"
     echo "****        neuer Wakeup in 4h       ****"
     wakeuptime=$(date +%s)
     wakeuptime=$((wakeuptime+14400))
     $0 $wakeuptime
fi

/usr/local/bin/switchtv

mit Umschaltung zu XBMC

#!/bin/bash
DEFAULT=run_vdrxine

if [ -n "`/bin/pidof switchtv`" ];then
    echo "switchtv already running ..."
    exit 0
fi

run_vdr() {
    $DEFAULT
}

run_vdrxineliboutput() {
    /usr/bin/xinit -e /usr/bin/vdr-sxfe --video=vdpau --post tvtime:method=use_vo_driver --audio=alsa --fullscreen --reconnect $@ &
}

run_vdrxine() {
    /usr/bin/xinit -e /usr/bin/xine -I -V vdpau -f -r anamorphic  --post vdr_video --post vdr_audio --post upmix_mono --post vdr --verbose=2 vdr:/tmp/vdr-xine/stream#demux:mpeg_pes &
}

run_xbmc() {
    if [ -f /usr/share/xbmc/xbmc.bin ];then
         /usr/local/bin/scanvdr &
         /usr/bin/xinit -e /usr/share/xbmc/xbmc.bin -fs $@ &
    else
         /etc/init.d/vdr restart
    fi
}

kill_apps() {
     killall -9 vdr-sxfe 2>/dev/null
     killall -9 xterm    2>/dev/null
     killall -9 runvdr   2>/dev/null
     killall -9 vdr      2>/dev/null
     killall -9 xine     2>/dev/null
     killall -9 xbmc     2>/dev/null
     killall -9 xbmc.bin 2>/dev/null
     killall -9 scanvdr  2>/dev/null
     killall -9 irexec   2>/dev/null
     /usr/bin/killall xinit
     while [ true ]
     do
        [[ "`ps -ef | grep -v grep | grep xinit`" = "" ]] && break
     done
     sleep 5
}

if [ "$1" = "xbmc" ];then
     kill_apps
     /usr/bin/irexec -d /etc/irexec.conf
     run_xbmc
elif [ "$1" = "vdr" ];then
     kill_apps
     /usr/bin/irexec -d /etc/irexec.conf
     /etc/init.d/vdr start
elif [ "$1" = "kill" ];then
     kill_apps
elif [ -z "$1" ];then
     killall -9 irexec   2>/dev/null
     run_vdr
     /usr/bin/irexec -d /etc/irexec.conf
fi

exit 0

Script permissions anpassen

chmod 755 /usr/local/bin/switchtv
chmod 755 /etc/init.d/vdr
chmod 755 /var/bin/runvdr
chmod 755 /var/bin/vdrpoweroff
chmod 775 /var/bin/wakealarm

Wakeup

Wenn das Wakeup nicht funktioniert, dann bitte http://www.mythtv.org/wiki/ACPI_Wakeup#Disable_hwclock_updates lesen

X

/etc/init.d/gdm disablen:

update-rc.d gdm remove

/etc/X11/Xwrapper.config

Diese Zeile

allowed_users=console

ändern in

allowed_users=anybody

/etc/X11/xorg.conf

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 1.0  (buildmeister@builder63)  Fri Apr  3 13:01:52 PST 2009


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"

#    VendorName     "Unknown"
#    ModelName      "Unknown"
    Identifier     "Monitor0"
    #HorizSync       15.0 - 68.0
    HorizSync       15.0 - 75.0
    VertRefresh     23.0 - 61.0
    Option         "DPMS"
    Option         "ExactModeTimingsDVI" "True"
    Option         "UseDisplayDevice" "DFP-0"
    Option         "UseEDIDFreqs" "False"

    # 1920x1080p @ 50Hz (EIA/CEA-861B)
    ModeLine "1920x1080@50" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync

    # 1920x1080p @ 60Hz (EIA/CEA-861B)
    ModeLine "1920x1080@60" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync

    # 1920x1080p @ 24Hz (EIA/CEA-861B)
    ModeLine "1920x1080@24" 74.250 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync

    # 1920x1080p @ 23.976Hz (EIA/CEA-861B)
    ModeLine "1920x1080@23.976" 74.175 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync

    # 1920x1080i @ 50Hz (EIA/CEA-861B)
    Modeline "1920x1080@50i" 74.250 1920 2448 2492 2640 1080 1085 1095 1125 +hsync +vsync Interlace

    # 1920x1080i @ 60Hz (EIA/CEA-861B)
    Modeline "1920x1080@60i" 74.250 1920 2008 2052 2200 1080 1085 1095 1125 +hsync +vsync Interlace

    # 1920x1080p @ 59.94Hz (EIA/CEA-861B)
    ModeLine "1920x1080@59.94" 148.350 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync

    # 1920x1080i @ 59.94Hz (EIA/CEA-861B)
    Modeline "1920x1080@59.94i" 74.175 1920 2008 2052 2200 1080 1085 1095 1125 +hsync +vsync Interlace

    # 1920x1080p @ 25Hz (EIA/CEA-861B)
    ModeLine "1920x1080@25" 74.250 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync

    # 1920x1080p @ 29.97Hz (EIA/CEA-861B)
    ModeLine "1920x1080@29.97" 74.175 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync

    # 1920x1080p @ 30Hz (EIA/CEA-861B)
    ModeLine "1920x1080@30" 74.250 1920 2008 2052 2200 1080 1084 1089 1125 +hsync
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "CustomEdid" "DFP-0:/etc/X11/edid.bin"
    Option         "ConnectedMonitor" "DFP-0"
    Option         "UseDisplayDevice" "DFP-0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "NoLogo"
    Option         "DynamicTwinView" "false"
    Option         "AllowGLXWithComposite" "True"
    Option         "AddARGBVisuals" "True"
    Option         "AddARGBGLXVisuals" "True"
    Option         "NoLogo" "False"
    Option         "RenderAccel" "True"
    Option         "UseEvents" "True"
    Option         "TripleBuffer" "True"
    Option         "ExactModeTimingsDVI" "True"
    Option         "FlatPanelProperties" "Scaling = Native"
    SubSection     "Display"
        Depth       24
        Modes      "1920x1080@50" "1920x1080@24"
    EndSubSection
EndSection

Section "Extensions"
    Option         "Composite" "Disable"
EndSection

Section "Module"
    Load           "extmod"
    Load           "glx"
    #Load           "v4l"
EndSection

Lirc

apt-get install lirc lirc-modules-source

/etc/lirc/hardware.conf

(nur für Nova-HD-S2 IR Empfänger!)

# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="Hauppauge Nova-HD-S2"
REMOTE_MODULES=""
REMOTE_DRIVER="devinput"
TEMPIREVENT=`ls /dev/input/by-path/ |grep event-ir`
REMOTE_DEVICE="/dev/input/by-path/$TEMPIREVENT"
REMOTE_LIRCD_CONF="/etc/lircd.conf"
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"

#Try to load appropriate kernel modules
LOAD_MODULES=""

# Default configuration files for your hardware if any
LIRCMD_CONF=""

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""

/etc/lircd.conf

(nur für Nova-HD-S2 IR Empfänger!)

#This configuration has been automatically generated via
#the Ubuntu LIRC package maintainer scripts.
#
#It includes the default configuration for the remote and/or
#transmitter that you have selected during package installation.
#
#Feel free to add any custom remotes to the configuration
#via additional include directives or below the existing
#Ubuntu include directives from your selected remote and/or
#transmitter.

#Configuration for the Hauppauge Nova-T 500 remote:
#include "/usr/share/lirc/remotes/hauppauge/lircd.conf.hauppauge_novat500"
# brand:                       Hauppauge NOVA-HD-S2
# model no. of remote control: Hauppage NOVA-HD-S2 Snowboard Shape Silver over Black
#

begin remote

 name  NOVA-HD-S2
 bits           16
 eps            30
 aeps          100

 one             0     0
 zero            0     0
 pre_data_bits   16
 pre_data       0x1
 gap          199999
 min_repeat 1
 toggle_bit      0


     begin codes
         test1                    0x0174
         Pictures                 0x016F
         Go                       0x0161
         Text                     0x0184
         Sub                      0x0172
         Power                    0x0074
         TV                       0x0179
         Videos                   0x0189
         Music                    0x0188
         Pictures                 0x00E2
         Guide                    0x016D
         Radio                    0x0181
         Up                       0x0067
         Left                     0x0069
         OK                       0x001C
         Right                    0x006A
         Down                     0x006C
         Back                     0x00AE
         Menu                     0x008B
         Vol+                     0x0073
         Vol-                     0x0072
         Mute                     0x0071
         Ch+                      0x0192
         Ch-                      0x0193
         Record                   0x00A7
         FastRew                  0x00A8
         FastFwd                  0x00D0
         SkipBack                 0x0195
         SkipFwd                  0x0197
         Play                     0x00CF
         Pause                    0x0077
         Stop                     0x0080
         Sleep                    0x008E
         NextSong                 0x00A3
         PrevSong                 0x00A5
         Sorpre1                  0x00D0
         PrevCh                   0x019C
         1                        0x0002
         2                        0x0003
         3                        0x0004
         4                        0x0005
         5                        0x0006
         6                        0x0007
         7                        0x0008
         8                        0x0009
         9                        0x000A
         *                        0x0037
         0                        0x000B
         #                        0x0029
         one                      0x004F
         two                      0x0050
         three                    0x0051
         four                     0x004B
         five                     0x004C
         six                      0x004D
         seven                    0x0047
         eight                    0x0048
         nine                     0x0049
         ten                      0x0052
         Red                      0x018E
         Green                    0x018F
         Yellow                   0x0190
         Blue                     0x0191

 end codes

end remote

/etc/irexec.conf

begin
   prog   = irexec
   remote = NOVA-HD-S2
   button = Guide
   config = /usr/local/bin/switchtv & \n
end

/etc/vdr/remote.conf

LIRC.Up        Up
LIRC.Down      Down
LIRC.Menu      Menu
LIRC.Ok        OK
LIRC.Back      Back
LIRC.Left      Left
LIRC.Right     Right
LIRC.Red       Red
LIRC.Green     Green
LIRC.Yellow    Yellow
LIRC.Blue      Blue
LIRC.0         0
LIRC.1         1
LIRC.2         2
LIRC.3         3
LIRC.4         4
LIRC.5         5
LIRC.6         6
LIRC.7         7
LIRC.8         8
LIRC.9         9
LIRC.Power     Power
LIRC.Volume+   Volume+
LIRC.Volume-   Volume-
LIRC.Mute      Mute
LIRC.Channel+  Ch+
LIRC.Channel-  Ch-
XKeySym.Up         Up
XKeySym.Down       Down
XKeySym.Menu       Menu
XKeySym.Ok         OK
XKeySym.Back       Back
XKeySym.Left       Left
XKeySym.Right      Right
XKeySym.Red        Red
XKeySym.Green      Green
XKeySym.Yellow     Yellow
XKeySym.Blue       Blue
XKeySym.0          0
XKeySym.1          1
XKeySym.2          2
XKeySym.3          3
XKeySym.4          4
XKeySym.5          5
XKeySym.6          6
XKeySym.7          7
XKeySym.8          8
XKeySym.9          9
XKeySym.Power      Power
XKeySym.Volume+    Volume+
XKeySym.Volume-    Volume-
XKeySym.Mute       Mute
XKeySym.Channel+   Ch+
XKeySym.Channel-   Ch-

Audio

Vorsichthalber auf die neueste Alsa Version mit dem Script "AlsaUpgrade-1.0.x-rev-1.17.sh" von hier upgraden und anschließend neu booten

Der User der vdr-sxfe startet muß(!) in der group "audio" sein

HDMI

mit aplay sieht man wo das HDMI Device konfiguriert ist (Card "0" Device "3")

aplay -l 
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: ALC883 Analog [ALC883 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

/etc/asound.conf

pcm.!default {
        type hw
        card 0
        device 3
}

/etc/vdr/setup.conf (vdr muß vorher gestoppt sein)

xineliboutput.Audio.Port = hw:0,3
xineliboutput.Audio.Speakers = Pass Through

~/.xine/config_xineliboutput

audio.device.alsa_front_device:default
audio.device.alsa_passthrough_device:hw:0,3
audio.device.alsa_surround51_device:default
audio.output.speaker_arrangement:Pass Through
audio.synchronization.av_sync_method:resample
audio.synchronization.force_rate:48000
audio.synchronization.resample_mode:on

~/.xine/config

# Anzahl der Audiopuffer
# numeric, default: 230
engine.buffers.audio_num_buffers:250

# Anzahl der Videopuffer
# numeric, default: 500
engine.buffers.video_num_buffers:2000

XBMC

/etc/apt/sources.list.d/xbmc.list

deb http://ppa.launchpad.net/team-xbmc-svn/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/team-xbmc-svn/ppa/ubuntu jaunty main

Installation

apt-get update
apt-get install xbmc

Lircmap.xml (~/.xbmc/userdata)

<lircmap>
  <remote device="NOVA-HD-S2">
         <power>Power</power>
         <info>Red</info>
         <display>Green</display>
         <title>Yellow</title>
         <start>Blue</start>
         <skipplus>SkipFwd</skipplus>
         <skipminus>SkipBack</skipminus>
         <channelplus>Ch+</channelplus>
         <channelminus>Ch-</channelminus>
         <skipplus>NextSong</skipplus>
         <skipminus>PrevSong</skipminus>
         <mymusic>Music</mymusic>
         <mypictures>Pictures</mypictures>
         <myTV>TV</myTV>
         <myvideo>Videos</myvideo>
         <up>Up</up>
         <left>Left</left>
         <right>Right</right>
         <down>Down</down>
         <up>Up</up>
         <select>OK</select>
         <menu>Menu</menu>
         <play>Play</play>
         <pause>Pause</pause>
         <stop>Stop</stop>
         <forward>FastFwd</forward>
         <reverse>FastRew</reverse>
         <back>Back</back>
         <zero>0</zero>
         <one>1</one>
         <two>2</two>
         <three>3</three>
         <four>4</four>
         <five>5</five>
         <six>6</six>
         <seven>7</seven>
         <eight>8</eight>
         <nine>9</nine>
  </remote>
</lircmap>

/usr/local/bin/scanvdr

#!/bin/bash

VDR2JPEG="/usr/local/bin/vdr2jpeg"
FFMPEG="/usr/bin/ffmpeg"
IMGUSE="VDR2JPEG"

VDRREC="/nas01/videos/vdr"   ### you may need to adjust the path
TVFILE="../tvshow.nfo"
NFOFILE="001.nfo"

DVDTHUMB="../folder.jpg"
DVDOFFSETVDR="18000"
DVDOFFSETSEC="5000"
DVD_XRES="1280"
DVD_YRES="720"

FANTHUMB="../fanart.jpg"
FANOFFSETVDR="20000"
FANOFFSETSEC="6000"
FAN_XRES="1280"
FAN_YRES="720"

if [ "$1" = "-new" ];then
  echo "regenerating all files ..."
  find $VDRREC -name "*.jpg" -exec rm {} \;
  find $VDRREC -name "*.nfo" -exec rm {} \;
elif [ -n "$1" ];then
  echo "  Usage:"
  echo "  $0"
  echo "      - or -"
  echo "  $0 -new"
  exit 0
fi


for i in $(find $VDRREC -name "info*" -type f)
do
  VDRDIR=$(dirname $i)
  VDRINFO=$(basename $i)
  cd $VDRDIR

  if [ -f $VDRINFO ];then
     AIRED=$(basename $VDRDIR | awk -F'.' '{print $1}')
     DAUER=$(grep "^E " $VDRINFO | awk '{print $4/60}' | awk -F'.' '{print $1}')
     TITEL=$(grep "^T " $VDRINFO | sed "s/^T //")
     INHALT=$(grep "^D " $VDRINFO | sed "s/^D //")
     KURZTEXT=$(grep "^S " $VDRINFO | sed "s/^S //")
     if [ -z "$KURZTEXT" ];then
          KURZTEXT="$TITEL"
     fi
  fi

  echo "${TITEL}:"

  echo "creating database infos ..."

  COUNTREC=$(find .. -name "*.rec" | wc -l)
  COUNTRECTS=$(find .. -name "*.ts" | wc -l)
  let COUNTREC=COUNTREC+COUNTRECTS

  HTEXT=$(find .. -name $VDRINFO | sort -n | xargs cat | grep "^S " | sed "s/^S //")

  if [ -z "$HTEXT" ];then
        HTEXT="$DAUER min: $INHALT"
  elif [ "$COUNTREC" = "1" ];then
        HTEXT="[ ${HTEXT} ]
$DAUER min: $INHALT"
  fi

  echo "<tvshow>"                  > $TVFILE
  echo "<title>$TITEL</title>"    >> $TVFILE
  echo "<plot>$HTEXT</plot>"      >> $TVFILE
  echo "</tvshow>"                >> $TVFILE


  if [ ! -f $NFOFILE ];then

     echo "<episodedetails>"                     > $NFOFILE
     echo "<title>$KURZTEXT</title>"            >> $NFOFILE
     echo "<rating></rating>"                   >> $NFOFILE
     echo "<season></season>"                   >> $NFOFILE
     echo "<episode></episode>"                 >> $NFOFILE
     echo "<plot>$DAUER min: $INHALT</plot>"    >> $NFOFILE
     echo "<credits>VDR</credits>"              >> $NFOFILE
     echo "<director></director>"               >> $NFOFILE
     echo "<aired>$AIRED</aired>"               >> $NFOFILE
     echo "<runtime>$DAUER min</runtime>"       >> $NFOFILE
     echo "<actor></actor>"                     >> $NFOFILE
     echo "</episodedetails>"                   >> $NFOFILE

  fi

  if [ "$VDRINFO" = "info.vdr" ];then
       VIDEOFILE="001.vdr"
  else
       VIDEOFILE="00001.ts"
  fi

  if [ -f $VDR2JPEG ] && [ "$IMGUSE" = "VDR2JPEG" ] && [ "$VDRINFO" = "info.vdr" ];then

     if [ ! -f $DVDTHUMB ];then
       echo "creating DVD thumbnails ..."
       $VDR2JPEG -x $DVD_XRES= -y $DVD_YRES -f $DVDOFFSETVDR -r .
       mv 000${DVDOFFSETVDR}.jpg $DVDTHUMB
     fi

     if [ ! -f $FANTHUMB ];then
       echo "creating FANART thumbnails ..."
       $VDR2JPEG -x $FAN_XRES= -y $FAN_YRES -f $FANOFFSETVDR -r .
       mv 000${FANOFFSETVDR}.jpg $FANTHUMB
     fi

  elif [ -f $FFMPEG ];then

     if [ ! -f $DVDTHUMB ];then
       echo "creating DVD thumbnails ..."
       $FFMPEG -i $VIDEOFILE -itsoffset $DVDOFFSETSEC -s ${DVD_XRES}x${DVD_YRES} -f image2 -vframes 1 -y temp.jpg
       mv temp.jpg $DVDTHUMB
     fi

     if [ ! -f $FANTHUMB ];then
       echo "creating FANART thumbnails ..."
       $FFMPEG -i $VIDEOFILE -itsoffset $FANOFFSETSEC -s ${FAN_XRES}x${FAN_YRES} -f image2 -vframes 1 -y temp.jpg
       mv temp.jpg $FANTHUMB
     fi

  fi

  echo "---"

done