Aktueller VDR

Einleitung

Diese Seite ist keine '1:1 Nachbau Anleitung', viel mehr eine Art unvollständige Auflistung
meines aktuellen VDR Setups. Aber vielleicht findet sich ja trotzdem die eine oder andre interessante
Lösung, oder jemand hat bessere Lösungen und gibt Feedback..

VDPAU

Hardware-Beschleunigung für HDTV ist endlich auch unter Linux verfügbar, z.Z. scheint Nvidia etwas die
Nase vorn zu haben mit den letzten Grafiktreibern. Zum Thema VDPAU seien folgende Seiten ans Herz gelegt.

Hinweise zur Grafikkartenauswahl

Chipsatz GF8300 GF8400GS GF8600GTS GF9300GS GF9400GT GF9500GT GF9600GT GT210 GT220
GPU C77 G98 G84 G98 G96 G96 G92/G94 GT216 GT216
Anschluss PCIe PCI PCIe PCIe PCIe PCIe PCIe PCIe PCIe
Abwärme ++ + - ++ o - -- ++ o
Deinterlacing (1920x1080) - - + - o + ++ o ++
Feature Set A B A B A A A C C
MPEG-1, MPEG2 support teilweiseja teilweise ja teilweise teilweise teilweise ja ja
H.264 support ja ja *) ja ja *) ja ja ja ja ja
MPEG-4 part 2 support nein nein nein nein nein nein nein ja ja
++ sehr gut, + gut, o ok, + gut, -- sehr schlecht
*) mit Einschränkung auf bestimmte Bildgrößen

Verwendete Hardware

Umbau Palit GT220 auf passive Kühlung

(!) Ich übernehme keine Verantwortung für Nachbauten/dafür dass dieser Umbau bei euch funktioniert.
(!) Mit dem Umbau verliert ihr die Garantie gegenüber dem Hersteller der Grafikkarte und könnt evtl. auch weitere Hardware beschädigen.

Palit GT220 Mod

gemessene Leistungsaufnahme

