Ubuntu HD VDR mittels Xine und VAAPI - VDR

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Installationsmedien herunterladen)
K (Falls nur ein Tuner der TV Karte genutzt wird)
 
(8 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 12: Zeile 12:
  
 
==Installation VDR==
 
==Installation VDR==
===VDR Verzeichnis vorbereiten und Installationsmedien entpacken===
 
sudo su -
 
 
cd /usr/local/src
 
tar -xjf /data/vdr/vdr-1.7.18.tar.bz2
 
ln -s vdr-1.7.18/ vdr
 
 
 
===Make.config erstellen und anpassen===
 
===Make.config erstellen und anpassen===
  cd /usr/local/src/vdr
+
  cd /data/vdr
  cp -a Make.config.template Make.config
+
  cp Make.config.template Make.config
 
  vi Make.config
 
  vi Make.config
  
 
  ### The directory environment:
 
  ### The directory environment:
  DVBDIR  = /usr/local/src/dvb/linux
+
  DVBDIR  = /data/dvb/linux
 
   
 
   
  LOCDIR  = /usr/local/src/vdr/locale
+
  LOCDIR  = /data/vdr/locale
  PLUGINDIR= /usr/local/src/vdr/PLUGINS
+
  PLUGINDIR= /data/vdr/PLUGINS
  
 
===VDR Konfigurationen ablegen===
 
===VDR Konfigurationen ablegen===
  cd /usr/local/src/vdr
+
  cd /soft/vdr
  cp -a svdrpsend.pl /usr/local/bin
+
  sudo cp -a svdrpsend.pl /usr/local/bin
  mkdir -p /etc/vdr/plugins /var/vdr
+
  sudo mkdir -p /etc/vdr/plugins /var/vdr
 +
sudo chown -R vdruser:vdruser /etc/vdr /var/vdr
 
  mv *.conf /etc/vdr
 
  mv *.conf /etc/vdr
 
  mv channels.conf.cable /etc/vdr
 
  mv channels.conf.cable /etc/vdr
Zeile 57: Zeile 51:
  
 
===Installation VDR===
 
===Installation VDR===
  cd /usr/local/src/vdr
+
  cd /data/vdr
  make REMOTE=LIRC && make plugins && make install
+
  make REMOTE=LIRC
 
+
make plugins
exit
+
sudo make install
  
 
====Fehlermeldung nach erfolgreicher VDR Installation====
 
====Fehlermeldung nach erfolgreicher VDR Installation====
Zeile 81: Zeile 75:
  
 
===runvdr anpassen===
 
===runvdr anpassen===
  cd /usr/local/bin
+
  sudo vi /usr/local/bin/runvdr
sudo vi runvdr
+
  
 
  #!/bin/bash
 
  #!/bin/bash
 
# runvdr: Loads the DVB driver and runs VDR
 
#
 
# If VDR exits abnormally, the driver will be reloaded
 
# and VDR restarted.
 
#
 
# In order to actually use this script you need to implement
 
# the functions DriverLoaded(), LoadDriver() and UnloadDriver()
 
# and maybe adjust the VDRPRG and VDRCMD to your particular
 
# requirements.
 
#
 
# Since this script loads the DVB driver, it must be started
 
# as user 'root'. Add the option "-u username" to run VDR
 
# under the given user name.
 
#
 
# Any command line parameters will be passed on to the
 
# actual 'vdr' program.
 
#
 
# See the main source file 'vdr.c' for copyright information and
 
# how to reach the author.
 
#
 
# $Id: runvdr 2.0 2006/05/14 16:02:05 kls Exp $
 
 
   
 
   
 
  export LANG=de_DE.utf8
 
  export LANG=de_DE.utf8
Zeile 118: Zeile 89:
 
         $*"
 
         $*"
 
   
 
   
  KILL="/usr/bin/killall -q -TERM"
+
  eval "$VDRCMD"
+
# Detect whether the DVB driver is already loaded
+
# and return 0 if it *is* loaded, 1 if not:
+
function DriverLoaded()
+
{
+
  return 1
+
}
+
+
# Load all DVB driver modules needed for your hardware:
+
function LoadDriver()
+
{
+
  return 0
+
}
+
+
# Unload all DVB driver modules loaded in LoadDriver():
+
function 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
+
  
 
===runvdr Skript ausführbar machen===
 
===runvdr Skript ausführbar machen===
  cd /usr/local/bin
+
  sudo chmod +x /usr/local/bin/runvdr
sudo chmod +x runvdr
+
  
 
===runvdr Skript als User root starten===
 
===runvdr Skript als User root starten===
Zeile 176: Zeile 111:
 
Das "runvdr" Skript könnte folgendermaßen erweitert werden:
 
Das "runvdr" Skript könnte folgendermaßen erweitert werden:
  
  cd /usr/local/bin
+
  sudo vi /usr/local/bin/runvdr
sudo vi runvdr
+
  
 
  VDRCMD="$VDRPRG -w 60 -c /etc/vdr -E /var/vdr -D0 -u vdruser \
 
  VDRCMD="$VDRPRG -w 60 -c /etc/vdr -E /var/vdr -D0 -u vdruser \

Aktuelle Version vom 14. Januar 2012, 17:57 Uhr

Inhaltsverzeichnis

[Bearbeiten] Installationsmedien herunterladen

cd /data
wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.18.tar.bz2
tar xf vdr-1.7.18.tar.bz2
ln -s vdr-1.7.18 vdr

[Bearbeiten] Videoverzeichnis vorbereiten

In diesem Verzeichnis werden später die VDR Aufnahmen abgelegt.

mkdir /video
chown vdruser:vdruser /video

[Bearbeiten] Installation VDR

[Bearbeiten] Make.config erstellen und anpassen

cd /data/vdr
cp Make.config.template Make.config
vi Make.config
### The directory environment:
DVBDIR   = /data/dvb/linux

LOCDIR   = /data/vdr/locale
PLUGINDIR= /data/vdr/PLUGINS

[Bearbeiten] VDR Konfigurationen ablegen

cd /soft/vdr
sudo cp -a svdrpsend.pl /usr/local/bin
sudo mkdir -p /etc/vdr/plugins /var/vdr
sudo chown -R vdruser:vdruser /etc/vdr /var/vdr
mv *.conf /etc/vdr
mv channels.conf.cable /etc/vdr
mv channels.conf.terr /etc/vdr

[Bearbeiten] Shutdownskript erstellen und ablegen

cd /usr/local/bin
vi vdrpoweroff.sh
#!/bin/bash
sudo /sbin/poweroff

und anschließend das Skript ausführbar machen:

cd /usr/local/bin
chmod +x vdrpoweroff.sh

[Bearbeiten] sudoers erweitern

Das Skript muss mit root-Rechten ausgeführt werden. Passt man sudoers wie hier gezeigt an, kann vdruser ohne zusätzliche Passworteingabe mit root-Rechten arbeiten.

visudo
vdruser ALL=(ALL) NOPASSWD: /usr/local/bin/vdrpoweroff.sh,/sbin/poweroff

[Bearbeiten] Installation VDR

cd /data/vdr
make REMOTE=LIRC
make plugins
sudo make install

[Bearbeiten] Fehlermeldung nach erfolgreicher VDR Installation

Falls nach der VDR Installation folgende "Fehlermeldung" auftaucht kann diese ignoriert werden:

cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbhddevice.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbhddevice.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbsddevice.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbsddevice.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-hello.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-hello.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-osddemo.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-osddemo.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-pictures.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-pictures.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-skincurses.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-skincurses.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-status.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-status.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svccli.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svccli.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svcsvr.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svcsvr.so.1.7.18“ sind die gleiche Datei
cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svdrpdemo.so.1.7.18“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svdrpdemo.so.1.7.18“ sind die gleiche Datei
make: *** [install-plugins] Fehler 1

[Bearbeiten] VDR mittels runvdr starten

Das Skript runvdr wird benötigt um die DVB Treiber sowie den VDR zu starten.

[Bearbeiten] runvdr anpassen

sudo vi /usr/local/bin/runvdr
#!/bin/bash

export LANG=de_DE.utf8
export LC_COLLATE=de_DE.utf8

PATH=/usr/local/bin:$PATH
VDRPRG="/usr/local/bin/vdr"
VDRCMD="$VDRPRG -w 60 -c /etc/vdr -E /var/vdr -u vdruser \
        -L /usr/local/src/vdr/PLUGINS/lib \
        -s /usr/local/bin/vdrpoweroff.sh \
        $*"

eval "$VDRCMD"

[Bearbeiten] runvdr Skript ausführbar machen

sudo chmod +x /usr/local/bin/runvdr

[Bearbeiten] runvdr Skript als User root starten

Damit der vdruser das runvdr Skript ausführen kann benötigt dieser root Rechte.

sudo visudo
vdruser ALL=(ALL) NOPASSWD: /usr/local/bin/runvdr,/usr/local/bin/vdr,/usr/bin/killall

[Bearbeiten] Falls nur ein Tuner der TV Karte genutzt wird

Achtung! Falls nur 1 SAT-Kabel an die TV Karte angeschlossen ist kann nur 1 Tuner verwendet werden. Deshalb muss der zweite Tuner für den VDR deaktiviert werden.

Hier die VDR Parameter um einen der Tuner zu deaktivieren:

  -D NUM,   --device=NUM   use only the given DVB device (NUM = 0, 1, 2...)
                           there may be several -D options (default: all DVB
                           devices will be used)

Das "runvdr" Skript könnte folgendermaßen erweitert werden:

sudo vi /usr/local/bin/runvdr
VDRCMD="$VDRPRG -w 60 -c /etc/vdr -E /var/vdr -D0 -u vdruser \

somit wird nur 1 Tuner der TV-Karte genutzt.

[Bearbeiten] VDR auf non-root User umstellen

sudo chown -R vdruser.vdruser /usr/local/src/vdr
sudo chown -R vdruser.vdruser /usr/local/src/vdr/
sudo chown -R vdruser.vdruser /etc/vdr/
sudo chown -R vdruser.vdruser /var/vdr/
sudo chown -R vdruser.vdruser /usr/local/bin/runvdr
sudo chown -R vdruser.vdruser /usr/local/bin/svdrpsend.pl
sudo chown -R vdruser.vdruser /usr/local/bin/vdr
sudo chown -R vdruser.vdruser /usr/local/bin/vdrpoweroff.sh

[Bearbeiten] VDR auf Lauffähigkeit überprüfen

Achtung! Bei diesen Test´s wird noch kein TV Bild angezeigt. Hier wird erstmal die grundsätzliche Lauffähigkeit des VDR´s geprüft. Sobald der VDR ordnungsgemäß läuft gehts mit den nächsten Schritten und dem TV Ausgabeplugin für den VDR weiter.

[Bearbeiten] VDR manuell starten und Log überprüfen

Am besten ist Ihr macht euch zwei SSH Session´s auf euren VDR auf.

[Bearbeiten] SSH Session 1

Hier wird das VDR Log geöffnet:

tail -f /var/log/syslog

[Bearbeiten] SSH Session 2

Hier wird der VDR manuell gestartet:

/usr/local/bin/runvdr

[Bearbeiten] VDR Logausgabe

Jetzt könnt Ihr auf der "SSH Session 1" genau mitverfolgen was der VDR macht. Wenn der VDR ordnungsgemäß läuft sollte es so aussehen:

May 15 12:57:24 vdr vdr: [3733] cTimeMs: using monotonic clock (resolution is 1 ns)
May 15 12:57:24 vdr vdr: [3733] VDR version 1.7.18 started
May 15 12:57:24 vdr vdr: [3733] codeset is 'UTF-8' - known
May 15 12:57:24 vdr vdr: [3733] found 28 locales in /usr/local/src/vdr/locale
May 15 12:57:24 vdr vdr: [3733] no locale for language code 'por'
May 15 12:57:24 vdr vdr: [3733] loading /etc/vdr/setup.conf
May 15 12:57:24 vdr vdr: [3733] loading /etc/vdr/sources.conf
May 15 12:57:24 vdr vdr: [3733] loading /etc/vdr/diseqc.conf
May 15 12:57:24 vdr vdr: [3733] loading /etc/vdr/channels.conf
May 15 12:57:24 vdr vdr: [3733] loading /etc/vdr/svdrphosts.conf
May 15 12:57:24 vdr vdr: [3733] loading /etc/vdr/keymacros.conf
May 15 12:57:24 vdr vdr: [3735] video directory scanner thread started (pid=3733, tid=3735)
May 15 12:57:24 vdr vdr: [3733] reading EPG data from /var/vdr/epg.data
May 15 12:57:24 vdr vdr: [3736] video directory scanner thread started (pid=3733, tid=3736)
May 15 12:57:24 vdr vdr: [3733] registered source parameters for 'A - ATSC'
May 15 12:57:24 vdr vdr: [3733] registered source parameters for 'C - DVB-C'
May 15 12:57:24 vdr vdr: [3733] registered source parameters for 'S - DVB-S'
May 15 12:57:24 vdr vdr: [3733] registered source parameters for 'T - DVB-T'
May 15 12:57:24 vdr vdr: [3733] probing /dev/dvb/adapter0/frontend0
May 15 12:57:24 vdr vdr: [3733] creating cDvbDevice
May 15 12:57:24 vdr vdr: [3733] new device number 1
May 15 12:57:25 vdr vdr: [3736] video directory scanner thread ended (pid=3733, tid=3736)
May 15 12:57:25 vdr vdr: [3735] video directory scanner thread ended (pid=3733, tid=3735)
May 15 12:57:25 vdr vdr: [3733] frontend 0/0 provides DVB-S2 with QPSK ("STV090x Multistandard")
May 15 12:57:25 vdr vdr: [3738] tuner on frontend 0/0 thread started (pid=3733, tid=3738)
May 15 12:57:25 vdr vdr: [3739] section handler thread started (pid=3733, tid=3739)
May 15 12:57:25 vdr vdr: [3733] probing /dev/dvb/adapter1/frontend0
May 15 12:57:25 vdr vdr: [3733] creating cDvbDevice
May 15 12:57:25 vdr vdr: [3733] new device number 2
May 15 12:57:25 vdr vdr: [3733] frontend 1/0 provides DVB-S2 with QPSK ("STV090x Multistandard")
May 15 12:57:25 vdr vdr: [3741] tuner on frontend 1/0 thread started (pid=3733, tid=3741)
May 15 12:57:25 vdr vdr: [3742] section handler thread started (pid=3733, tid=3742)
May 15 12:57:25 vdr vdr: [3733] found 2 DVB devices
May 15 12:57:25 vdr vdr: [3733] setting primary device to 1
May 15 12:57:25 vdr vdr: [3733] device 1 has no MPEG decoder
May 15 12:57:25 vdr vdr: [3733] assuming manual start of VDR
May 15 12:57:25 vdr vdr: [3733] SVDRP listening on port 6419
May 15 12:57:25 vdr vdr: [3733] setting current skin to "sttng"
May 15 12:57:25 vdr vdr: [3733] loading /etc/vdr/themes/sttng-default.theme
May 15 12:57:25 vdr vdr: [3733] ERROR: /dev/lircd: Datei oder Verzeichnis nicht gefunden
May 15 12:57:25 vdr vdr: [3733] ERROR: remote control LIRC not ready!
May 15 12:57:25 vdr vdr: [3743] KBD remote control thread started (pid=3733, tid=3743)
May 15 12:57:25 vdr vdr: [3733] remote control KBD - learning keys
May 15 12:57:25 vdr vdr: [3733] ERROR: no OSD provider available - using dummy OSD!
May 15 12:57:35 vdr vdr: [3733] switching to channel 1
May 15 12:57:35 vdr vdr: [3733] setting watchdog timer to 60 seconds
May 15 12:57:35 vdr vdr: [3733] OSD size changed to 720x480 @ 1
May 15 12:57:35 vdr vdr: [3733] ERROR: no OSD provider available - using dummy OSD!
May 15 12:57:36 vdr vdr: [3733] retuning due to modification of channel 1
May 15 12:57:36 vdr vdr: [3733] switching to channel 1


Die Error Meldungen im Log sind an dieser Stelle noch normal da noch kein Ausgabeplugin für das TV Bild gestartet ist.

[Bearbeiten] Links

  1. Video Disc Recorder Homepage
  2. VDR FTP-Server