HDTV Installationsanleitung Ubuntu

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(LIB Installation)
(vdpinfo)
 
(97 dazwischenliegende Versionen von 30 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
  
 
=== Nvidia Installation ===
 
=== Nvidia Installation ===
Achtung: vorher alle nvidia/nv Pakete/Module deinstallieren
+
Als ersten Schritt den [[VDPAU]]-fähigen Grafikkartentreiber von NVidia installieren.
 +
 
 +
'''Achtung:''' vorher alle nvidia/nv Pakete/Module deinstallieren
 
<pre>
 
<pre>
 
apt-get install build-essential xserver-xorg-dev xorg-dev
 
apt-get install build-essential xserver-xorg-dev xorg-dev
Zeile 77: Zeile 79:
 
</pre>
 
</pre>
  
gdm restarten und anschließend im '''/var/log/Xorg.0.log''' prüfen ob der Treiberr wirklich geladen wurde
+
gdm neu starten und anschließend im '''/var/log/Xorg.0.log''' prüfen ob der Treiber wirklich geladen wurde
 
<pre>
 
<pre>
 
/etc/init.d/gdm restart
 
/etc/init.d/gdm restart
Zeile 84: Zeile 86:
 
==== vdpinfo ====
 
==== vdpinfo ====
  
Mit dem Tool kann man testen ob die vdapu Unterstützung funktioniert
+
Mit dem Tool kann man testen ob die vdpau Unterstützung funktioniert
  
 
<pre>
 
<pre>
 
cd /usr/local/src
 
cd /usr/local/src
wget http://www.cs.rug.nl/~wladimir/vdpinfo/vdpinfo-0.0.5.tar.gz
+
apt-get install automake git-core libvdpau-dev libvdpau1 libx11-dev
tar -xivf vdpinfo-0.0.5.tar.gz
+
git clone http://cgit.freedesktop.org/~aplattner/vdpauinfo
cd vdpinfo
+
cd vdpauinfo
 +
./autogen.sh
 
make
 
make
cp vdpinfo /usr/local/bin
+
cp vdpauinfo /usr/local/bin
 
</pre>
 
</pre>
 +
 +
Falls die Fehlermeldung "/usr/bin/ld: cannot find -lvdpau" auftritt,
 +
stimmt der symbolische Link "/usr/lib/libvdpau.so -> libvdpau.so.1" evtl. nicht.
  
 
=== LIB Installation ===
 
=== LIB Installation ===
Zeile 126: Zeile 132:
 
</pre>
 
</pre>
  
==== TeVii S470 DVB-S2 PCI-E ====
+
==== TeVii S470 / TBS 6920 (DVB-S2 PCI-E) ====
 
<pre>
 
<pre>
 
cd /usr/local/src
 
cd /usr/local/src
Zeile 139: Zeile 145:
 
tar xvzf firmware.tar.gz
 
tar xvzf firmware.tar.gz
 
cp dvb-fe-cx24116.fw /lib/firmware/
 
cp dvb-fe-cx24116.fw /lib/firmware/
 +
 +
# bei meiner Tivii S470 musste die Firmware umbenannt werden:
 +
cp /lib/firmware/dvb-fe-cx24116.fw /lib/firmware/dvb-fe-ds3000.fw
 
</pre>
 
</pre>
  
Zeile 154: Zeile 163:
 
</pre>
 
</pre>
  
=== ffmpeg ===
+
=== x264 / ffmpeg ===
 
<pre>
 
<pre>
 +
apt-get --purge remove libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-49
 +
apt-get --purge remove libpostproc-unstripped-51 libswscale-unstripped-0 ffmpeg x264 libx264-dev
 +
 
cd /usr/local/src
 
cd /usr/local/src
apt-get install build-essential
+
apt-get install build-essential checkinstall
 
apt-get install mercurial cvs subversion git-core libncurses-dev
 
apt-get install mercurial cvs subversion git-core libncurses-dev
apt-get install autoconf libtool automake pkg-config gettext
+
apt-get install autoconf libtool automake pkg-config gettext yasm texi2html
 
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 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 install libfaad-dev libfaac-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev
 +
 
 
apt-get build-dep ffmpeg
 
apt-get build-dep ffmpeg
 
git clone git://git.videolan.org/x264.git
 
git clone git://git.videolan.org/x264.git
Zeile 167: Zeile 180:
 
./configure --prefix=/usr --enable-pic --enable-shared --enable-pthread --enable-asm --extra-cflags="-mtune=native -march=native -mfpmath=sse -O4 -pipe"
 
./configure --prefix=/usr --enable-pic --enable-shared --enable-pthread --enable-asm --extra-cflags="-mtune=native -march=native -mfpmath=sse -O4 -pipe"
 
make
 
make
make install
+
checkinstall --fstrans=no --install=yes --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`+git364d7d-0ubuntu2" --default
 
ldconfig -v
 
ldconfig -v
 +
 
cd /usr/local/src
 
cd /usr/local/src
 
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
 
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
Zeile 174: Zeile 188:
 
./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"
 
./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
 
make
make install
+
checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "4:0.5+svn`date +%Y%m%d`-12ubuntu6" --default
 
ldconfig –v
 
ldconfig –v
 
</pre>
 
</pre>
Zeile 187: Zeile 201:
  
  
=== Xine-VDPAU ===
+
=== Xine ===
 
<pre>
 
<pre>
apt-get remove --purge libxine1 libxine1-bin libxine1-console libxine1-misc-plugins libxine1-x
+
apt-get remove --purge libxine1 libxine1-bin libxine1-console libxine1-misc-plugins libxine1-x libxine1-doc
 
</pre>
 
</pre>
  
Zeile 199: Zeile 213:
 
cd xine-vdpau  
 
cd xine-vdpau  
  
## vi /usr/local/src/xine-vdpau/src/combined/ffmpeg/ff_video_decoder.c
+
## vi ./src/combined/ffmpeg/ff_video_decoder.c
 
## "dort gibt es 2 Einträge mit RGBA32 dies ändern in RGB32"
 
## "dort gibt es 2 Einträge mit RGBA32 dies ändern in RGB32"
  
Zeile 210: Zeile 224:
 
ldconfig -v
 
ldconfig -v
 
</pre>
 
</pre>
 +
 +
Sollte "make install" fehlschlagen, hilft evtl. dieser Patch hier: http://bugs.xine-project.org/attachment.cgi?id=144&action=diff
  
 
=== Xine-UI ===
 
=== Xine-UI ===
 
<pre>
 
<pre>
 
cd /usr/local/src
 
cd /usr/local/src
apt-get install libxt-dev libpostproc-dev
+
apt-get install libxt-dev libpostproc-dev liblircclient-dev
 +
apt-get install libxft2 libxft-dev
 
wget http://home.vrweb.de/~rnissl/xine-ui-cvs-20090617220000.tar.bz2
 
wget http://home.vrweb.de/~rnissl/xine-ui-cvs-20090617220000.tar.bz2
 
tar xivf xine-ui-cvs-20090617220000.tar.bz2
 
tar xivf xine-ui-cvs-20090617220000.tar.bz2
Zeile 221: Zeile 238:
 
make
 
make
 
make install
 
make install
 +
</pre>
 +
 +
=== Xine Installation prüfen ===
 +
 +
Bei "Videoausgabe" muß "vdpau" vorhanden sein!
 +
<pre>
 +
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.
 +
 
</pre>
 
</pre>
  
Zeile 226: Zeile 290:
 
<pre>
 
<pre>
 
cd /usr/local/src
 
cd /usr/local/src
apt-get install libfreetype6-dev libfontconfig1-dev libjpeg62-dev libcap-dev libncurses5-dev libncursesw5-dev
+
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
+
wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.9.tar.bz2
 
tar xivf vdr-1.7.9.tar.bz2
 
tar xivf vdr-1.7.9.tar.bz2
 
cd vdr-1.7.9
 
cd vdr-1.7.9
Zeile 297: Zeile 361:
 
</pre>
 
</pre>
  
 +
==== Troubleshooting ====
 
Wer Probleme hat in der Art:
 
Wer Probleme hat in der Art:
 +
 
  dvbdevice.c: In constructor âcDvbDevice::cDvbDevice(int)â:
 
  dvbdevice.c: In constructor âcDvbDevice::cDvbDevice(int)â:
 
  dvbdevice.c:487: error: âFE_CAN_2G_MODULATIONâ was not declared in this scope
 
  dvbdevice.c:487: error: âFE_CAN_2G_MODULATIONâ was not declared in this scope
Zeile 303: Zeile 369:
 
<pre>
 
<pre>
 
# vi /usr/include/linux/dvb/frontend.h
 
# vi /usr/include/linux/dvb/frontend.h
    FE_HAS_EXTENDED_CAPS       = 0x800000,  // We need more bitspace for newer APIs, indicate this.
+
-    FE_HAS_EXTENDED_CAPS           = 0x800000,  // We need more bitspace for newer APIs, indicate this.
// Einfuegen, anfang
+
-    FE_NEEDS_BENDING                = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
    FE_CAN_2G_MODULATION       = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
+
+    FE_HAS_EXTENDED_CAPS            = 0x800000,  // We need more bitspace for newer APIs, indicate this.
// Einfuegen, ende
+
+    FE_CAN_2G_MODULATION           = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
    FE_NEEDS_BENDING       = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
+
+    FE_NEEDS_BENDING               = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
 
</pre>
 
</pre>
 +
 +
 +
Wer Probleme hat in der Art:
 +
 +
VDR requires Linux DVB driver API version 5.0
 +
 +
Stellt sicher, dass das passende linux-libc-dev Paket zu eurem Kernel installiert ist. Kernel Version >= 2.6.28
  
 
=== Xineliboutput plugin ===
 
=== Xineliboutput plugin ===
Zeile 359: Zeile 432:
 
</pre>
 
</pre>
  
=== Scripts ===
+
=== Skripts ===
 
==== /var/bin/runvdr ====
 
==== /var/bin/runvdr ====
 
<pre>
 
<pre>
Zeile 378: Zeile 451:
 
VDRPRG="/usr/bin/vdr"
 
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 \
 
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.sh \
+
-s /var/bin/vdrpoweroff -P'xineliboutput -l none -r 37890 -p' -P'xine -r' $*"
-P'xineliboutput -l none -r 37890 -p' \
+
-P'xine -r' \
+
$*"
+
  
  
Zeile 423: Zeile 493:
 
       LoadDriver
 
       LoadDriver
 
       echo "`date` restarting VDR"
 
       echo "`date` restarting VDR"
      done
+
done
 
</pre>
 
</pre>
  
==== /var/bin/vdrpoweroff.sh ====
+
==== /var/bin/vdrpoweroff ====
 
<pre>
 
<pre>
 
#!/bin/bash
 
#!/bin/bash
Zeile 453: Zeile 523:
 
     start)
 
     start)
 
         echo -n "Starting VDR "
 
         echo -n "Starting VDR "
 +
                /usr/sbin/ethtool -s eth0 wol g
 
                 /var/bin/runvdr > /var/log/vdr.log &
 
                 /var/bin/runvdr > /var/log/vdr.log &
                 /usr/bin/irexec -d /etc/irexec.conf &
+
                 sleep 5
                 /usr/local/bin/switchtv vdr
+
                 /usr/local/bin/switchtv
                ;;
+
        ;;
 
     stop)
 
     stop)
 
         echo -n "Shutting down VDR "
 
         echo -n "Shutting down VDR "
                /usr/bin/killall irexec
 
 
                 /usr/local/bin/switchtv kill
 
                 /usr/local/bin/switchtv kill
                /usr/bin/killall runvdr
+
        ;;
                /bin/kill `/bin/pidof /usr/bin/vdr` 2>/dev/null
+
                ;;
+
 
     restart)
 
     restart)
 
         echo -n "Restart VDR "
 
         echo -n "Restart VDR "
                $0 stop
+
        $0 stop
                sleep 5
+
        sleep 5
                $0 start
+
        $0 start
                ;;
+
        ;;
 
     *)
 
     *)
 
         echo "Usage: $0 {start|stop|restart}"
 
         echo "Usage: $0 {start|stop|restart}"
                exit 1
+
        exit 1
                ;;
+
        ;;
 
esac
 
esac
 
# rc_exit
 
# rc_exit
Zeile 482: Zeile 550:
 
<pre>
 
<pre>
 
update-rc.d vdr defaults
 
update-rc.d vdr defaults
 +
</pre>
 +
 +
==== /var/bin/vdrwakealarm ====
 +
 +
<pre>
 +
#!/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
 
</pre>
 
</pre>
  
Zeile 490: Zeile 598:
 
#!/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 496: Zeile 609:
  
 
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 517: Zeile 626:
  
 
kill_apps() {
 
kill_apps() {
     killall -9 vdr-sxfe 2>/dev/null
+
     killall -w -9 vdr-sxfe 2>/dev/null
     killall -9 xine    2>/dev/null
+
     killall -w -9 xterm    2>/dev/null
     killall -9 xbmc    2>/dev/null
+
    killall -w -9 runvdr  2>/dev/null
     killall -9 xbmc.bin 2>/dev/null
+
    killall -w -9 vdr      2>/dev/null
     /usr/bin/killall xinit
+
    killall -w -9 xine    2>/dev/null
     while [ true ]
+
     killall -w -9 xbmc    2>/dev/null
     do
+
     killall -w -9 xbmc.bin 2>/dev/null
        [[ "`ps -ef | grep -v grep | grep xinit`" = "" ]] && break
+
     killall -w -9 scanvdr  2>/dev/null
    done
+
     killall -w -9 irexec  2>/dev/null
 +
     killall -w -9 xinit   2>/dev/null
 
}
 
}
  
 
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
  
Zeile 558: Zeile 657:
  
 
</pre>
 
</pre>
 +
 +
=== Script permissions anpassen ===
 +
<pre>
 +
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/vdrwakealarm
 +
</pre>
 +
 +
=== Wakeup ===
 +
 +
Wenn das Wakeup nicht funktioniert, dann bitte http://www.mythtv.org/wiki/ACPI_Wakeup#Disable_hwclock_updates lesen
  
 
=== X ===
 
=== X ===
Zeile 694: Zeile 806:
 
=== Lirc ===
 
=== Lirc ===
  
  apt-get install lirc lirc-modules-source
+
  apt-get install lirc lirc-modules-source setserial
 +
 
 +
==== /etc/serial.conf ====
 +
<pre>
 +
/dev/ttyS0 uart none
 +
</pre>
 +
 
 +
==== /var/lib/setserial/autoserial.conf ====
 +
 
 +
Achtung! hier sollte nichts drinstehen außer es ist ein "#" vornedran
 +
 
 +
<pre>
 +
###PORT STATE GENERATED USING AUTOSAVE-ONCE###
 +
###AUTOSAVE-ONCE###
 +
###AUTOSAVE-ONCE###
 +
###AUTOSAVE###
 +
#
 +
# If you want to configure this file by hand, use
 +
# dpkg-reconfigure setserial
 +
# and change the configuration mode of the file to MANUAL. If you do not do this, this file may be overwritten automatically the next time you upgrade the
 +
# package.
 +
#
 +
</pre>
 +
 
 +
==== /etc/modprobe.d/lirc-serial.conf ====
 +
 
 +
<pre>
 +
### COM1 equivalent, /dev/ttyS0
 +
options lirc_serial irq=4 io=0x3f8
 +
### only for Attric
 +
options lirc_it87 irq=11 io=0x0310
 +
</pre>
  
 
==== /etc/lirc/hardware.conf ====
 
==== /etc/lirc/hardware.conf ====
(nur für Nova-HD-S2 IR Empfänger!)
+
===== für Nova-HD-S2 IR Empfänger =====
 
<pre>
 
<pre>
 
# /etc/lirc/hardware.conf
 
# /etc/lirc/hardware.conf
Zeile 705: Zeile 848:
 
REMOTE_MODULES=""
 
REMOTE_MODULES=""
 
REMOTE_DRIVER="devinput"
 
REMOTE_DRIVER="devinput"
TEMPIREVENT=`ls /dev/input/by-path/ |grep event-ir`
+
#TEMPIREVENT=`ls /dev/input/by-path/ |grep event-ir` # funktioniert nicht ab Ubuntu 9.10
REMOTE_DEVICE="/dev/input/by-path/$TEMPIREVENT"
+
#REMOTE_DEVICE="/dev/input/by-path/$TEMPIREVENT"
 +
REMOTE_DEVICE=`grep <hier einen String für den Empfänger eintragen> /sys/class/input/input*/name | tail -n 1 | sed -e s'|/name.*||' | sed -e s'|/sys/class/input/input|/dev/input/event|'`
 
REMOTE_LIRCD_CONF="/etc/lircd.conf"
 
REMOTE_LIRCD_CONF="/etc/lircd.conf"
 
REMOTE_LIRCD_ARGS=""
 
REMOTE_LIRCD_ARGS=""
 +
# REMOTE_SOCKET: vdr --lirc erwartet /dev/lircd, oder vdr --lirc=/wasanderes verwenden.
 +
REMOTE_SOCKET="/dev/lircd"
  
 
#Chosen IR Transmitter
 
#Chosen IR Transmitter
Zeile 741: Zeile 887:
 
</pre>
 
</pre>
  
 +
===== für Attric IR Empfänger =====
 +
<pre>
 +
# /etc/lirc/hardware.conf
 +
#
 +
#Chosen Remote Control
 +
REMOTE="ITE IT8712/IT8705/IT8720 CIR port"
 +
REMOTE_MODULES="lirc_dev lirc_it87"
 +
REMOTE_DRIVER=""
 +
REMOTE_DEVICE="/dev/lirc0"
 +
REMOTE_LIRCD_CONF="/etc/lirc/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="true"
 +
 +
# 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=""
 +
REMOTE_SOCKET=""
 +
TRANSMITTER_SOCKET=""
 +
</pre>
 
==== /etc/lircd.conf  ====
 
==== /etc/lircd.conf  ====
 
(nur für Nova-HD-S2 IR Empfänger!)
 
(nur für Nova-HD-S2 IR Empfänger!)
 
<pre>
 
<pre>
#This configuration has been automatically generated via
+
# Please make this file available to others
#the Ubuntu LIRC package maintainer scripts.
+
# by sending it to <lirc@bartelmus.de>
 
#
 
#
#It includes the default configuration for the remote and/or
+
# this config file was automatically generated
#transmitter that you have selected during package installation.
+
# using lirc-0.8.4a(default) on Sun Aug 30 19:33:29 2009
 
#
 
#
#Feel free to add any custom remotes to the configuration
+
# contributed by
#via additional include directives or below the existing
+
#
#Ubuntu include directives from your selected remote and/or
+
# brand:                      ./test
#transmitter.
+
# model no. of remote control:
 
+
# devices being controlled by this remote:
#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
 
begin remote
  
name  NOVA-HD-S2
+
  name  Nova-HD-S2
bits          16
+
  bits          13
eps            30
+
  flags RC5|CONST_LENGTH
aeps          100
+
  eps            30
 +
  aeps          100
  
one             0    0
+
  one           915  854
zero           0    0
+
  zero         915  854
pre_data_bits   16
+
   plead        951
pre_data      0x1
+
  gap          112860
gap          199999
+
  toggle_bit_mask 0x800
min_repeat 1
+
toggle_bit      0
+
  
 +
      begin codes
 +
          OK                      0x17A5
 +
          Left                    0x1796
 +
          Right                    0x1797
 +
          Up                      0x1794
 +
          Down                    0x1795
 +
          Power                    0x17BD
 +
          Go                      0x17BB
 +
          TV                      0x179C
 +
          Videos                  0x1798
 +
          Music                    0x1799
 +
          Pictures                0x179A
 +
          Guide                    0x179B
 +
          Radio                    0x178C
 +
          Back                    0x179F
 +
          Menu                    0x178D
 +
          Volume+                  0x1790
 +
          Volume-                  0x1791
 +
          Ch+                      0x17A0
 +
          Ch-                      0x17A1
 +
          Mute                    0x178F
 +
          PrevCh                  0x1792
 +
          Pause                    0x17B0
 +
          Play                    0x17B5
 +
          Stop                    0x17B6
 +
          Next                    0x179E
 +
          Prev                    0x17A4
 +
          Forward                  0x17B4
 +
          Rewind                  0x17B2
 +
          0                        0x1780
 +
          1                        0x1781
 +
          2                        0x1782
 +
          3                        0x1783
 +
          4                        0x1784
 +
          5                        0x1785
 +
          6                        0x1786
 +
          7                        0x1787
 +
          8                        0x1788
 +
          9                        0x1789
 +
          Red                      0x178B
 +
          Green                    0x17AE
 +
          Yellow                  0x17B8
 +
          Blue                    0x17A9
 +
          *                        0x178A
 +
          #                        0x178E
 +
      end codes
  
    begin codes
+
end remote
        test1                    0x0174
+
</pre>
        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
+
Die Bezeichnung der Fernbedienung (Beispiel"Hauppauge Nova-HD-S2") sollte in '''hardware.conf''' und '''lircd.conf''' übereinstimmen.
  
end remote
+
==== Testen von hardware.conf und lircd.conf ====
  
</pre>
+
Zum Testen der hardware.conf: ''vdr'' und ''lirc'' stoppen, ''lircd'' manuell starten:
 +
 
 +
sudo -i
 +
/etc/init.d/vdr stop
 +
/etc/init.d/lirc stop
 +
. /etc/lirc/hardware.conf
 +
lircd --nodaemon --driver=$REMOTE_DRIVER --device=$REMOTE_DEVICE --output=$REMOTE_SOCKET $REMOTE_LIRCD_CONF
 +
In einem weiteren Terminal:
 +
. /etc/lirc/hardware.conf
 +
irw $REMOTE_SOCKET
 +
Durch Drücken der Fernbedienung sollte ''irw'' die entsprechenden Kommandos ausgeben.
 +
000000008001001c 00 OK Hauppauge-Nova-SE2
 +
000000008001006c 00 Down Hauppauge-Nova-SE2
 +
000000008001006c 01 Down Hauppauge-Nova-SE2
  
 
==== /etc/irexec.conf ====
 
==== /etc/irexec.conf ====
Zeile 853: Zeile 1.035:
 
   prog  = irexec
 
   prog  = irexec
 
   remote = NOVA-HD-S2
 
   remote = NOVA-HD-S2
   button = Guide
+
   button = Go
   config = /usr/local/bin/switchtv & \n
+
   config = /usr/local/bin/switchtv xbmc & \n
 +
end
 +
begin
 +
  prog  = irexec
 +
  remote = NOVA-HD-S2
 +
  button = TV
 +
  config = /usr/local/bin/switchtv vdr & \n
 
end
 
end
 
</pre>
 
</pre>
Zeile 860: Zeile 1.048:
 
==== /etc/vdr/remote.conf ====
 
==== /etc/vdr/remote.conf ====
 
<pre>
 
<pre>
 +
LIRC.Info      Guide
 +
LIRC.Audio    Music
 +
LIRC.Pause    Pause
 +
LIRC.Play      Play
 +
LIRC.Stop      Stop
 +
LIRC.Next      Next
 +
LIRC.Prev      Prev
 +
LIRC.FastFwd  Forward
 +
LIRC.FastRew  Rewind
 +
LIRC.Schedule  Pictures
 +
LIRC.Recordings Videos
 +
LIRC.0        PrevCh
 
LIRC.Up        Up
 
LIRC.Up        Up
 
LIRC.Down      Down
 
LIRC.Down      Down
Zeile 887: Zeile 1.087:
 
LIRC.Channel+  Ch+
 
LIRC.Channel+  Ch+
 
LIRC.Channel-  Ch-
 
LIRC.Channel-  Ch-
XKeySym.Up        Up
+
</pre>
XKeySym.Down      Down
+
 
XKeySym.Menu       Menu
+
=== $HOME/.lircrc ===
XKeySym.Ok        OK
+
 
XKeySym.Back      Back
+
Wer Xine direkt per Lirc steuern will braucht noch eine .lircrc im Homeverzeichnis
XKeySym.Left      Left
+
 
XKeySym.Right      Right
+
<pre>
XKeySym.Red        Red
+
##
XKeySym.Green      Green
+
# xine key bindings.
XKeySym.Yellow    Yellow
+
# Automatically generated by xine-ui version 0.99.6cvs.
XKeySym.Blue      Blue
+
##
XKeySym.0         0
+
 
XKeySym.1         1
+
# jump to media Menu
XKeySym.2         2
+
begin
XKeySym.3         3
+
remote = Nova-HD-S2
XKeySym.4         4
+
button = Menu
XKeySym.5         5
+
prog  = xine
XKeySym.6         6
+
repeat = 0
XKeySym.7         7
+
config = Menu
XKeySym.8         8
+
end
XKeySym.9         9
+
 
XKeySym.Power      Power
+
# menu navigate up
XKeySym.Volume+   Volume+
+
begin
XKeySym.Volume-   Volume-
+
remote = Nova-HD-S2
XKeySym.Mute       Mute
+
button = Up
XKeySym.Channel+   Ch+
+
prog  = xine
XKeySym.ChannelCh-
+
repeat = 0
 +
config = EventUp
 +
end
 +
 
 +
# menu navigate down
 +
begin
 +
remote = Nova-HD-S2
 +
button = Down
 +
prog  = xine
 +
repeat = 0
 +
config = EventDown
 +
end
 +
 
 +
# menu navigate left
 +
begin
 +
remote = Nova-HD-S2
 +
button = Left
 +
prog  = xine
 +
repeat = 0
 +
config = EventLeft
 +
end
 +
 
 +
# menu navigate right
 +
begin
 +
remote = Nova-HD-S2
 +
button = Right
 +
prog  = xine
 +
repeat = 0
 +
config = EventRight
 +
end
 +
 
 +
# menu select
 +
begin
 +
remote = Nova-HD-S2
 +
button = OK
 +
prog  = xine
 +
repeat = 0
 +
config = EventSelect
 +
end
 +
 
 +
# enter the number 0
 +
begin
 +
remote = Nova-HD-S2
 +
button = 0
 +
prog  = xine
 +
repeat = 0
 +
config = Number0
 +
end
 +
 
 +
# enter the number 1
 +
begin
 +
remote = Nova-HD-S2
 +
button = 1
 +
prog  = xine
 +
repeat = 0
 +
config = Number1
 +
end
 +
 
 +
# enter the number 2
 +
begin
 +
remote = Nova-HD-S2
 +
button = 2
 +
prog  = xine
 +
repeat = 0
 +
config = Number2
 +
end
 +
 
 +
# enter the number 3
 +
begin
 +
remote = Nova-HD-S2
 +
button = 3
 +
prog  = xine
 +
repeat = 0
 +
config = Number3
 +
end
 +
 
 +
# enter the number 4
 +
begin
 +
remote = Nova-HD-S2
 +
button = 4
 +
prog  = xine
 +
repeat = 0
 +
config = Number4
 +
end
 +
 
 +
# enter the number 5
 +
begin
 +
remote = Nova-HD-S2
 +
button = 5
 +
prog  = xine
 +
repeat = 0
 +
config = Number5
 +
end
 +
 
 +
# enter the number 6
 +
begin
 +
remote = Nova-HD-S2
 +
button = 6
 +
prog  = xine
 +
repeat = 0
 +
config = Number6
 +
end
 +
 
 +
# enter the number 7
 +
begin
 +
remote = Nova-HD-S2
 +
button = 7
 +
prog  = xine
 +
repeat = 0
 +
config = Number7
 +
end
 +
 
 +
# enter the number 8
 +
begin
 +
remote = Nova-HD-S2
 +
button = 8
 +
prog  = xine
 +
repeat = 0
 +
config = Number8
 +
end
 +
 
 +
# enter the number 9
 +
begin
 +
remote = Nova-HD-S2
 +
button = 9
 +
prog  = xine
 +
repeat = 0
 +
config = Number9
 +
end
 +
 
 +
# VDR Red button
 +
begin
 +
remote = Nova-HD-S2
 +
button = Red
 +
prog  = xine
 +
repeat = 0
 +
config = VDRButtonRed
 +
end
 +
 
 +
# VDR Green button
 +
begin
 +
remote = Nova-HD-S2
 +
button = Green
 +
prog  = xine
 +
repeat = 0
 +
config = VDRButtonGreen
 +
end
 +
 
 +
# VDR Yellow button
 +
begin
 +
remote = Nova-HD-S2
 +
button = Yellow
 +
prog  = xine
 +
repeat = 0
 +
config = VDRButtonYellow
 +
end
 +
 
 +
# VDR Blue button
 +
begin
 +
remote = Nova-HD-S2
 +
button = Blue
 +
prog  = xine
 +
repeat = 0
 +
config = VDRButtonBlue
 +
end
 +
 
 +
# VDR Play
 +
begin
 +
remote = Nova-HD-S2
 +
button = Play
 +
prog  = xine
 +
repeat = 0
 +
config = VDRPlay
 +
end
 +
 
 +
# VDR Pause
 +
begin
 +
remote = Nova-HD-S2
 +
button = Pause
 +
prog  = xine
 +
repeat = 0
 +
config = VDRPause
 +
end
 +
 
 +
# VDR Stop
 +
begin
 +
remote = Nova-HD-S2
 +
button = Stop
 +
prog  = xine
 +
repeat = 0
 +
config = VDRStop
 +
end
 +
 
 +
# VDR Fast forward
 +
begin
 +
remote = Nova-HD-S2
 +
button = Forward
 +
prog  = xine
 +
repeat = 0
 +
config = VDRFastFwd
 +
end
 +
 
 +
# VDR Fast rewind
 +
begin
 +
remote = Nova-HD-S2
 +
button = Rewind
 +
prog  = xine
 +
repeat = 0
 +
config = VDRFastRew
 +
end
 +
 
 +
# VDR Power
 +
begin
 +
remote = Nova-HD-S2
 +
button = Go
 +
prog  = xine
 +
repeat = 0
 +
config = VDRPower
 +
end
 +
 
 +
# VDR Channel +
 +
begin
 +
remote = Nova-HD-S2
 +
button = Ch+
 +
prog  = xine
 +
repeat = 0
 +
config = VDRChannelPlus
 +
end
 +
 
 +
# VDR Channel -
 +
begin
 +
remote = Nova-HD-S2
 +
button = Ch-
 +
prog  = xine
 +
repeat = 0
 +
config = VDRChannelMinus
 +
end
 +
 
 +
# VDR Schedule menu
 +
begin
 +
remote = Nova-HD-S2
 +
button = Pictures
 +
prog  = xine
 +
repeat = 0
 +
config = VDRSchedule
 +
end
 +
 
 +
# VDR Recordings menu
 +
begin
 +
remote = Nova-HD-S2
 +
button = Videos
 +
prog  = xine
 +
repeat = 0
 +
config = VDRRecordings
 +
end
 +
 
 +
# VDR Command back
 +
begin
 +
remote = Nova-HD-S2
 +
button = Back
 +
prog  = xine
 +
repeat = 0
 +
config = VDRBack
 +
end
 +
 
 +
# VDR Volume +
 +
begin
 +
remote = Nova-HD-S2
 +
button = Volume+
 +
prog  = xine
 +
repeat = 0
 +
config = VDRVolumePlus
 +
end
 +
 
 +
# VDR Volume -
 +
begin
 +
remote = Nova-HD-S2
 +
button = Volume-
 +
prog  = xine
 +
repeat = 0
 +
config = VDRVolumeMinus
 +
end
 +
 
 +
# VDR Mute audio
 +
begin
 +
remote = Nova-HD-S2
 +
button = Mute
 +
prog   = xine
 +
repeat = 0
 +
config = VDRMute
 +
end
 +
 
 +
# VDR Audio menu
 +
begin
 +
remote = Nova-HD-S2
 +
button = Music
 +
prog   = xine
 +
repeat = 0
 +
config = VDRAudio
 +
end
 +
 
 +
# VDR Command info
 +
begin
 +
remote = Nova-HD-S2
 +
button = Guide
 +
prog  = xine
 +
repeat = 0
 +
config = VDRInfo
 +
end
 +
 
 +
##
 +
# End of xine key bindings.
 +
##
 +
 
 
</pre>
 
</pre>
  
 
=== Audio ===
 
=== Audio ===
  
Vorsichthalber auf die neueste Alsa Version mit dem Script "AlsaUpgrade-1.0.x-rev-1.17.sh" [http://ubuntuforums.org/showthread.php?p=6589810 von hier] upgraden und anschließend neu booten
+
Vorsichthalber auf die neueste Alsa Version mit dem Script [http://ubuntuforums.org/showthread.php?p=6589810 AlsaUpgrade-1.0.x-rev-1.17.sh] upgraden und anschließend neu booten
  
 
'''Der User der vdr-sxfe startet muß(!) in der group "audio" sein'''
 
'''Der User der vdr-sxfe startet muß(!) in der group "audio" sein'''
  
==== HDMI ====
+
mit '''aplay''' sieht man wo das Device (hier am Beispiel HDMI) konfiguriert ist (Card "'''0'''" Device "'''3'''")
mit '''aplay''' sieht man wo das HDMI Device konfiguriert ist (Card "'''0'''" Device "'''3'''")
+
 
<pre>
 
<pre>
 
aplay -l  
 
aplay -l  
Zeile 961: Zeile 1.473:
 
</pre>
 
</pre>
  
 +
=== Feintuning ===
 
'''~/.xine/config'''
 
'''~/.xine/config'''
 
<pre>
 
<pre>
# Anzahl der Audiopuffer
+
audio.device.alsa_front_device:default
# numeric, default: 230
+
audio.device.alsa_mixer_name:Master
engine.buffers.audio_num_buffers:250
+
engine.buffers.audio_num_buffers:300
 
+
# Anzahl der Videopuffer
+
# numeric, default: 500
+
 
engine.buffers.video_num_buffers:2000
 
engine.buffers.video_num_buffers:2000
 +
engine.buffers.video_num_frames:22
 +
engine.performance.memcpy_method:mmx
 
</pre>
 
</pre>
  
Zeile 984: Zeile 1.496:
 
apt-get update
 
apt-get update
 
apt-get install xbmc
 
apt-get install xbmc
 +
</pre>
 +
 +
==== advancedsettings.xml (~/.xbmc/userdata) ====
 +
<pre>
 +
<advancedsettings>
 +
        <moviestacking action="prepend">
 +
                <regexp>custom[0-9]*</regexp>
 +
        </moviestacking>
 +
</advancedsettings>
 
</pre>
 
</pre>
  
Zeile 989: Zeile 1.510:
 
<pre>
 
<pre>
 
<lircmap>
 
<lircmap>
   <remote device="NOVA-HD-S2">
+
   <remote device="Nova-HD-S2">
 
         <power>Power</power>
 
         <power>Power</power>
 
         <info>Red</info>
 
         <info>Red</info>
Zeile 999: Zeile 1.520:
 
         <channelplus>Ch+</channelplus>
 
         <channelplus>Ch+</channelplus>
 
         <channelminus>Ch-</channelminus>
 
         <channelminus>Ch-</channelminus>
         <skipplus>NextSong</skipplus>
+
         <skipplus>Next</skipplus>
         <skipminus>PrevSong</skipminus>
+
         <skipminus>Prev</skipminus>
 
         <mymusic>Music</mymusic>
 
         <mymusic>Music</mymusic>
 
         <mypictures>Pictures</mypictures>
 
         <mypictures>Pictures</mypictures>
Zeile 1.034: Zeile 1.555:
 
==== /usr/local/bin/scanvdr ====
 
==== /usr/local/bin/scanvdr ====
 
<pre>
 
<pre>
VDRREC="/var/lib/video.00"
+
#!/bin/bash
 +
 
 +
VDR2JPEG="/usr/local/bin/vdr2jpeg"
 +
FFMPEG="/usr/bin/ffmpeg"
 +
IMGUSE="VDR2JPEG"
 +
 
 +
VDRREC="/nas01/videos/vdr" # you may need to adjust this
 
TVFILE="../tvshow.nfo"
 
TVFILE="../tvshow.nfo"
VDRINFO="info.vdr"
 
 
NFOFILE="001.nfo"
 
NFOFILE="001.nfo"
  
 
DVDTHUMB="../folder.jpg"
 
DVDTHUMB="../folder.jpg"
DVDOFFSET="18000"
+
DVDOFFSETVDR="18000"
DVD_XRES="1280"
+
DVDOFFSETSEC="5000"
DVD_YRES="720"
+
DVD_XRES="144"
 +
DVD_YRES="176"
  
 
FANTHUMB="../fanart.jpg"
 
FANTHUMB="../fanart.jpg"
FANOFFSET="20000"
+
FANOFFSETVDR="20000"
 +
FANOFFSETSEC="6000"
 
FAN_XRES="1280"
 
FAN_XRES="1280"
 
FAN_YRES="720"
 
FAN_YRES="720"
 +
 +
CHECKRUNNING=$(/bin/pidof -x $0|wc -w)
 +
 +
if [ $CHECKRUNNING -gt 2 ];then
 +
  echo "$CHECKRUNNING"
 +
  echo "scanvdr already running ..."
 +
  exit 0
 +
fi
  
 
if [ "$1" = "-new" ];then
 
if [ "$1" = "-new" ];then
Zeile 1.053: Zeile 1.589:
 
   find $VDRREC -name "*.jpg" -exec rm {} \;
 
   find $VDRREC -name "*.jpg" -exec rm {} \;
 
   find $VDRREC -name "*.nfo" -exec rm {} \;
 
   find $VDRREC -name "*.nfo" -exec rm {} \;
 +
elif [ -n "$1" ];then
 +
  echo "  Usage:"
 +
  echo "  $0"
 +
  echo "      - or -"
 +
  echo "  $0 -new"
 +
  exit 0
 
fi
 
fi
  
VDR2JPEG="/usr/local/bin/vdr2jpeg"
 
  
for i in $(find $VDRREC -name info.vdr)
+
for i in $(find $VDRREC -name "info*" -type f)
 
do
 
do
 
   VDRDIR=$(dirname $i)
 
   VDRDIR=$(dirname $i)
   VDRFILE=$(basename $i)
+
   VDRINFO=$(basename $i)
 
   cd $VDRDIR
 
   cd $VDRDIR
  
Zeile 1.079: Zeile 1.620:
  
 
   COUNTREC=$(find .. -name "*.rec" | wc -l)
 
   COUNTREC=$(find .. -name "*.rec" | wc -l)
   HTEXT=$(find .. -name $VDRINFO | sort -n | xargs cat | grep "^S " | sed "s/^S //")
+
   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
 
   if [ -z "$HTEXT" ];then
Zeile 1.088: Zeile 1.631:
 
$DAUER min: $INHALT"
 
$DAUER min: $INHALT"
 
   fi
 
   fi
 
  
 
   echo "<tvshow>"                  > $TVFILE
 
   echo "<tvshow>"                  > $TVFILE
Zeile 1.094: Zeile 1.636:
 
   echo "<plot>$HTEXT</plot>"      >> $TVFILE
 
   echo "<plot>$HTEXT</plot>"      >> $TVFILE
 
   echo "</tvshow>"                >> $TVFILE
 
   echo "</tvshow>"                >> $TVFILE
 +
  
 
   if [ ! -f $NFOFILE ];then
 
   if [ ! -f $NFOFILE ];then
Zeile 1.109: Zeile 1.652:
 
     echo "<actor></actor>"                    >> $NFOFILE
 
     echo "<actor></actor>"                    >> $NFOFILE
 
     echo "</episodedetails>"                  >> $NFOFILE
 
     echo "</episodedetails>"                  >> $NFOFILE
 +
 
   fi
 
   fi
  
   if [ -f $VDR2JPEG ];then
+
  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
 
     if [ ! -f $DVDTHUMB ];then
 
       echo "creating DVD thumbnails ..."
 
       echo "creating DVD thumbnails ..."
       $VDR2JPEG -x $DVD_XRES= -y $DVD_YRES -f $DVDOFFSET -r .
+
       $VDR2JPEG -x $DVD_XRES= -y $DVD_YRES -f $DVDOFFSETVDR -r .
       mv 000${DVDOFFSET}.jpg $DVDTHUMB
+
       mv 000${DVDOFFSETVDR}.jpg $DVDTHUMB
 
     fi
 
     fi
  
 
     if [ ! -f $FANTHUMB ];then
 
     if [ ! -f $FANTHUMB ];then
 
       echo "creating FANART thumbnails ..."
 
       echo "creating FANART thumbnails ..."
       $VDR2JPEG -x $FAN_XRES= -y $FAN_YRES -f $FANOFFSET -r .
+
       $VDR2JPEG -x $FAN_XRES= -y $FAN_YRES -f $FANOFFSETVDR -r .
       mv 000${FANOFFSET}.jpg $FANTHUMB
+
       mv 000${FANOFFSETVDR}.jpg $FANTHUMB
 
     fi
 
     fi
   else
+
 
     echo "cannot create Fanart - $VDR2JPEG not found!"
+
   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
 
   fi
  
Zeile 1.130: Zeile 1.694:
  
 
done
 
done
 
 
</pre>
 
</pre>
  
 
[[Kategorie:Ubuntu]][[Kategorie:Installationsanleitungen]][[Kategorie:HDTV]]
 
[[Kategorie:Ubuntu]][[Kategorie:Installationsanleitungen]][[Kategorie:HDTV]]

Aktuelle Version vom 2. Januar 2011, 09:20 Uhr

Inhaltsverzeichnis

[Bearbeiten] Installationsanleitung Ubuntu 9.04

[Bearbeiten] Nvidia Installation

Als ersten Schritt den VDPAU-fähigen Grafikkartentreiber von NVidia installieren.

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

[Bearbeiten] /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 neu starten und anschließend im /var/log/Xorg.0.log prüfen ob der Treiber wirklich geladen wurde

/etc/init.d/gdm restart

[Bearbeiten] vdpinfo

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

cd /usr/local/src
apt-get install automake git-core libvdpau-dev libvdpau1 libx11-dev
git clone http://cgit.freedesktop.org/~aplattner/vdpauinfo
cd vdpauinfo
./autogen.sh
make
cp vdpauinfo /usr/local/bin

Falls die Fehlermeldung "/usr/bin/ld: cannot find -lvdpau" auftritt, stimmt der symbolische Link "/usr/lib/libvdpau.so -> libvdpau.so.1" evtl. nicht.

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] Firmware Installation (unterschiedlich je nach Karte)

[Bearbeiten] TT-S2-1600

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

[Bearbeiten] 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/

# bei meiner Tivii S470 musste die Firmware umbenannt werden:
cp /lib/firmware/dvb-fe-cx24116.fw /lib/firmware/dvb-fe-ds3000.fw

[Bearbeiten] 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

[Bearbeiten] x264 / ffmpeg

apt-get --purge remove libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-49 
apt-get --purge remove libpostproc-unstripped-51 libswscale-unstripped-0 ffmpeg x264 libx264-dev

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 yasm texi2html 
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 libfaad-dev libfaac-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev

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 --fstrans=no --install=yes --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`+git364d7d-0ubuntu2" --default
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 --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "4:0.5+svn`date +%Y%m%d`-12ubuntu6" --default
ldconfig –v

[Bearbeiten] 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 


[Bearbeiten] Xine

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

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 ./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
make install
ldconfig -v

Sollte "make install" fehlschlagen, hilft evtl. dieser Patch hier: http://bugs.xine-project.org/attachment.cgi?id=144&action=diff

[Bearbeiten] Xine-UI

cd /usr/local/src
apt-get install libxt-dev libpostproc-dev liblircclient-dev
apt-get install libxft2 libxft-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
make install

[Bearbeiten] 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.

[Bearbeiten] 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.tvdr.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

[Bearbeiten] 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/

[Bearbeiten] Troubleshooting

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.
-    FE_NEEDS_BENDING                = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
+    FE_HAS_EXTENDED_CAPS            = 0x800000,   // We need more bitspace for newer APIs, indicate this.
+    FE_CAN_2G_MODULATION            = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
+    FE_NEEDS_BENDING                = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)


