====== 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-.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-.tar.bz2 ln -s vdr-/ vdr Hiernach patchen wir den VDR mit dem Extensionspatch. Der Extensionspatch wird von Copperhead (mitglied des [[http://www.vdr-portal.de|VDR-Portals]]) gepflegt und kann [[http://copperhead.htpc-forum.de/downloads/extensionpatch/|hier]] in der aktuellsten Version heruntergeladen werden. Gepatcht wird so: cd /data/installfiles/vdr wget http://copperhead.htpc-forum.de/downloads/extensionpatch/extpngvdr.diff.gz gunzip extpngvdr.diff.gz cd /usr/local/src/vdr patch -p1 < /data/installfiles/vdr/extpngvdr.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 [[http://www.vdr-wiki.de/wiki/index.php/Patches|hier]] und speziell für den Extensions-Patch-NG [[http://www.vdr-wiki.de/wiki/index.php/Extensions-Patch|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 [[vdr:scripte:vdrpoweroff|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 [[vdr:scripte:runvdr|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 [[vdr:scripte:remoteconf|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 [[vdr:scripte:runvdr|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 [[vdr:scripte:usermod_vdruser|usermod-vdruser.sh]]-Script aus. Dieses müssen wir aber noch vorher erstellen. vi /data/installfiles/usermod-vdruser.sh Inhalt aus [[vdr:scripte:usermod_vdruser|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 [[vdr:system:plugins:start|Plugins]].