Inhaltsverzeichnis

07 Vdr

Endlich kommen wir zum eigentlichen VDR.

Download

Zunächst laden wir diesen herunter.

cd /data/installfiles/vdr
wget ftp://ftp.tvdr.de/vdr/Developer/vdr-<VERSION>.tar.bz2 

Videoverzeichnis

Jetzt legen wir noch das Videoverzeichnis an, in welches der VDR seine Aufnahmen ablegt.

mkdir -p /data/video.0
ln -s /data/video.0 /video0
chown -R vdruser.vdruser /data/video.0

VDR vorbereiten

Den VDR müssen wir nun entpacken und verlinken.

cd /usr/local/src
tar -xjf /data/installfiles/vdr/vdr-<VERSION>.tar.bz2 
ln -s vdr-<VERSION>/ vdr

Hiernach patchen wir den VDR mit dem Extensionspatch.
Der Extensionspatch wird von Copperhead (mitglied des VDR-Portals) gepflegt und kann hier in der aktuellsten Version heruntergeladen werden.

Gepatcht wird so:

cd /data/installfiles/vdr
wget http://copperhead.htpc-forum.de/downloads/extensionpatch/extpngvdr<VERSION>.diff.gz
gunzip extpngvdr<VERSION>.diff.gz
cd /usr/local/src/vdr
patch -p1 < /data/installfiles/vdr/extpngvdr<VERSION>.diff

Make.config

Hieraus entsteht die Datei „Make.config.template“. Diese enthält nun die Anweisungen der einzelnen Patches, die
zum Kompilieren an- und ausgeschaltet werden können.

cp Make.config.template Make.config
vi Make.config

Hier der erste Teil dieser Datei der wie folgt aussehen muss.

### The C compiler and options:

CC       = gcc
CFLAGS   = -g -O3 -Wall

CXX      = g++
CXXFLAGS = -g -O3 -Wall -Woverloaded-virtual -Wno-parentheses

ifdef PLUGIN
CFLAGS   += -fPIC
CXXFLAGS += -fPIC
endif

### The directory environment:

#DVBDIR   = /usr/src/v4l-dvb/linux
MANDIR   = /usr/local/man
BINDIR   = /usr/local/bin

LOCDIR   = /usr/local/src/vdr/locale
PLUGINDIR= /usr/local/src/vdr/PLUGINS
PLUGINLIBDIR= $(PLUGINDIR)/lib
VIDEODIR = /video0
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

Hiernach kommen nun die einzelnen Patches. Diese kann man durch Löschen des Auskommentierungszeichen „#“ einschalten.
Eine übersicht der einzelnen Patches findet man hier und speziell für den Extensions-Patch-NG hier.

Konfigurationen und Scripte

Bevor wir den VDR kompilieren, legen wir noch einige Scripte an und kopieren andere wiederum in die richtigen Verzeichnisse.

cp -a svdrpsend.pl /usr/local/bin
mkdir -p /etc/vdr/plugins /var/vdr /var/cache/vdr
mv *.conf /etc/vdr
mv channels.conf.* /etc/vdr

Shutdown-Script erstellen.

vi /usr/local/bin/vdrpoweroff.sh

Inhalt aus vdrpoweroff.sh verwenden.

Script ausführbar machen

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

Runvdr-Script anlegen.

vi /usr/local/bin/runvdr

Inhalt aus runvdr verwenden.

Script ausführbar machen

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

Vorläufige „remote.conf“ erstellen. Diese wird später beim ersten Start des VDRs durch das automatische Anlernen der Fernbedienung erweitert.

vi /etc/vdr/remote.conf

Inhalt aus remoteconf verwenden.

Ab Ubuntu 10.04 muss noch „TinyXML“ installiert werden, damit der VDR kompiliert werden kann.
Die Pakete sind ab Ubuntu 10.10 in den Repositories drin.