Wer Probleme hat in der Art:

VDR requires Linux DVB driver API version 5.0

Stellt sicher, dass das passende linux-libc-dev Paket zu eurem Kernel installiert ist. Kernel Version >= 2.6.28

[Bearbeiten] Xineliboutput plugin

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] Skripts

[Bearbeiten] /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

[Bearbeiten] /var/bin/vdrpoweroff

#!/bin/bash
/sbin/poweroff

[Bearbeiten] /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 &
                sleep 5
                /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

[Bearbeiten] /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

[Bearbeiten] /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 -w -9 vdr-sxfe 2>/dev/null
     killall -w -9 xterm    2>/dev/null
     killall -w -9 runvdr   2>/dev/null
     killall -w -9 vdr      2>/dev/null
     killall -w -9 xine     2>/dev/null
     killall -w -9 xbmc     2>/dev/null
     killall -w -9 xbmc.bin 2>/dev/null
     killall -w -9 scanvdr  2>/dev/null
     killall -w -9 irexec   2>/dev/null
     killall -w -9 xinit    2>/dev/null
}

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

[Bearbeiten] 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/vdrwakealarm

[Bearbeiten] Wakeup

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

[Bearbeiten] 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

[Bearbeiten] Lirc

apt-get install lirc lirc-modules-source setserial

