Ubuntu VDR DVB-T mittels Xine und VDPAU - VDR

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Downloadverzeichnis vorbereiten

mkdir -p /data/installfiles/vdr

Installationsmedien herunterladen

cd /data/installfiles/vdr
wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.18.tar.bz2

Videoverzeichnis vorbereiten

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

mkdir -p /data/vdrrecords
cd /
sudo ln -s /data/vdrrecords/ video

VDR Verzeichnis vorbereiten und Installationsmedien entpacken

sudo su -
cd /usr/local/src
tar -xjf /data/installfiles/vdr/vdr-1.7.18.tar.bz2 
ln -s vdr-1.7.18/ vdr

Make.config erstellen und anpassen

cd /usr/local/src/vdr
cp -a Make.config.template Make.config
vi Make.config

LOCDIR   = /usr/local/src/vdr/locale
PLUGINDIR= /usr/local/src/vdr/PLUGINS

VDR Konfigurationen ablegen

cd /usr/local/src/vdr
cp -a svdrpsend.pl /usr/local/bin
mkdir -p /etc/vdr/plugins /var/vdr
mv *.conf /etc/vdr
mv channels.conf.cable /etc/vdr
mv channels.conf.terr /etc/vdr
mv /etc/vdr/channels.conf /etc/vdr/channels.conf_sat

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

Nun als Besitzer des Skripts „root“ auswählen und s-bit setzen, um es künftig mit dessen Rechten auszuführen

cd /usr/local/bin
sudo chown root:root vdrpoweroff.sh
sudo chmod +s vdrpoweroff.sh

sudoers erweitern

Damit der vdruser das System stoppen kann benötigt dieser root Rechte für das angelegte Skript. Achtung! Der untiger Eintrag muss als letzte Zeile hinzugefügt werden.

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

Installation VDR

cd /usr/local/src/vdr
make && make plugins && make install
exit

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-dvbsddevice.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbsddevice.so.1.7.17â sind die gleiche Datei
cp: â/usr/local/src/vdr/PLUGINS/lib/libvdr-hello.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-hello.so.1.7.17â sind die gleiche Datei
cp: â/usr/local/src/vdr/PLUGINS/lib/libvdr-osddemo.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-osddemo.so.1.7.17â sind die gleiche Datei
cp: â/usr/local/src/vdr/PLUGINS/lib/libvdr-pictures.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-pictures.so.1.7.17â sind die gleiche Datei
cp: â/usr/local/src/vdr/PLUGINS/lib/libvdr-skincurses.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-skincurses.so.1.7.17â sind die gleiche Datei
cp: â/usr/local/src/vdr/PLUGINS/lib/libvdr-status.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-status.so.1.7.17â sind die gleiche Datei
cp: â/usr/local/src/vdr/PLUGINS/lib/libvdr-svccli.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-svccli.so.1.7.17â sind die gleiche Datei
cp: â/usr/local/src/vdr/PLUGINS/lib/libvdr-svcsvr.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-svcsvr.so.1.7.17â sind die gleiche Datei
cp: â/usr/local/src/vdr/PLUGINS/lib/libvdr-svdrpdemo.so.1.7.17â und â/usr/local/src/vdr/PLUGINS/lib/libvdr-svdrpdemo.so.1.7.17â sind die gleiche Datei
make: *** [install-plugins] Fehler 1

VDR mittels runvdr starten

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

runvdr anpassen

cd /usr/local/bin
sudo vi runvdr
#!/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 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 \
        $*"

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

# 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

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

runvdr als root starten

Damit der vdruser das runvdr Skript ausführen kann benötigt dieser root Rechte. Achtung! Der untiger Eintrag muss als letzte Zeile hinzugefügt werden.

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

VDR auf non-root User umstellen

sudo chown -R vdruser.vdruser /usr/local/src/vdr
sudo chown -R vdruser.vdruser /usr/local/src/vdr-1.7.17/
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

remote.conf erstellen

Die Tastatur wird erst später über das VDR OSD angelernt. Die untigen Werte könnt Ihr vorerst so übernehmen.

cd /etc/vdr
vi remote.conf

KBD.Up         00000000001B4F41
KBD.Down       00000000001B4F42
KBD.Menu       0000001B5B31397E    #F8
KBD.Ok         000000000000000D    #Enter
KBD.Back       000000001B5B347E    #Backspace
KBD.Left       00000000001B4F44
KBD.Right      00000000001B4F43
KBD.Red        00000000001B4F50    #F1
KBD.Green      00000000001B4F51    #F2
KBD.Yellow     00000000001B4F52    #F3
KBD.Blue       00000000001B4F53    #F4
KBD.0          0000000000000030
KBD.1          0000000000000031
KBD.2          0000000000000032
KBD.3          0000000000000033
KBD.4          0000000000000034
KBD.5          0000000000000035
KBD.6          0000000000000036
KBD.7          0000000000000037
KBD.8          0000000000000038
KBD.9          0000000000000039
KBD.Power      0000001B5B32347E    #F12
KBD.Volume+    000000000000002B    #+
KBD.Volume-    000000000000002D    #-
KBD.Mute       0000001B5B32307E    #F9