Software

  1. BIOS Settings
    • System Time [xxxx] hier Uhrzeit in UTC angeben!
    • Configure SATA as [AHCI]
    • AHCI CD/DVD Boot Time out [0]
    • Advanced
      • Chipset
        • North Bridge Configuration
          • Memory Remap Feature [Enabled ]
          • Memory Hole [Disabled]
          • Initiate Graphics Adapter [PEG/PCI]
      • Onboard Devices Configuration
        • High Definition Audio [Enabled ]
        • SPDIF_OUT Mode Setting [SPDIF Output]
        • Marvell IDE Controller [Disabled]
        • Onboard PCIE GbE LAN [PEG/PCI]
      • PCI PnP
        • Plug And Play O/S [No ]
    • Power
      • ACPI 2.0 Support [Enabled ]
      • ACPI APIC Support [Enabled ]
      • APM Configuration
        • Power On By RTC Alarm [Disabled]
        • Power On By PCI Devices [Enabled ]
        • Power On By PCIE Devices [Enabled ]
    • Boot
      • Boot Device Priority
        • 1st Boot Device [HDD: PO-WDC WD20EAD]
        • 2nd Boot Device [Disabled]
      • Boot Settings Configuration
        • Quick Boot [Enabled ]
        • Full Screen Logo [Disabled]
        • Wait For 'F1' If Error [Disabled]
    • Tools
      • Express Gate [Disabled]
  2. LINUX
      LinuxFromScratch-cvs (customized)
      • gcc-4.4.2
      • libc 2.10.1
      • udev-149
      • xorg 7.4 mit MESA-Lib-7.5, SDL, ..
      • kde
      • linux-2.6.35.4
        • Symmetric multi-processing support
        • Maximum number of CPUs = 4
        • Machine Check / overheating reporting = Intel MCE features
        • Processor family (Core 2/newer Xeon)
            benötigte Module
          • Audio: snd-hda-intel
          • GbLAN: atl1
          • SATA: siehe .config
          • Video: nvidia
          • PVR350: ivtv
        • download .config

  3. LinuxFromScratch auf UTC konfigurieren
         cat > /etc/sysconfig/clock << "EOF"
         # Begin /etc/sysconfig/clock
         
         UTC=1
         
         # Set this to any options you might need to give to hwclock, 
         # such as machine hardware clock type for Alphas.
         CLOCKPARAMS=
         
         # End /etc/sysconfig/clock
         EOF
         
  4. VDR
    • vdr-1.7.17 mit einigen Patchen (channel_binding, IPTV, ..)
                  tar xfj vdr-1.7.17.tar.bz2
                  cd /usr/src/vdr-1.7.17
                  patch -p1 -i ../<PATCHES>
                  make
                  
  5. Grafik Treiber mit VDPAU Support
    • NVIDIA-Linux-x86-256.53
               chmod a+x NVIDIA-Linux-x86-256.53.run
               ./NVIDIA-Linux-x86-256.53.run
               
  6. /etc/X11/xorg.conf anpassen
    • Monitor
      		Section "Monitor"
      			Identifier   "Monitor0"
      			VendorName   "LG"
      			ModelName    "42LH9000"
      			HorizSync   30-83
      			VertRefresh 24-62
      			ModeLine "1920x1080@60"          148.50 1920 2008 2052 2200 1080 1084 1089 1125 +HSync +VSync
      			ModeLine "1920x1080@60_CEA-861B" 148.35 1920 2008 2052 2200 1080 1084 1089 1125 +HSync +VSync
      			ModeLine "1920x1080@50_CEA-861B" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +HSync +VSync
      			ModeLine "1920x1080@30_CEA-861B"  89.01 1920 2448 2492 2640 1080 1084 1089 1125 +HSync +VSync
      			Modeline "1920x1080@25_CEA-861B"  74.25 1920 2448 2492 2640 1080 1084 1089 1125 +HSync +VSync
      			ModeLine "1920x1080@24_CEA-861B"  74.16 1920 2558 2602 2750 1080 1084 1089 1125 +HSync +VSync
      			ModeLine "1920x1080@60i_CEA-861B" 74.18 1920 2008 2052 2200 1080 1084 1094 1124 +HSync +VSync Interlace
      			ModeLine "1920x1080@50i_CEA-861B" 74.25 1920 2448 2492 2640 1080 1084 1094 1124 +HSync +VSync Interlace
      			ModeLine "1440x576@50i_CEA-861B"  27.00 1440 1464 1590 1728  576  580  586  624 -HSync -VSync Interlace
      			ModeLine "1360x768@60"            85.50 1360 1424 1536 1792  768  771  777  795 +HSync +VSync
      			ModeLine "1280x720@60"            74.25 1280 1390 1430 1650  720  725  730  750 +HSync +VSync
      			ModeLine "1280x720@61"            74.25 1280 1344 1472 1664  720  723  728  732 +HSync +VSync
      			ModeLine "1280x720@60_CEA-861B"   74.18 1280 1390 1430 1650  720  725  730  750 +HSync +VSync
      			ModeLine "1280x720@50_CEA-861B"   74.25 1280 1720 1760 1980  720  725  730  750 +HSync +VSync
      			ModeLine "720x576@50_CEA-861B"    27.00  720  732  796  864  576  581  586  625 -HSync -VSync
      			ModeLine "720x480@60_CEA-861B"    27.00  720  736  798  858  480  489  495  525 -HSync -VSync
      			ModeLine "640x480@60_CEA-861B"    25.17  640  656  752  800  480  490  492  525 -HSync -VSync
      		EndSection
               
    • Screen
      		Section "Screen"
      			Identifier "Screen0"
      			Device     "Card0"
      			Monitor    "Monitor0"
      			DefaultDepth 24
      			SubSection "Display"
      				Viewport   0 0
      				Modes       "1920x1080@50_CEA-861B" "1920x1080@60_CEA-861B" "1920x1080@24_CEA-861B" "720x576@50_CEA-861B"
      				Depth     24
      			EndSubSection
      			SubSection "Display"
      				Viewport   0 0
      				Modes       "1920x1080@50_CEA-861B" "1920x1080@60_CEA-861B" "1920x1080@24_CEA-861B" "720x576@50_CEA-861B"
      				Depth     32
      			EndSubSection
      		EndSection
               
    • Device
      		Section "Device"
      			Identifier  "Card0"
      			Driver      "nvidia"
      			BusID       "PCI:1:0:0"
      			Option      "NoLogo" "true"
      			Option      "ConnectedMonitor"  "DFP-1"
      			Option      "FlatPanelProperties" "Scaling = native"
      			Option      "XvmcUsesTextures" "true"
      			Option      "ExactModeTimingsDVI" "true"
      		EndSection
               
  7. VDPAU testen mit qvdpautest
    • qvdpautest compilieren (benötigt qt-4.x.x)
               wget http://hftom.free.fr/qvdpautest-0.5.1.tar.gz
               tar xfz qvdpautest-0.5.1.tar.gz
               cd qvdpautest-0.5.1
               qmake
               make
               ./qvdpautest
               
    • Testergebnisse
               qvdpautest 0.5.1
               Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
               Unknown GPU
               
               VDPAU API version : 1
               VDPAU implementation : NVIDIA VDPAU Driver Shared Library  256.53  Fri Aug 27 21:32:59 PDT 2010
               
               SURFACE GET BITS: 1309.92 M/s
               SURFACE PUT BITS: 1372.41 M/s
                
               MPEG DECODING (1920x1080): 72 frames/s
               MPEG DECODING (1280x720): 162 frames/s
               H264 DECODING (1920x1080): 65 frames/s
               H264 DECODING (1280x720): 135 frames/s
               VC1 DECODING (1440x1080): 83 frames/s
               MPEG4 DECODING (1920x1080): 72 frames/s
               
               MIXER WEAVE (1920x1080): 630 frames/s
               MIXER BOB (1920x1080): 1102 fields/s
               MIXER TEMPORAL (1920x1080): 302 fields/s
               MIXER TEMPORAL + IVTC (1920x1080): 199 fields/s
               MIXER TEMPORAL + SKIP_CHROMA (1920x1080): 395 fields/s
               MIXER TEMPORAL_SPATIAL (1920x1080): 150 fields/s
               MIXER TEMPORAL_SPATIAL + IVTC (1920x1080): 118 fields/s
               MIXER TEMPORAL_SPATIAL + SKIP_CHROMA (1920x1080): 171 fields/s
               MIXER TEMPORAL_SPATIAL (720x576 video to 1920x1080 display): 487 fields/s
               MIXER TEMPORAL_SPATIAL + HQSCALING (720x576 video to 1920x1080 display): 286 fields/s
               
               MULTITHREADED MPEG DECODING (1920x1080): 65 frames/s
               MULTITHREADED MIXER TEMPORAL (1920x1080): 224 fields/s
               

      Benötigt werden deutlich mehr als 25 frames per sec, bzw. mehr als 50 fields per sec.
      Die Werte differieren wie bei allen Benchmarks nach Systemauslastung, Softwareversionen etc. und sind eher als grober Vergleich zu verstehen.

  8. vdpauinfo
    • vdpauinfo compilieren
               wget http://cgit.freedesktop.org/~aplattner/vdpauinfo/snapshot/vdpauinfo-0.0.6.tar.bz2
               tar xfj vdpauinfo-0.0.6.tar.bz2
               cd vdpauinfo-0.0.6
      
               cat > /usr/lib/pkgconfig/vdpau.pc << "EOF"
               prefix=/usr
               exec_prefix=${prefix}
               libdir=${exec_prefix}/lib/vdpau
               includedir=${exec_prefix}/include/vdpau
               moduledir=/lib/modules/2.6.35.4/kernel/drivers/video
               
               Name: VDPAU
               Description: The Video Decode and Presentation API for UNIX
               Version: 256.53
               Requires.private: x11
               Cflags: -I${includedir}
               Libs: -L${libdir} -lvdpau
               
               EOF
      
               ./autogen.sh
               ./configure --prefix=/usr
               make
               make install
               
    • Testergebnisse
               display: :0.0   screen: 0
               API version: 1
               Information string: NVIDIA VDPAU Driver Shared Library  256.53  Fri Aug 27 21:32
               :59 PDT 2010
               
               Video surface:
               
               name   width height types
               -------------------------------------------
               420     4096  4096  NV12 YV12
               422     4096  4096  UYVY YUYV
               
               Decoder capabilities:
               
               name               level macbs width height
               -------------------------------------------
               MPEG1                 0  8192  2048  2048
               MPEG2_SIMPLE          3  8192  2048  2048
               MPEG2_MAIN            3  8192  2048  2048
               H264_MAIN            41  8192  2048  2048
               H264_HIGH            41  8192  2048  2048
               VC1_SIMPLE            1  8190  2048  2048
               VC1_MAIN              2  8190  2048  2048
               VC1_ADVANCED          4  8190  2048  2048
               MPEG4_PART2_SP        3  8192  2048  2048
               MPEG4_PART2_ASP       5  8192  2048  2048
               DIVX4_QMOBILE         0  8192  2048  2048
               DIVX4_MOBILE          0  8192  2048  2048
               DIVX4_HOME_THEATER    0  8192  2048  2048
               DIVX4_HD_1080P        0  8192  2048  2048
               DIVX5_QMOBILE         0  8192  2048  2048
               DIVX5_MOBILE          0  8192  2048  2048
               DIVX5_HOME_THEATER    0  8192  2048  2048
               DIVX5_HD_1080P        0  8192  2048  2048
               
               Output surface:
               
               name              width height nat types
               ----------------------------------------------------
               B8G8R8A8          8192  8192    y  Y8U8V8A8 V8U8Y8A8
               R10G10B10A2       8192  8192    y  Y8U8V8A8 V8U8Y8A8
               
               Bitmap surface:
               
               name              width height
               ------------------------------
               B8G8R8A8          8192  8192
               R8G8B8A8          8192  8192
               R10G10B10A2       8192  8192
               B10G10R10A2       8192  8192
               A8                8192  8192
                        
               Video mixer:
               
               feature name                    sup
               ------------------------------------
               DEINTERLACE_TEMPORAL             y
               DEINTERLACE_TEMPORAL_SPATIAL     y
               INVERSE_TELECINE                 y
               NOISE_REDUCTION                  y
               SHARPNESS                        y
               LUMA_KEY                         y
               HIGH QUALITY SCALING - L1        y
               HIGH QUALITY SCALING - L2        -
               HIGH QUALITY SCALING - L3        -
               HIGH QUALITY SCALING - L4        -
               HIGH QUALITY SCALING - L5        -
               HIGH QUALITY SCALING - L6        -
               HIGH QUALITY SCALING - L7        -
               HIGH QUALITY SCALING - L8        -
               HIGH QUALITY SCALING - L9        -
               
               parameter name                  sup      min      max
               -----------------------------------------------------
               VIDEO_SURFACE_WIDTH              y         1     4096
               VIDEO_SURFACE_HEIGHT             y         1     4096
               CHROMA_TYPE                      y
               LAYERS                           y         0        4
               
               attribute name                  sup      min      max
               -----------------------------------------------------
               BACKGROUND_COLOR                 y
               CSC_MATRIX                       y
               NOISE_REDUCTION_LEVEL            y      0.00     1.00
               SHARPNESS_LEVEL                  y     -1.00     1.00
               LUMA_KEY_MIN_LUMA                y
               LUMA_KEY_MAX_LUMA                y
               
  9. xine-lib-1.2 cvs
    • xine-lib-1-2-d9d31acdc95f (cvs-20100921)
                  ./autogen.sh
                  ./configure --prefix=/usr \
                              --enable-shared \
                              --enable-oss \
                              --enable-aalib \
                              --enable-directfb \
                              --enable-fb \
                              --enable-opengl \
                              --enable-dvb \
                              --enable-v4l \
                              --enable-vcd \
                              --enable-vdr \
                              --enable-faad \
                              --with-freetype \
                              --with-fontconfig \
                              --with-x \
                              --with-sdl \
                              --enable-vdpau \
                              --with-xcb \
                              --with-theora \
                              --with-vorbis
                  sed -i -e 's|\/\* \#undef HAVE_MPCDEC_MPCDEC_H \*\/|\#define HAVE_MPCDEC_MPCDEC_H \/\*\*\/|' include/configure.h
                  make
                  make install
                 
  10. WAKEUP
    • Wakeup per nvram-wakeup
      nvram-wakeup erfordert bei diesem Mainboard einen reboot nach jedem Setzen der wakeup Zeit.
      Deswegen wird hier wakeup per rtc wakeup / acpi wakeup beschrieben.

    • Wakeup per RTC
      • Test, ob der PC per RTC aufwacht
        • Erstellen von ~/wakeuptest
                                  cat > ~/wakeuptest << "EOF"                
                                  #!/bin/bash                   
                                  # Startet dem Rechner nach 3 Minuten über ACPI neu.
                                  DEV=/sys/class/rtc/rtc0/wakealarm
                                  # how much minutes later restart should be.
                                  RESTARTDELAY=3
                                  SECS_PER_MINUTE=60
                                  now=$(date +%s)
                                  let 'nextboot=now+RESTARTDELAY*SECS_PER_MINUTE'
                                  echo 0 > $DEV
                                  echo $nextboot > $DEV
                                  WAKEUP=$(cat $DEV)
                                  echo "Now    :  "$(date "+%Y-%m-%d %H:%M:%S")
                                  echo "Wakeup :  "$(date -d @$WAKEUP "+%Y-%m-%d %H:%M:%S")
                                  for ((i=9;i>=0;i--)); do
                                    echo "--- poweroff in $i seconds ---"
                                    sleep 1
                                  done
                                  poweroff
                                  EOF
                                  
        • ~/wakeuptest ausführbar machen
                                  chmod a+x ~/wakeuptest
                                  
        • Alle geöffneten Dateien/Programme schließen, dann ~/wakeuptest ausführen

          ACHTUNG: DAS SCRIPT PROGRAMMIERT EINE AUFWACHZEIT UND FÄHRT DEN PC HERUNTER!

                                   cd ~
                                   ./wakeuptest
                                   
          Wenn alles richtig konfiguriert wurde, muss der Rechner in drei Minuten von selbst wieder einschalten.
          Ansonsten prüfen, ob im Bios ACPI enabled ist, der Kernel RTC Support und ACPI support hat sowie im Bios
          Power On By RTC Alarm ausgeschaltet(!) ist.

      • /usr/local/bin/vdrshutdown
        • Erstellen von /usr/local/bin/vdrshutdown
                                 cat > /usr/local/bin/vdrshutdown << "EOF"                 
                                 #!/bin/bash
                                 # geaendertes vdrshutdown, Original: bistr-o-math (nvram)
                                 
                                 SVDRPCMD=/usr/local/bin/svdrpsend.pl
                                 LOGGER=/usr/bin/logger
                                 
                                 CHECKSCRIPT=/usr/local/bin/vdrshutdowntest.sh
                                 
                                 #################
                                 ##  if the script $CHECKSCRIPT thinks that we *SHOULD* shutdown, it *MUST NOT PRINT ANYTHING ON STDOUT*
                                 ##  if we should STOP shutdown, it must print a one-line message on stdout describing the reason.
                                 #################
                                 
                                 test -x $CHECKSCRIPT && {
                                      msg=`$CHECKSCRIPT "$@"` 
                                      test "$msg" != "" && {
                                           $SVDRPCMD MESG $msg &
                                           $LOGGER -t `basename $0` "shutdown aborted: $msg"
                                           exit 1
                                      }
                                 }
                                 
                                 #################
                                 
                                 if [ $1 -gt 0 ]; then
                                    DEV=/sys/class/rtc/rtc0/wakealarm
                                    echo "Wakeup :  "$(date -d @$1 "+%Y-%m-%d %H:%M:%S")
                                 
                                    #clear old settings
                                    echo 0 > $DEV
                                 
                                   #write new wakeup time
                                    echo $1 > $DEV
                                 fi
                                 
                                 sync
                                 shutdown -h now
                                 EOF
                                 
        • /usr/local/bin/vdrshutdown ausführbar machen
                                  chmod a+x /usr/local/bin/vdrshutdown
                                  
      • /usr/local/bin/vdrshutdowntest.sh
        • Erstellen von /usr/local/bin/vdrshutdowntest.sh
                                 cat > /usr/local/bin/vdrshutdowntest.sh << "EOF"                
                                 #!/bin/bash
                                 # Original: bistr-o-math (nvram)
                                     pgrep mc                          && { echo Midnight Commander läuft noch - ABBRUCH; exit; }
                                     pgrep 2divx                       && { echo Divx-Conversion läuft noch - ABBRUCH;  exit; }
                                     pgrep noad                        && { echo noad läuft noch - ABBRUCH;  exit; }
                                     pgrep vdrsync.pl                  && { echo burn-vdrsync.pl läuft noch - ABBRUCH;  exit; }
                                     pgrep vdrburn.sh                  && { echo burn-vdrburn.sh läuft noch - ABBRUCH;  exit; }
                                     pgrep mplex                       && { echo burn-mplex läuft noch - ABBRUCH;  exit; }
                                     pgrep dvdauthor                   && { echo burn-dvdauthor läuft noch - ABBRUCH;  exit; }
                                     pgrep spumux                      && { echo burn-spumux läuft noch - ABBRUCH;  exit; }
                                     pgrep mkisofs                     && { echo burn-mkisofs läuft noch - ABBRUCH;  exit; }
                                     pgrep growisofs                   && { echo burn-growisofs läuft noch - ABBRUCH;  exit; }
                                     pgrep gcc                         && { echo gcc läuft noch - ABBRUCH;  exit; }
                                     pgrep tvm2vdr                     && { echo tvmovie2vdr läuft noch - ABBRUCH; exit; }
                                     pgrep make                        && { echo make läuft noch - ABBRUCH;  exit; }
                                     test -a /some/file                && { echo Datei /some/file existiert - ABBRUCH; exit; }
                                 #--------------nur nötig, wenn auf eingeloggte user gecheckt werden soll-------------------
                                     REMOTE=$(who -a | grep 192.168 | wc -l)
                                     [ $REMOTE -gt 0 ]                 && { echo "$REMOTE Benutzer noch eingeloggt! - ABBRUCH"; exit; }
                                 #
                                 #  the echo message will be passed through SVDRP to the tv screen.
                                 EOF
                                 
        • /usr/local/bin/vdrshutdowntest.sh ausführbar machen
                                  chmod a+x /usr/local/bin/vdrshutdowntest.sh
                                  
  11. VDR Plugins
    Unverzichtbar ist hier nur xineliboutput (alternativ: xine Plugin).
    Alle anderen Plugins sind optional und hier eher beispielhaft beschrieben.
    • Wechseln in VDR's Plugin Source Verzeichnis
                  cd /usr/src/vdr-1.7.17/PLUGINS/src
                  
    • xineliboutput (cvs-20100924, 7f2619b2602fe927a8a1b72a54766b5e1cc5c02d)
                  cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co vdr-xineliboutput
                  mv vdr-xineliboutput xineliboutput-cvs-$(date +%Y%m%d)
                  ln -s xineliboutput-cvs-$(date +%Y%m%d) xineliboutput
                  
    • control
                  wget http://www.u32.de/download/vdr-control-0.0.2a-kw3.tar.gz
                  tar xfz vdr-control-0.0.2a-kw3.tar.gz
                  ln -s control-0.0.2a-kw3 control
                  
    • exec
                  wget http://wirbel.htpc-forum.de/exec/vdr-exec-0.0.3.tgz
                  tar xfz vdr-exec-0.0.3.tgz
                  ln -s exec-0.0.3 exec
                  
    • femon
                  wget http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/vdr-femon-1.7.7.tgz
                  tar xfz vdr-femon-1.7.7.tgz
                  ln -s femon-1.7.7 femon
                  
    • pvrinput
                  wget http://projects.vdr-developer.org/attachments/download/388/vdr-pvrinput-2010-09-02.tgz
                  tar xfz vdr-pvrinput-2010-09-02.tgz
                  ln -s pvrinput-2010-09-02 pvrinput
                  
    • skinsoppalusikka
                  wget http://www.saunalahti.fi/~rahrenbe/vdr/soppalusikka/files/vdr-skinsoppalusikka-1.7.1.tgz
                  tar xfz vdr-skinsoppalusikka-1.7.1.tgz
                  ln -s skinsoppalusikka-1.7.1 skinsoppalusikka
                  
    • streamdev cvs
                  cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot co streamdev
                  mv streamdev streamdev-cvs-$(date +%Y%m%d)
                  ln -s streamdev-cvs-$(date +%Y%m%d) streamdev
                  
    • wirbelscan
                  wget http://wirbel.htpc-forum.de/wirbelscan/vdr-wirbelscan-0.0.7-pre01.tgz
                  tar xfz vdr-wirbelscan-0.0.7-pre01.tgz
                  ln -s wirbelscan-0.0.7-pre01 wirbelscan
                  
    • wirbelscancontrol
                  wget http://wirbel.htpc-forum.de/wirbelscancontrol/vdr-wirbelscancontrol-0.0.1.tgz
                  tar xfz vdr-wirbelscancontrol-0.0.1.tgz
                  ln -s wirbelscancontrol-0.0.1 wirbelscancontrol
                  
    • Wechseln in VDR's Source Verzeichnis und Plugins compilieren
                  cd /usr/src/vdr-1.7.17
                  make plugins
                  
    • Installieren von libxine Plugins sowie xineliboutput frontends
                  cd /usr/src/vdr-1.7.17/PLUGINS/src/xineliboutput
                  make install
                  
  12. ALSA Konfiguration
    • libasound installieren
                 cd /usr/src
                 wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.21a.tar.bz2
                 tar xfj alsa-lib-1.0.21a.tar.bz2
                 cd alsa-lib-1.0.21a
                 ./configure --prefix=/usr --disable-python
                 make
                 make install
                 ldconfig
                 
    • alsa-utils installieren
                 cd /usr/src
                 wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.21.tar.bz2
                 tar xfj alsa-utils-1.0.21.tar.bz2
                 cd alsa-utils-1.0.21
                 ./configure --prefix=/usr
                 make
                 make install
                 
    • SPDIF aktivieren
      Hinweis: SPDIF ist per default deaktiviert und muss bei jedem Neustart des System wieder aktiviert werden.

                 alsaconf
                 
      Den Anweisungen folgen und Modifikation der /etc/modules.conf erlauben.
                 alsamixer
                 
      Navigieren zu 'IEC958' und mit Taste 'm' einschalten. Danach alsamixer mit 'CTRL+c' verlassen.
                 alsactl store
                 
      'alsactl store' speichert die aktuellen Mixer Settings. Diese können mit 'alsactl restore' wieder hergestellt werden.
    • /etc/rc.d/init.d/alsactl anlegen
                 
                 #!/bin/sh
                 # Begin $rc_base/init.d/           
                 # Based on sysklogd script from LFS-3.1 and earlier.
                 
                 . /etc/sysconfig/rc
                 . $rc_functions
                 
                 case "$1" in
                 	start)
                 		echo "Restoring audio mixer setting..."
                 		loadproc alsactl restore
                 		;;
                 	*)
                 		echo "Usage: $0 {start}"
                 		exit 1
                 		;;
                 esac
                 
                 # End $rc_base/init.d/
                 
    • /etc/rc.d/init.d/alsactl ausführbar machen
                 chmod a+x /etc/rc.d/init.d/alsactl
                 
    • Das script in den benutzten runlevel einbauen.
                 cd /etc/rc.d/rc3.d
                 ln -s ../init.d/alsactl S11alsactl
                 
  13. /usr/local/bin/runvdr erstellen
          #!/bin/sh      
          export LC_ALL=de_DE
          export LANG=de_DE
          export PATH=/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/opt/kde/bin:/opt/qt/bin:/usr/bin:/bin:/sbin
          export INPUTRC=/etc/inputrc
          export VDR_CHARSET_OVERRIDE="ISO-8859-15"
          
          modprobe uhci-hcd
          modprobe ati-remote
          modprobe ehci-hcd
          
          VDRVER='vdr-1.7.17'
          
          cd /usr/src/$VDRVER
          
          ########################################################
          
          KILL="pkill -9 -x"
          
          ########################################################
          loadDriver ()
          {
          modprobe dvbdrivers
          while [ ! -e /dev/dvb/adapter0/frontend0 ]; do
                sleep 0.1
                echo "waiting for frontend0"
          done
          while [ ! -e /dev/dvb/adapter1/frontend0 ]; do
                sleep 0.1
                echo "waiting for frontend1"
          done
          while [ ! -e /dev/dvb/adapter2/frontend0 ]; do
                sleep 0.1
                echo "waiting for frontend2"
          done
          while [ ! -e /dev/video0 ]; do
                sleep 0.1
                echo "waiting for /dev/video0"
          done
          }
          
          stopDriver ()
          {
          modprobe -r dvbdrivers
          }     
          
          while (true) do
             loadDriver
            ./vdr -c /etc/vdr-1.7.0 -v /video0 -Ppvrinput -Pdvd -Pfemon -Pskinsoppalusikka -Pexec -Pwirbelscan -Pwirbelscancontrol -Pstreamdev-server -P"xineliboutput --local=none --audio=alsa --video=vdpau" -E /etc/vdr/epg.data -s /usr/local/bin/vdrshutdown $*           
             if test $? -eq 0 -o $? -eq 2; then
                echo "oops-what's that?"
          	 fi
             date
             echo "restarting VDR"
             if [[ "$(pgrep -x vdr)" != "" ]]; then
                $KILL vdr
             fi
             sleep 1
             stopDriver
          done
         
  14. /usr/local/bin/runvdr ausführbar machen
          chmod a+x /usr/local/bin/runvdr
          
  15. runvdr in die /etc/inittab einbauen
          # Begin /etc/inittab     
          id:3:initdefault:
          
          si::sysinit:/etc/rc.d/init.d/rc sysinit
          
          l0:0:wait:/etc/rc.d/init.d/rc 0
          l1:S1:wait:/etc/rc.d/init.d/rc 1
          l2:2:wait:/etc/rc.d/init.d/rc 2
          l3:3:wait:/etc/rc.d/init.d/rc 3
          l4:4:wait:/etc/rc.d/init.d/rc 4
          l5:5:wait:/etc/rc.d/init.d/rc 5
          l6:6:wait:/etc/rc.d/init.d/rc 6
          
          ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
          
          su:S016:once:/sbin/sulogin
          
          1:2345:once:/usr/local/bin/runvdr -t /dev/tty1
          2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
          3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
          4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
          5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
          6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600
          # End /etc/inittab
          
  16. /etc/vdr konfigurieren (Überspringen, falls vorhanden)
          mkdir -p /etc/vdr/{plugins,themes}
          cp /usr/src/vdr-1.7.1/*.conf /etc/vdr
          
  17. xineliboutput konfigurieren
          mkdir -p /etc/vdr/plugins/xineliboutput
    
          cat > /etc/vdr/plugins/xineliboutput/allowed_hosts.conf << "EOF"
          #
          # allowed_hosts This file describes a number of host addresses that
          #               are allowed to connect to the xineliboutput plugin
          #               of the Video Disk Recorder (VDR) running on this system.
          # Syntax:
          #
          # IP-Address[/Netmask]
          #
    
          127.0.0.1        # always accept localhost
          192.168.0.0/24  # any host on the local net  <- pls change this line according to your network!
          EOF
    
          cat > /etc/vdr/plugins/xineliboutput/config << "EOF"
          #
          # xine config file
          #
          .version:2
          
          # Entries which are still set to their default values are commented out.
          # Remove the '#' at the beginning of the line, if you want to change them.
          
          # Use unscaled OSD
          # bool, default: 0
          #gui.osd_use_unscaled:0
          
          # Farbpalette (Vordergrund-Rand-Hintergrund) für Untertitel und OSD
          # { white-black-transparent  white-none-transparent  white-none-translucid  yellow-black-transparent }, default: 0
          #ui.osd.text_palette:white-black-transparent
          
          # Benutze dynamische A/52 Bereichskomprimierung
          # bool, default: 0
          #audio.a52.dynamic_range:0
          
          # Heruntermischen zu Zweikanal Stereo Raumklang
          # bool, default: 0
          #audio.a52.surround_downmix:0
          
          # A/52 Lautstärke
          # [0..200], default: 100
          #audio.a52.level:100
          
          # pitch alignment Abhilfe
          # bool, default: 0
          #video.device.xv_pitch_alignment:0
          
          # video display method preference
          # { Any  Overlay  Textured Video  Blitter }, default: 0
          #video.device.xv_preferred_method:Any
          
          # Xv port number
          # numeric, default: 0
          #video.device.xv_port:0
          
          # enable vblank sync
          # bool, default: 1
          #video.device.xv_sync_to_vblank:1
          
          # Deaktiviert exaktes Alphaüberblendn bei Overlays
          # bool, default: 0
          #video.output.disable_exact_alphablend:0
          
          # Alle Videoskalierungen deaktivieren
          # bool, default: 0
          #video.output.disable_scaling:0
          
          # Horizontale Bildposition im Ausgabefenster
          # [0..100], default: 50
          #video.output.horizontal_position:50
          
          # Vertikale Bildposition im Ausgabefenster
          # [0..100], default: 50
          #video.output.vertical_position:50
          
          # Choose speed over specification compliance
          # bool, default: 0
          #video.processing.ffmpeg_choose_speed_over_accuracy:0
          
          # Qualität der MPEG-4 Nachbearbeitungsstufe
          # [0..6], default: 3
          #video.processing.ffmpeg_pp_quality:3
          
          # Skip loop filter
          # { default  none  nonref  bidir  nonkey  all }, default: 0
          #video.processing.ffmpeg_skip_loop_filter:default
          
          # FFmpeg video decoding thread count
          # numeric, default: 1
          #video.processing.ffmpeg_thread_count:1
          
          # Gerät für CD-Audio
          # string, default: /dev/cdrom
          #media.audio_cd.device:/dev/cdrom
          
          # Laufwerk auf diesen Faktor verlangsamen
          # numeric, default: 4
          #media.audio_cd.drive_slowdown:4
          
          # CDDB abfragen
          # bool, default: 1
          #media.audio_cd.use_cddb:1
          
          # CDDB Serverport
          # numeric, default: 8880
          #media.audio_cd.cddb_port:8880
          
          # CDDB Servername
          # string, default: freedb.freedb.org
          #media.audio_cd.cddb_server:freedb.freedb.org
          
          # Pfad zum Sichen von Datenströmen
          # string, default: 
          #media.capture.save_dir:
          
          # Nummer der zu benutzenden DVB-Karte.
          # numeric, default: 0
          #media.dvb.adapter:0
          
          # Zuletzt gesehenen DVB-Kanal vermerken
          # bool, default: 1
          #media.dvb.remember_channel:1
          
          # Number of seconds until tuning times out.
          # numeric, default: 0
          #media.dvb.tuning_timeout:0
          
          # Enable the DVB GUI
          # bool, default: 1
          #media.dvb.gui_enabled:1
          
          # Zuletzt gesehener DVB-Kanal
          # numeric, default: -1
          #media.dvb.last_channel:-1
          
          # Standardsprache für die DVD-Wiedergabe
          # string, default: en
          #media.dvd.language:en
          
          # Region (1-8), aus der der DVD Player zu kommen scheint
          # numeric, default: 1
          #media.dvd.region:1
          
          # Gerät für DVD Wiedergabe
          # string, default: /dev/dvd
          #media.dvd.device:/dev/dvd
          
          # Pfad zum RAW-Device des DVD-Laufwerks
          # string, default: /dev/rdvd
          #media.dvd.raw_device:/dev/rdvd
          
          # Vorauseilendes Caching benutzen
          # bool, default: 1
          #media.dvd.readahead:1
          
          # CSS Entschlüsselungsmethode
          # { key  disc  title }, default: 0
          #media.dvd.css_decryption_method:key
          
          # Wiedergabemodus falls Titel/Kapitel angegeben
          # { entire dvd  one chapter }, default: 0
          #media.dvd.play_single_chapter:entire dvd
          
          # Einheit beim Suchen
          # { seek in program chain  seek in program }, default: 0
          #media.dvd.seek_behaviour:seek in program chain
          
          # Einheit für die Überspringen-Aktion
          # { skip program  skip part  skip title }, default: 0
          #media.dvd.skip_behaviour:skip program
          
          # Startverzeichnis für Dateisuche
          # string, default: /usr/src/vdr-1.7.9
          #media.files.origin_path:/usr/src/vdr-1.7.9
          
          # Versteckte Dateien anzeigen
          # bool, default: 0
          #media.files.show_hidden_files:0
          
          # Netzwerkbandbreite
          # { 14.4 Kbps (Modem)  19.2 Kbps (Modem)  28.8 Kbps (Modem)  33.6 Kbps (Modem)  34.4 Kbps (Modem)  57.6 Kbps (Modem)  115.2 Kbps (ISDN)  262.2 Kbps (Cable/DSL)  393.2 Kbps (Cable/DSL)  524.3 Kbps (Cable/DSL) }, default: 10
          
          # Zeitüberschreitung für Netzwerkdatenströme (in Sekunden)
          # numeric, default: 30
          #media.network.timeout:30
          
          # Domains, die den HTTP Proxy umgehen
          # string, default: 
          #media.network.http_no_proxy:
          
          # HTTP Proxy Rechnername
          # string, default: 
          #media.network.http_proxy_host:
          
          # HTTP Proxy Passwort
          # string, default: 
          #media.network.http_proxy_password:
          
          # HTTP Proxy Portnummer
          # numeric, default: 80
          #media.network.http_proxy_port:80
          
          # HTTP Proxy Benutzername
          # string, default: 
          #media.network.http_proxy_user:
          
          # MMS-Protokoll
          # { auto  TCP  HTTP }, default: 0
          #media.network.mms_protocol:auto
          
          # Automatisch Spur/Eintrag weiterschalten bei VCDs
          # bool, default: 1
          #media.vcd.autoadvance:1
          
          # Standardlaufwerk für VCD bei automatischer Wiedergabe
          # { MPEG track  entry  segment  playback-control item }, default: 3
          #media.vcd.autoplay:playback-control item
          
          # VCD Positionierungsbereich
          # { auto  track  entry }, default: 0
          #media.vcd.length_reporting:auto
          
          # 'Ablegehnte' VCD LIDs anzeigen
          # bool, default: 0
          #media.vcd.show_rejected:0
          
          # Formatvorlage für Kommentarfeld eines VCD Datenstroms.
          # string, default: %P - Track %T
          #media.vcd.comment_format:%P - Track %T
          
          # Bitfeld für VCD Fehlersuche
          # numeric, default: 0
          #media.vcd.debug:0
          
          # Gerät für VCD Wiedergabe
          # string, default: /dev/cdrom
          #media.vcd.device:/dev/cdrom
          
          # Formatvorlage für Fenstertitle bei VCDs
          # string, default: %F - %I %N%L%S, disk %c of %C - %v %A
          #media.vcd.title_format:%F - %I %N%L%S, disk %c of %C - %v %A
          
          # v4l ALSA audio input device
          # string, default: plughw:0,0
          #media.video4linux.audio_device:plughw:0,0
          
          # Pfad zum V4L Radiogerät
          # string, default: /dev/radio0
          #media.video4linux.radio_device:/dev/radio0
          
          # Pfad zum V4L Videogerät
          # string, default: /dev/video0
          #media.video4linux.video_device:/dev/video0
          
          # v4l TV standard
          # { AUTO  PAL  NTSC  SECAM  OLD }, default: 0
          #media.video4linux.tv_standard:AUTO
          
          # Gerät für WinTV-PVR 250/350 (PVR) Plugin
          # string, default: /dev/video0
          #media.wintv_pvr.device:/dev/video0
          
          # default VDR host
          # string, default: xvdr://127.0.0.1#nocache;demux:mpeg_block
          #media.xvdr.default_mrl:xvdr://127.0.0.1#nocache;demux:mpeg_block
          
          # Fast (low-quality) OSD scaling
          # bool, default: 0
          #media.xvdr.fast_osd_scaling:0
          
          # number of buffers for HD content
          # numeric, default: 2500
          #media.xvdr.num_buffers_hd:2500
          
          # SRC tuning step
          # numeric, default: 5000
          #media.xvdr.scr_tuning_step:5000
          
          # Smoother SRC tuning
          # bool, default: 0
          #media.xvdr.smooth_scr_tuning:0
          
          # Pfad zum Real-Player-Codecs
          # string, default: 
          #decoder.external.real_codecs_path:
          
          # Pfad zu win32-Codecs
          # string, default: /usr/lib/codecs
          #decoder.external.win32_codecs_path:/usr/lib/codecs
          
          # opacity for the black parts of bitmapped subtitles
          # [0..100], default: 67
          #subtitles.bitmap.black_opacity:67
          
          # opacity for the colour parts of bitmapped subtitles
          # [0..100], default: 100
          #subtitles.bitmap.colour_opacity:100
          
          # Untertitelgröße
          # { tiny  small  normal  large  very large  huge }, default: 1
          #subtitles.separate.subtitle_size:small
          
          # Vertikaler Versatz für Untertitel
          # numeric, default: 0
          #subtitles.separate.vertical_offset:0
          
          # Zeichensatz für Untertitel
          # string, default: sans
          #subtitles.separate.font:sans
          
          # font for subtitles
          # string, default: 
          #subtitles.separate.font_freetype:
          
          # whether to use a freetype font
          # bool, default: 0
          #subtitles.separate.font_use_freetype:0
          
          # Zeichenkodierung für Untertitel
          # string, default: iso-8859-1
          #subtitles.separate.src_encoding:iso-8859-1
          
          # Benutze unskaliertes OSD falls möglich
          # bool, default: 1
          #subtitles.separate.use_unscaled_osd:1
          
          # Zu generierende Bilder/Sekunde
          # numeric, default: 14
          #effects.goom.fps:14
          
          # Goom Bildhöhe
          # numeric, default: 240
          #effects.goom.height:240
          
          # Goom Bildbreite
          # numeric, default: 320
          #effects.goom.width:320
          
          # Farbraumkonvertierungsmethode
          # { Fast but not photorealistic  Slow but looks better }, default: 0
          #effects.goom.csc_method:Fast but not photorealistic
          
          # number of video buffers
          # numeric, default: 500
          engine.buffers.video_num_buffers:250
          
          # Standardanzahl von Videobildern
          # numeric, default: 15
          #engine.buffers.video_num_frames:15
          
          # Priorität für Dekoder a/52
          # numeric, default: 0
          #engine.decoder_priorities.a/52:0
          
          # Priorität für Dekoder bitplane
          # numeric, default: 0
          #engine.decoder_priorities.bitplane:0
          
          # Priorität für Dekoder dts
          # numeric, default: 0
          #engine.decoder_priorities.dts:0
          
          # Priorität für Dekoder dvaudio
          # numeric, default: 0
          #engine.decoder_priorities.dvaudio:0
          
          # Priorität für Dekoder dxr3-mpeg2
          # numeric, default: 0
          #engine.decoder_priorities.dxr3-mpeg2:0
          
          # Priorität für Dekoder dxr3-spudec
          # numeric, default: 0
          #engine.decoder_priorities.dxr3-spudec:0
          
          # Priorität für Dekoder faad
          # numeric, default: 0
          #engine.decoder_priorities.faad:0
          
          # Priorität für Dekoder ffmpeg-wmv8
          # numeric, default: 0
          #engine.decoder_priorities.ffmpeg-wmv8:0
          
          # Priorität für Dekoder ffmpeg-wmv9
          # numeric, default: 0
          #engine.decoder_priorities.ffmpeg-wmv9:0
          
          # Priorität für Dekoder ffmpegaudio
          # numeric, default: 0
          #engine.decoder_priorities.ffmpegaudio:0
          
          # Priorität für Dekoder ffmpegvideo
          # numeric, default: 0
          #engine.decoder_priorities.ffmpegvideo:0
          
          # Priorität für Dekoder gdkpixbuf
          # numeric, default: 0
          #engine.decoder_priorities.gdkpixbuf:0
          
          # Priorität für Dekoder gsm610
          # numeric, default: 0
          #engine.decoder_priorities.gsm610:0
          
          # Priorität für Dekoder image
          # numeric, default: 0
          #engine.decoder_priorities.image:0
          
          # Priorität für Dekoder mad
          # numeric, default: 0
          #engine.decoder_priorities.mad:0
          
          # Priorität für Dekoder mpc
          # numeric, default: 0
          #engine.decoder_priorities.mpc:0
          
          # Priorität für Dekoder mpeg2
          # numeric, default: 0
          #engine.decoder_priorities.mpeg2:0
          
          # Priorität für Dekoder nsfdec
          # numeric, default: 0
          #engine.decoder_priorities.nsfdec:0
          
          # Priorität für Dekoder pcm
          # numeric, default: 0
          #engine.decoder_priorities.pcm:0
          
          # Priorität für Dekoder qta
          # numeric, default: 0
          #engine.decoder_priorities.qta:0
          
          # Priorität für Dekoder qtv
          # numeric, default: 0
          #engine.decoder_priorities.qtv:0
          
          # Priorität für Dekoder realadec
          # numeric, default: 0
          #engine.decoder_priorities.realadec:0
          
          # Priorität für Dekoder realvdec
          # numeric, default: 0
          #engine.decoder_priorities.realvdec:0
          
          # Priorität für Dekoder rgb
          # numeric, default: 0
          #engine.decoder_priorities.rgb:0
          
          # Priorität für Dekoder spucc
          # numeric, default: 0
          #engine.decoder_priorities.spucc:0
          
          # Priorität für Dekoder spucmml
          # numeric, default: 0
          #engine.decoder_priorities.spucmml:0
          
          # Priorität für Dekoder spudec
          # numeric, default: 0
          #engine.decoder_priorities.spudec:0
          
          # Priorität für Dekoder spudvb
          # numeric, default: 0
          #engine.decoder_priorities.spudvb:0
          
          # Priorität für Dekoder sputext
          # numeric, default: 0
          #engine.decoder_priorities.sputext:0
          
          # Priorität für Dekoder theora
          # numeric, default: 0
          #engine.decoder_priorities.theora:0
          
          # Priorität für Dekoder vdpau_h264
          # numeric, default: 0
          #engine.decoder_priorities.vdpau_h264:0
          
          # Priorität für Dekoder vdpau_mpeg12
          # numeric, default: 0
          #engine.decoder_priorities.vdpau_mpeg12:0
          
          # Priorität für Dekoder vdpau_vc1
          # numeric, default: 0
          #engine.decoder_priorities.vdpau_vc1:0
          
          # Priorität für Dekoder vorbis
          # numeric, default: 0
          #engine.decoder_priorities.vorbis:0
          
          # Priorität für Dekoder win32a
          # numeric, default: 0
          #engine.decoder_priorities.win32a:0
          
          # Priorität für Dekoder win32v
          # numeric, default: 0
          #engine.decoder_priorities.win32v:0
          
          # Priorität für Dekoder yuv
          # numeric, default: 0
          #engine.decoder_priorities.yuv:0
          
          # Medienformaterkennungsstrategie
          # { default  reverse  content  extension }, default: 0
          #engine.demux.strategy:default
          
          # xines Methode zum Kopieren von Speicher
          # { probe  libc  kernel  mmx  mmxext  sse }, default: 0
          engine.performance.memcpy_method:kernel
          
          # Erlaubter Prozentsatz für verworfene Frames
          # numeric, default: 10
          #engine.performance.warn_discarded_threshold:10
          
          # Erlaubter Prozentsatz für übersprungene Frames
          # numeric, default: 10
          #engine.performance.warn_skipped_threshold:10
          
          # Erlaube implizierte Änderungen an Konfiguration (z.B. durch MRL)
          # bool, default: 0
          #misc.implicit_config:0
          EOF
          
    Die config kann später noch individuell angepasst werden.
  18. streamdev-server konfigurieren
          cat > /etc/vdr/plugins/streamdev/streamdevhosts.conf << "EOF"
          # Begin /etc/vdr/plugins/streamdev/streamdevhosts.conf
          # streamdevhosts  This file describes a number of host addresses that
          #                 are allowed to connect to the streamdev server running
          #                 with the Video Disk Recorder (VDR) on this system.
          # Syntax:
          # IP-Address[/Netmask]
          #     
          127.0.0.1         # always accept localhost
          192.168.0.0/24	# alle hosts auf dem lokalen Netz.
          # End /etc/vdr/plugins/streamdev/streamdevhosts.conf
          EOF
          
  19. Erste Tests

    • System rebooten und X starten, falls nicht bereits geschehen
    • im xterm Fenster
                  vdr-sxfe --audio alsa --video vdpau --hotkeys --fullscreen   
                  
      Wenn alles funktioniert, sollte jetzt ein Bild kommen. Mit <STRG> + <ALT> + <+> kann die X Auflösung/Wiederholrate gewechselt werden, die Voreinstellung sind 50Hz.

externe Links