apt-get install libtinyxml2.5.3 libtinyxml-dev

Ab dem VDR 1.7.21 muss noch folgendes installiert werden

apt-get install gettext-el

VDR installieren

Nun kann der VDR kompiliert und installiert werden.
Dazu gehen wir so vor:

cd /usr/local/src/vdr
make -j2 REMOTE=LIRC && make -j2 plugins && make install

Wenn nach diesem Vorgang ein Fehler kommt, wie folgt, dann ist da nicht weiter schlimm. Der VDR ist dennoch erfolgreich installiert worden.

Fehlermeldung nach erfolgreicher VDR Installation ignorieren

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

In der runvdr haben wir die Anweisung dass einige Sprachdateien exportiert werden.
Da das „locale“ „de_DE@euro ISO-8859-15“ noch nicht generiert wurde, generieren wir nun dieses.

vi /var/lib/locales/supported.d/de

Am Ende hinzufügen:

de_DE@euro ISO-8859-15

Locale generieren

locale-gen

Bevor der VDR getestet werden kann, müssen die bis dato erstellten Dateien dem „vdruser“ gehören.
Damit man nicht immer wieder (z.B. nach kompilieren neuer Plugins) einzelne Dateibesitzer anpassen muss,
führen wir das usermod-vdruser.sh-Script aus.
Dieses müssen wir aber noch vorher erstellen.

vi /data/installfiles/usermod-vdruser.sh

Inhalt aus usermod-vdruser.sh verwenden.

Das Script muss natürlich wieder ausführbar gemacht werden.

chmod a+x /data/installfiles/usermod-vdruser.sh
/data/installfiles/usermod-vdruser.sh

VDR testen

Nachdem nun alles erledigt ist, testen wir den VDR ob dieser auch läuft.
Dazu öffnen wir uns eine 2. SSH-Session.

In der 1. SSH Session öffnen wir das syslog, um zu sehen was der VDR ausgibt.

tail -f /var/log/syslog

Auf der 2. SSH Session starten wir den VDR.

/usr/local/bin/runvdr

Die folgende Ausgabe des syslog ist soweit in Ordnung. Die letzte Zeile signalisiert nur,
dass der VDR keinen OSD-Provider wie „xineliboutput“ geladen hat und nun ein Dummy-OSD lädt.

Oct 11 21:21:01 vdr vdr: [3317] found 2 DVB devices
Oct 11 21:21:01 vdr vdr: [3317] setting primary device to 1
Oct 11 21:21:01 vdr vdr: [3317] device 1 has no MPEG decoder
Oct 11 21:21:01 vdr vdr: [3317] assuming manual start of VDR
Oct 11 21:21:01 vdr vdr: [3317] SVDRP listening on port 6419
Oct 11 21:21:01 vdr vdr: [3317] setting current skin to "sttng"
Oct 11 21:21:01 vdr vdr: [3317] loading /etc/vdr/themes/sttng-default.theme
Oct 11 21:21:01 vdr vdr: [3317] ERROR: /dev/lircd: No such file or directory
Oct 11 21:21:01 vdr vdr: [3317] ERROR: remote control LIRC not ready!
Oct 11 21:21:01 vdr vdr: [3326] KBD remote control thread started (pid=3317, tid=3326)
Oct 11 21:21:01 vdr vdr: [3317] remote control KBD - keys known
Oct 11 21:21:01 vdr vdr: [3317] switching to channel 1
Oct 11 21:21:01 vdr vdr: [3317] setting watchdog timer to 60 seconds
Oct 11 21:21:01 vdr vdr: [3317] OSD size changed to 720x480 @ 1
Oct 11 21:21:01 vdr vdr: [3317] ERROR: no OSD provider available - using dummy OSD!

Jetzt nur noch ein Ausgabe-Plugin wie „xineliboutput“ oder „xine“ installieren.
Die beschrieben ist das Ganze in den Plugins.