[Bearbeiten] /etc/serial.conf

/dev/ttyS0 uart none

[Bearbeiten] /var/lib/setserial/autoserial.conf

Achtung! hier sollte nichts drinstehen außer es ist ein "#" vornedran

###PORT STATE GENERATED USING AUTOSAVE-ONCE###
###AUTOSAVE-ONCE###
###AUTOSAVE-ONCE###
###AUTOSAVE###
#
# If you want to configure this file by hand, use
# dpkg-reconfigure setserial
# and change the configuration mode of the file to MANUAL. If you do not do this, this file may be overwritten automatically the next time you upgrade the
# package.
#

[Bearbeiten] /etc/modprobe.d/lirc-serial.conf

### COM1 equivalent, /dev/ttyS0
options lirc_serial irq=4 io=0x3f8
### only for Attric
options lirc_it87 irq=11 io=0x0310

[Bearbeiten] /etc/lirc/hardware.conf

[Bearbeiten] 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` # funktioniert nicht ab Ubuntu 9.10
#REMOTE_DEVICE="/dev/input/by-path/$TEMPIREVENT"
REMOTE_DEVICE=`grep <hier einen String für den Empfänger eintragen> /sys/class/input/input*/name | tail -n 1 | sed -e s'|/name.*||' | sed -e s'|/sys/class/input/input|/dev/input/event|'`
REMOTE_LIRCD_CONF="/etc/lircd.conf"
REMOTE_LIRCD_ARGS=""
# REMOTE_SOCKET: vdr --lirc erwartet /dev/lircd, oder vdr --lirc=/wasanderes verwenden.
REMOTE_SOCKET="/dev/lircd"

#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=""
[Bearbeiten] für Attric IR Empfänger
# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="ITE IT8712/IT8705/IT8720 CIR port"
REMOTE_MODULES="lirc_dev lirc_it87"
REMOTE_DRIVER=""
REMOTE_DEVICE="/dev/lirc0"
REMOTE_LIRCD_CONF="/etc/lirc/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="true"

# 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=""
REMOTE_SOCKET=""
TRANSMITTER_SOCKET=""

[Bearbeiten] /etc/lircd.conf

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

# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.4a(default) on Sun Aug 30 19:33:29 2009
#
# contributed by
#
# brand:                       ./test
# model no. of remote control:
# devices being controlled by this remote:
#

begin remote

  name  Nova-HD-S2
  bits           13
  flags RC5|CONST_LENGTH
  eps            30
  aeps          100

  one           915   854
  zero          915   854
  plead         951
  gap          112860
  toggle_bit_mask 0x800

      begin codes
          OK                       0x17A5
          Left                     0x1796
          Right                    0x1797
          Up                       0x1794
          Down                     0x1795
          Power                    0x17BD
          Go                       0x17BB
          TV                       0x179C
          Videos                   0x1798
          Music                    0x1799
          Pictures                 0x179A
          Guide                    0x179B
          Radio                    0x178C
          Back                     0x179F
          Menu                     0x178D
          Volume+                  0x1790
          Volume-                  0x1791
          Ch+                      0x17A0
          Ch-                      0x17A1
          Mute                     0x178F
          PrevCh                   0x1792
          Pause                    0x17B0
          Play                     0x17B5
          Stop                     0x17B6
          Next                     0x179E
          Prev                     0x17A4
          Forward                  0x17B4
          Rewind                   0x17B2
          0                        0x1780
          1                        0x1781
          2                        0x1782
          3                        0x1783
          4                        0x1784
          5                        0x1785
          6                        0x1786
          7                        0x1787
          8                        0x1788
          9                        0x1789
          Red                      0x178B
          Green                    0x17AE
          Yellow                   0x17B8
          Blue                     0x17A9
          *                        0x178A
          #                        0x178E
      end codes

end remote

Die Bezeichnung der Fernbedienung (Beispiel"Hauppauge Nova-HD-S2") sollte in hardware.conf und lircd.conf übereinstimmen.

[Bearbeiten] Testen von hardware.conf und lircd.conf

Zum Testen der hardware.conf: vdr und lirc stoppen, lircd manuell starten:

sudo -i
/etc/init.d/vdr stop
/etc/init.d/lirc stop
. /etc/lirc/hardware.conf
lircd --nodaemon --driver=$REMOTE_DRIVER --device=$REMOTE_DEVICE --output=$REMOTE_SOCKET $REMOTE_LIRCD_CONF

In einem weiteren Terminal:

. /etc/lirc/hardware.conf
irw $REMOTE_SOCKET

Durch Drücken der Fernbedienung sollte irw die entsprechenden Kommandos ausgeben.

000000008001001c 00 OK Hauppauge-Nova-SE2
000000008001006c 00 Down Hauppauge-Nova-SE2
000000008001006c 01 Down Hauppauge-Nova-SE2

[Bearbeiten] /etc/irexec.conf

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

[Bearbeiten] /etc/vdr/remote.conf

LIRC.Info      Guide
LIRC.Audio     Music
LIRC.Pause     Pause
LIRC.Play      Play
LIRC.Stop      Stop
LIRC.Next      Next
LIRC.Prev      Prev
LIRC.FastFwd   Forward
LIRC.FastRew   Rewind
LIRC.Schedule  Pictures
LIRC.Recordings Videos
LIRC.0         PrevCh
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-

[Bearbeiten] $HOME/.lircrc

Wer Xine direkt per Lirc steuern will braucht noch eine .lircrc im Homeverzeichnis

##
# xine key bindings.
# Automatically generated by xine-ui version 0.99.6cvs.
##

# jump to media Menu
begin
	remote = Nova-HD-S2
	button = Menu
	prog   = xine
	repeat = 0
	config = Menu
end

# menu navigate up
begin
	remote = Nova-HD-S2
	button = Up
	prog   = xine
	repeat = 0
	config = EventUp
end

# menu navigate down
begin
	remote = Nova-HD-S2
	button = Down
	prog   = xine
	repeat = 0
	config = EventDown
end

# menu navigate left
begin
	remote = Nova-HD-S2
	button = Left
	prog   = xine
	repeat = 0
	config = EventLeft
end

# menu navigate right
begin
	remote = Nova-HD-S2
	button = Right
	prog   = xine
	repeat = 0
	config = EventRight
end

# menu select
begin
	remote = Nova-HD-S2
	button = OK
	prog   = xine
	repeat = 0
	config = EventSelect
end

# enter the number 0
begin
	remote = Nova-HD-S2
	button = 0
	prog   = xine
	repeat = 0
	config = Number0
end

# enter the number 1
begin
	remote = Nova-HD-S2
	button = 1
	prog   = xine
	repeat = 0
	config = Number1
end

# enter the number 2
begin
	remote = Nova-HD-S2
	button = 2
	prog   = xine
	repeat = 0
	config = Number2
end

# enter the number 3
begin
	remote = Nova-HD-S2
	button = 3
	prog   = xine
	repeat = 0
	config = Number3
end

# enter the number 4
begin
	remote = Nova-HD-S2
	button = 4
	prog   = xine
	repeat = 0
	config = Number4
end

# enter the number 5
begin
	remote = Nova-HD-S2
	button = 5
	prog   = xine
	repeat = 0
	config = Number5
end

# enter the number 6
begin
	remote = Nova-HD-S2
	button = 6
	prog   = xine
	repeat = 0
	config = Number6
end

# enter the number 7
begin
	remote = Nova-HD-S2
	button = 7
	prog   = xine
	repeat = 0
	config = Number7
end

# enter the number 8
begin
	remote = Nova-HD-S2
	button = 8
	prog   = xine
	repeat = 0
	config = Number8
end

# enter the number 9
begin
	remote = Nova-HD-S2
	button = 9
	prog   = xine
	repeat = 0
	config = Number9
end

# VDR Red button
begin
	remote = Nova-HD-S2
	button = Red
	prog   = xine
	repeat = 0
	config = VDRButtonRed
end

# VDR Green button
begin
	remote = Nova-HD-S2
	button = Green
	prog   = xine
	repeat = 0
	config = VDRButtonGreen
end

# VDR Yellow button
begin
	remote = Nova-HD-S2
	button = Yellow
	prog   = xine
	repeat = 0
	config = VDRButtonYellow
end

# VDR Blue button
begin
	remote = Nova-HD-S2
	button = Blue
	prog   = xine
	repeat = 0
	config = VDRButtonBlue
end

# VDR Play
begin
	remote = Nova-HD-S2
	button = Play
	prog   = xine
	repeat = 0
	config = VDRPlay
end

# VDR Pause
begin
	remote = Nova-HD-S2
	button = Pause
	prog   = xine
	repeat = 0
	config = VDRPause
end

# VDR Stop
begin
	remote = Nova-HD-S2
	button = Stop
	prog   = xine
	repeat = 0
	config = VDRStop
end

# VDR Fast forward
begin
	remote = Nova-HD-S2
	button = Forward
	prog   = xine
	repeat = 0
	config = VDRFastFwd
end

# VDR Fast rewind
begin
	remote = Nova-HD-S2
	button = Rewind
	prog   = xine
	repeat = 0
	config = VDRFastRew
end

# VDR Power
begin
	remote = Nova-HD-S2
	button = Go
	prog   = xine
	repeat = 0
	config = VDRPower
end

# VDR Channel +
begin
	remote = Nova-HD-S2
	button = Ch+
	prog   = xine
	repeat = 0
	config = VDRChannelPlus
end

# VDR Channel -
begin
	remote = Nova-HD-S2
	button = Ch-
	prog   = xine
	repeat = 0
	config = VDRChannelMinus
end

# VDR Schedule menu
begin
	remote = Nova-HD-S2
	button = Pictures
	prog   = xine
	repeat = 0
	config = VDRSchedule
end

# VDR Recordings menu
begin
	remote = Nova-HD-S2
	button = Videos
	prog   = xine
	repeat = 0
	config = VDRRecordings
end

# VDR Command back
begin
	remote = Nova-HD-S2
	button = Back
	prog   = xine
	repeat = 0
	config = VDRBack
end

# VDR Volume +
begin
	remote = Nova-HD-S2
	button = Volume+
	prog   = xine
	repeat = 0
	config = VDRVolumePlus
end

# VDR Volume -
begin
	remote = Nova-HD-S2
	button = Volume-
	prog   = xine
	repeat = 0
	config = VDRVolumeMinus
end

# VDR Mute audio
begin
	remote = Nova-HD-S2
	button = Mute
	prog   = xine
	repeat = 0
	config = VDRMute
end

# VDR Audio menu
begin
	remote = Nova-HD-S2
	button = Music
	prog   = xine
	repeat = 0
	config = VDRAudio
end

# VDR Command info
begin
	remote = Nova-HD-S2
	button = Guide
	prog   = xine
	repeat = 0
	config = VDRInfo
end

##
# End of xine key bindings.
##

[Bearbeiten] Audio

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

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

mit aplay sieht man wo das Device (hier am Beispiel HDMI) 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

[Bearbeiten] Feintuning

~/.xine/config

audio.device.alsa_front_device:default
audio.device.alsa_mixer_name:Master
engine.buffers.audio_num_buffers:300
engine.buffers.video_num_buffers:2000
engine.buffers.video_num_frames:22
engine.performance.memcpy_method:mmx

[Bearbeiten] XBMC

[Bearbeiten] /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

[Bearbeiten] Installation

apt-get update
apt-get install xbmc

[Bearbeiten] advancedsettings.xml (~/.xbmc/userdata)

<advancedsettings>
        <moviestacking action="prepend">
                <regexp>custom[0-9]*</regexp>
        </moviestacking>
</advancedsettings>

[Bearbeiten] 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>Next</skipplus>
         <skipminus>Prev</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>

[Bearbeiten] /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 this
TVFILE="../tvshow.nfo"
NFOFILE="001.nfo"

DVDTHUMB="../folder.jpg"
DVDOFFSETVDR="18000"
DVDOFFSETSEC="5000"
DVD_XRES="144"
DVD_YRES="176"

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

CHECKRUNNING=$(/bin/pidof -x $0|wc -w)

if [ $CHECKRUNNING -gt 2 ];then
  echo "$CHECKRUNNING"
  echo "scanvdr already running ..."
  exit 0
fi

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