HDTV Installationsanleitung Ubuntu
|  (→/etc/lircd.conf) |  (→vdpinfo) | ||
| (114 dazwischenliegende Versionen von 32 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 | + | apt-get install build-essential xserver-xorg-dev xorg-dev | 
| /etc/init.d/gdm stop | /etc/init.d/gdm stop | ||
| cd /home/deinkonto   | cd /home/deinkonto   | ||
| wget ftp://download.nvidia.com/XFree86/Linux-x86/185.19/NVIDIA-Linux-x86-185.19-pkg1.run #(oder neuer) | wget ftp://download.nvidia.com/XFree86/Linux-x86/185.19/NVIDIA-Linux-x86-185.19-pkg1.run #(oder neuer) | ||
| sh *.run | sh *.run | ||
| − | |||
| </pre> | </pre> | ||
| + | |||
| + | ==== /etc/X11/xorg.conf ==== | ||
| + | <pre> | ||
| + | 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 | ||
| + | </pre> | ||
| + | |||
| + | gdm neu starten und anschließend im '''/var/log/Xorg.0.log''' prüfen ob der Treiber wirklich geladen wurde | ||
| + | <pre> | ||
| + | /etc/init.d/gdm restart | ||
| + | </pre> | ||
| + | |||
| + | ==== vdpinfo ==== | ||
| + | |||
| + | Mit dem Tool kann man testen ob die vdpau Unterstützung funktioniert | ||
| + | |||
| + | <pre> | ||
| + | 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 | ||
| + | </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 === | ||
| <pre> | <pre> | ||
| apt-get install mercurial cvs subversion libncurses-dev zlib1g-dev | apt-get install mercurial cvs subversion libncurses-dev zlib1g-dev | ||
| − | apt-get install autoconf libtool automake pkg-config gettext | + | 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 | apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev libpng12-dev libx11-dev libxv-dev libasound2-dev | ||
| </pre> | </pre> | ||
| Zeile 43: | 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 56: | 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 71: | 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  | + | 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 84: | 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 | ||
| − | + | 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 91: | 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 | ||
| − | + | 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 104: | Zeile 201: | ||
| − | === Xine | + | === Xine === | 
| + | <pre> | ||
| + | apt-get remove --purge libxine1 libxine1-bin libxine1-console libxine1-misc-plugins libxine1-x libxine1-doc | ||
| + | </pre> | ||
| + | |||
| + | '''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 | ||
| + | |||
| <pre> | <pre> | ||
| cd /usr/local/src | cd /usr/local/src | ||
| svn co svn://jusst.de/xine-vdpau | svn co svn://jusst.de/xine-vdpau | ||
| − | cd xine-vdpau | + | cd xine-vdpau   | 
| − | ## vi  | + | |
| + | ## 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" | ||
| + | |||
| find ../xine-0.9.3 -name xine-lib.patch -exec patch -p1 -i \{} \;   | find ../xine-0.9.3 -name xine-lib.patch -exec patch -p1 -i \{} \;   | ||
| + | |||
| ./autogen.sh | ./autogen.sh | ||
| + | ./configure --prefix=/usr | ||
| make | make | ||
| make install | make install | ||
| 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 128: | 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 133: | 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. | + | 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 204: | 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 210: | 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_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) | |
| </pre> | </pre> | ||
| − | === Xineliboutput  | + | |
| + | 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 === | ||
| + | ==== bis vdr-1.7.3 ==== | ||
| <pre> | <pre> | ||
| cd /usr/local/src/vdr-1.7.x/PLUGINS/src | cd /usr/local/src/vdr-1.7.x/PLUGINS/src | ||
| Zeile 224: | Zeile 391: | ||
| mv xineliboutput* xineliboutput | mv xineliboutput* xineliboutput | ||
| − | cd xineliboutput | + | cd ../.. | 
| + | make plugins | ||
| + | make install | ||
| + | cd PLUGINS/src/xineliboutput | ||
| make | make | ||
| make install | make install | ||
| Zeile 234: | Zeile 404: | ||
| </pre> | </pre> | ||
| − | ===  | + | ==== ab vdr-1.7.4 ==== | 
| <pre> | <pre> | ||
| cd /usr/local/src/vdr-1.7.9/PLUGINS/src | cd /usr/local/src/vdr-1.7.9/PLUGINS/src | ||
| Zeile 242: | Zeile 412: | ||
| mv vdr-xineliboutput* xineliboutput | mv vdr-xineliboutput* xineliboutput | ||
| − | cd xineliboutput | + | cd ../.. | 
| + | make plugins | ||
| + | make install | ||
| + | cd PLUGINS/src/xineliboutput | ||
| make | make | ||
| make install | make install | ||
| Zeile 259: | Zeile 432: | ||
| </pre> | </pre> | ||
| − | ===  | + | === Skripts === | 
| ==== /var/bin/runvdr ==== | ==== /var/bin/runvdr ==== | ||
| <pre> | <pre> | ||
| Zeile 278: | 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 | + | -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 323: | Zeile 493: | ||
|        LoadDriver |        LoadDriver | ||
|        echo "`date` restarting VDR" |        echo "`date` restarting VDR" | ||
| − | + | done | |
| </pre> | </pre> | ||
| − | ==== /var/bin/vdrpoweroff | + | ==== /var/bin/vdrpoweroff ==== | 
| <pre> | <pre> | ||
| #!/bin/bash | #!/bin/bash | ||
| Zeile 353: | 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 & | ||
| − | + |                  sleep 5 | |
| − |                  /usr/local/bin/switchtv  | + |                  /usr/local/bin/switchtv | 
| − | + |         ;; | |
|      stop) |      stop) | ||
|          echo -n "Shutting down VDR " |          echo -n "Shutting down VDR " | ||
| − | |||
|                  /usr/local/bin/switchtv kill |                  /usr/local/bin/switchtv kill | ||
| − | + |         ;; | |
| − | + | ||
| − | + | ||
|      restart) |      restart) | ||
|          echo -n "Restart VDR " |          echo -n "Restart VDR " | ||
| − | + |         $0 stop | |
| − | + |         sleep 5 | |
| − | + |         $0 start | |
| − | + |         ;; | |
|      *) |      *) | ||
|          echo "Usage: $0 {start|stop|restart}" |          echo "Usage: $0 {start|stop|restart}" | ||
| − | + |         exit 1 | |
| − | + |         ;; | |
| esac | esac | ||
| # rc_exit | # rc_exit | ||
| Zeile 382: | 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 390: | 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 396: | Zeile 609: | ||
| run_vdrxineliboutput() { | run_vdrxineliboutput() { | ||
| − | |||
|      /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() { | ||
| − | |||
|      /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() { | ||
| − | |||
|      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/xinit -e /usr/share/xbmc/xbmc.bin -fs $@ & |           /usr/bin/xinit -e /usr/share/xbmc/xbmc.bin -fs $@ & | ||
|      else |      else | ||
| Zeile 417: | 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 | 
| − |       / | + |      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 | 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 | ||
| − | + |       kill_apps | |
| − | + |       /usr/bin/irexec -d /etc/irexec.conf | |
| − | + |       /etc/init.d/vdr start | |
| − | + | ||
| − | + | ||
| elif [ "$1" = "kill" ];then | elif [ "$1" = "kill" ];then | ||
|       kill_apps |       kill_apps | ||
| elif [ -z "$1" ];then | elif [ -z "$1" ];then | ||
| − | + |       killall -9 irexec   2>/dev/null | |
| − | + |      run_vdr | |
| − | + |       /usr/bin/irexec -d /etc/irexec.conf | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| fi | fi | ||
| Zeile 458: | 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 594: | 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 ==== | ||
| − | + | ===== für Nova-HD-S2 IR Empfänger ===== | |
| <pre> | <pre> | ||
| # /etc/lirc/hardware.conf | # /etc/lirc/hardware.conf | ||
| Zeile 605: | 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 641: | 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> | ||
| − | # | + | # 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: | |
| − | + | ||
| − | + | ||
| − | # brand:                        | + | |
| − | # model no. of remote control:  | + | |
| # | # | ||
| begin 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 | |
| − | + | </pre> | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | Die Bezeichnung der Fernbedienung (Beispiel"Hauppauge Nova-HD-S2") sollte in '''hardware.conf''' und '''lircd.conf''' übereinstimmen. | |
| − | + | ==== 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 | ||
| ==== /etc/irexec.conf ==== | ==== /etc/irexec.conf ==== | ||
| Zeile 753: | Zeile 1.035: | ||
|     prog   = irexec |     prog   = irexec | ||
|     remote = NOVA-HD-S2 |     remote = NOVA-HD-S2 | ||
| − |     button =  | + |     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 760: | 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 787: | Zeile 1.087: | ||
| LIRC.Channel+  Ch+ | LIRC.Channel+  Ch+ | ||
| LIRC.Channel-  Ch- | LIRC.Channel-  Ch- | ||
| − | + | </pre> | |
| − | + | ||
| − | + | === $HOME/.lircrc === | |
| − | + | ||
| − | + | Wer Xine direkt per Lirc steuern will braucht noch eine .lircrc im Homeverzeichnis | |
| − | + | ||
| − | + | <pre> | |
| − | + | ## | |
| − | + | # 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. | ||
| + | ## | ||
| + | |||
| </pre> | </pre> | ||
| === Audio === | === Audio === | ||
| − | Vorsichthalber auf die neueste Alsa Version mit dem Script  | + | 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''' | ||
| − | + | mit '''aplay''' sieht man wo das Device (hier am Beispiel HDMI) konfiguriert ist (Card "'''0'''" Device "'''3'''") | |
| − | mit '''aplay''' sieht man wo das HDMI  | + | |
| <pre> | <pre> | ||
| aplay -l   | aplay -l   | ||
| Zeile 861: | Zeile 1.473: | ||
| </pre> | </pre> | ||
| + | === Feintuning === | ||
| '''~/.xine/config''' | '''~/.xine/config''' | ||
| <pre> | <pre> | ||
| − | + | audio.device.alsa_front_device:default | |
| − | + | audio.device.alsa_mixer_name:Master | |
| − | engine.buffers.audio_num_buffers: | + | engine.buffers.audio_num_buffers:300 | 
| − | + | ||
| − | + | ||
| − | + | ||
| 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 884: | 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 889: | Zeile 1.510: | ||
| <pre> | <pre> | ||
| <lircmap> | <lircmap> | ||
| − |    <remote device=" | + |    <remote device="Nova-HD-S2"> | 
|           <power>Power</power> |           <power>Power</power> | ||
|           <info>Red</info> |           <info>Red</info> | ||
| Zeile 899: | Zeile 1.520: | ||
|           <channelplus>Ch+</channelplus> |           <channelplus>Ch+</channelplus> | ||
|           <channelminus>Ch-</channelminus> |           <channelminus>Ch-</channelminus> | ||
| − |           <skipplus> | + |           <skipplus>Next</skipplus> | 
| − |           <skipminus> | + |           <skipminus>Prev</skipminus> | 
|           <mymusic>Music</mymusic> |           <mymusic>Music</mymusic> | ||
|           <mypictures>Pictures</mypictures> |           <mypictures>Pictures</mypictures> | ||
| Zeile 934: | Zeile 1.555: | ||
| ==== /usr/local/bin/scanvdr ==== | ==== /usr/local/bin/scanvdr ==== | ||
| <pre> | <pre> | ||
| − | VDRREC="/ | + | #!/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" | ||
| − | |||
| NFOFILE="001.nfo" | NFOFILE="001.nfo" | ||
| DVDTHUMB="../folder.jpg" | DVDTHUMB="../folder.jpg" | ||
| − | + | DVDOFFSETVDR="18000" | |
| − | DVD_XRES=" | + | DVDOFFSETSEC="5000" | 
| − | DVD_YRES=" | + | DVD_XRES="144" | 
| + | DVD_YRES="176" | ||
| FANTHUMB="../fanart.jpg" | FANTHUMB="../fanart.jpg" | ||
| − | + | 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 953: | 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 | ||
| − | |||
| − | for i in $(find $VDRREC -name info | + | for i in $(find $VDRREC -name "info*" -type f) | 
| do | do | ||
|    VDRDIR=$(dirname $i) |    VDRDIR=$(dirname $i) | ||
| − | + |    VDRINFO=$(basename $i) | |
|    cd $VDRDIR |    cd $VDRDIR | ||
| Zeile 979: | Zeile 1.620: | ||
|    COUNTREC=$(find .. -name "*.rec" | wc -l) |    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 |    if [ -z "$HTEXT" ];then | ||
| Zeile 988: | Zeile 1.631: | ||
| $DAUER min: $INHALT" | $DAUER min: $INHALT" | ||
|    fi |    fi | ||
| − | |||
|    echo "<tvshow>"                  > $TVFILE |    echo "<tvshow>"                  > $TVFILE | ||
| Zeile 994: | 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.009: | 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 $ | + |         $VDR2JPEG -x $DVD_XRES= -y $DVD_YRES -f $DVDOFFSETVDR -r . | 
| − |         mv 000${ | + |         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 $ | + |         $VDR2JPEG -x $FAN_XRES= -y $FAN_YRES -f $FANOFFSETVDR -r . | 
| − |         mv 000${ | + |         mv 000${FANOFFSETVDR}.jpg $FANTHUMB | 
|       fi |       fi | ||
| − | + | ||
| − |       echo " | + |    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.030: | 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
[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

