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.