DVB-T channels.conf mittels w_scan erstellen

Download w_scan

cd /data/installfiles/vdr/
wget http://wirbel.htpc-forum.de/w_scan/w_scan-20110206.tar.bz2

w_scan installieren

sudo su -
cd /tmp
tar -xjf /data/installfiles/vdr/w_scan-20110206.tar.bz2
cd w_scan-20110206/
./configure && make && make install
exit

DVB-T Kanalliste erstellen

sudo modprobe budget_ci
w_scan -f t -c DE -o 7 >> /etc/vdr/channels.conf

VDR in den Autostart

Damit der VDR zukünftig automatisch mit der grafischen Oberfläche startet muss das runvdr Skript in den Autostart hinzugefügt werden.

  • System -> Einstellungen -> Startprogramme -> Hinzufügen ->
Name:       VDR
Befehl:     /usr/local/bin/runvdr
Kommentar:  VDR Startskript

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 Ausgabeplugin für den VDR weiter.

VDR manuell starten und Log überprüfen

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

SSH Session 1

Hier wird das VDR Log geöffnet:

tail -f /var/log/user.log

SSH Session 2

Hier wird der VDR manuell gestartet:

/usr/local/bin/runvdr

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:

Jun 23 14:42:49 ws02 vdr: [2296] VDR version 1.7.17 started
Jun 23 14:42:49 ws02 vdr: [2296] codeset is 'UTF-8' - known
Jun 23 14:42:49 ws02 vdr: [2296] found 26 locales in /usr/local/src/vdr/locale
Jun 23 14:42:49 ws02 vdr: [2296] creating directory /etc/vdr/themes
Jun 23 14:42:49 ws02 vdr: [2296] loading /etc/vdr/sources.conf
Jun 23 14:42:49 ws02 vdr: [2296] loading /etc/vdr/diseqc.conf
Jun 23 14:42:49 ws02 vdr: [2296] loading /etc/vdr/channels.conf
Jun 23 14:42:49 ws02 vdr: [2296] loading /etc/vdr/svdrphosts.conf
Jun 23 14:42:49 ws02 vdr: [2296] loading /etc/vdr/keymacros.conf
Jun 23 14:42:49 ws02 vdr: [2298] video directory scanner thread started (pid=2296, tid=2298)
Jun 23 14:42:49 ws02 vdr: [2299] video directory scanner thread started (pid=2296, tid=2299)
Jun 23 14:42:49 ws02 vdr: [2296] registered source parameters for 'A - ATSC'
Jun 23 14:42:49 ws02 vdr: [2296] registered source parameters for 'C - DVB-C'
Jun 23 14:42:49 ws02 vdr: [2296] registered source parameters for 'S - DVB-S'
Jun 23 14:42:49 ws02 vdr: [2296] registered source parameters for 'T - DVB-T'
Jun 23 14:42:49 ws02 vdr: [2296] probing /dev/dvb/adapter0/frontend0
Jun 23 14:42:49 ws02 vdr: [2296] creating cDvbDevice
Jun 23 14:42:49 ws02 vdr: [2296] new device number 1
Jun 23 14:42:49 ws02 vdr: [2299] video directory scanner thread ended (pid=2296, tid=2299)
Jun 23 14:42:49 ws02 vdr: [2298] video directory scanner thread ended (pid=2296, tid=2298)
Jun 23 14:42:54 ws02 vdr: [2296] frontend 0/0 provides DVB-T with QPSK,QAM16,QAM64 ("Philips TDA10046H DVB-T")
Jun 23 14:42:54 ws02 vdr: [2296] found 1 DVB device
Jun 23 14:42:54 ws02 vdr: [2296] setting primary device to 1
Jun 23 14:42:54 ws02 vdr: [2296] device 1 has no MPEG decoder
Jun 23 14:42:54 ws02 vdr: [2296] assuming manual start of VDR
Jun 23 14:42:54 ws02 vdr: [2296] SVDRP listening on port 6419
Jun 23 14:42:54 ws02 vdr: [2312] section handler thread started (pid=2296, tid=2312)
Jun 23 14:42:54 ws02 vdr: [2311] tuner on frontend 0/0 thread started (pid=2296, tid=2311)
Jun 23 14:42:54 ws02 vdr: [2296] setting current skin to "sttng"
Jun 23 14:42:54 ws02 vdr: [2296] loading /etc/vdr/themes/sttng-default.theme
Jun 23 14:42:54 ws02 vdr: [2296] remote control KBD - learning keys
Jun 23 14:42:54 ws02 vdr: [2296] ERROR: no OSD provider available - using dummy OSD!
Jun 23 14:42:54 ws02 vdr: [2317] KBD remote control thread started (pid=2296, tid=2317)
Jun 23 14:43:04 ws02 vdr: [2296] setting watchdog timer to 60 seconds
Jun 23 14:43:04 ws02 vdr: [2296] OSD size changed to 720x480 @ 1
Jun 23 14:43:04 ws02 vdr: [2296] ERROR: no OSD provider available - using dummy OSD!

Die Error Meldung im Log ist derzeit noch normal da noch kein Ausgabeplugin für das TV Bild installiert ist.

Links

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