Ubuntu VDR DVB-T mittels Xine und VDPAU - VDR
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.