Ubuntu HD VDR mittels TechnoTrend S2-6400 - VDR
Sewn4 (Diskussion | Beiträge) (→runvdr Skript ausführbar machen) |
Sewn4 (Diskussion | Beiträge) (→Falls nur ein Tuner der TV Karte genutzt wird) |
||
Zeile 182: | Zeile 182: | ||
Das "runvdr" Skript könnte folgendermaßen erweitert werden: | Das "runvdr" Skript könnte folgendermaßen erweitert werden: | ||
− | + | sudo vi /usr/local/bin/runvdr | |
− | + | ||
VDRCMD="$VDRPRG -w 60 -c /etc/vdr -E /var/vdr -D0 -u vdruser \ | VDRCMD="$VDRPRG -w 60 -c /etc/vdr -E /var/vdr -D0 -u vdruser \ |
Version vom 13. Oktober 2011, 17:40 Uhr
Downloadverzeichnis vorbereiten
mkdir -p /data/installfiles/vdr
Installationsmedien herunterladen
cd /data/installfiles/vdr wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.21.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
vdruser in die Gruppe video aufnehmen
sudo usermod -aG video vdruser
Installation VDR
VDR Verzeichnis vorbereiten und Installationsmedien entpacken
sudo su -
cd /usr/local/src tar -xjf /data/installfiles/vdr/vdr-1.7.21.tar.bz2 ln -s vdr-1.7.21/ vdr
Make.config erstellen und anpassen
cd /usr/local/src/vdr cp -a Make.config.template Make.config vi Make.config
### The directory environment: DVBDIR = /usr/local/src/dvb/linux 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
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
sudoers erweitern
Das Skript muss mit root-Rechten ausgeführt werden. Passt man sudoers wie hier gezeigt an, kann vdruser ohne zusätzliche Passworteingabe mit root-Rechten arbeiten.
visudo
vdruser ALL=(ALL) NOPASSWD: /usr/local/bin/vdrpoweroff.sh,/sbin/poweroff
Installation VDR
cd /usr/local/src/vdr make REMOTE=LIRC && 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-dvbhddevice.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbhddevice.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbsddevice.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbsddevice.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-hello.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-hello.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-osddemo.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-osddemo.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-pictures.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-pictures.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-skincurses.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-skincurses.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-status.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-status.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svccli.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svccli.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svcsvr.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svcsvr.so.1.7.21“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svdrpdemo.so.1.7.21“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svdrpdemo.so.1.7.21“ sind die gleiche Datei make: *** [install-plugins] Fehler 1
VDR mittels runvdr starten
Das Skript runvdr wird benötigt um den VDR zu starten.
runvdr vorbereiten
sudo cp /usr/local/src/vdr/runvdr.template /usr/local/bin/runvdr
runvdr anpassen
sudo vi /usr/local/bin/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() { sudo modprobe saa716x_ff } # Unload all DVB driver modules loaded in LoadDriver(): function UnloadDriver() { sudo modprobe -r saa716x_ff } # 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
sudo chmod +x /usr/local/bin/runvdr
runvdr Skript als User root starten
Damit der vdruser das runvdr Skript ausführen kann benötigt dieser root Rechte.
sudo visudo
vdruser ALL=(ALL) NOPASSWD: /usr/local/bin/runvdr,/usr/local/bin/vdr,/usr/bin/killall
Falls nur ein Tuner der TV Karte genutzt wird
Achtung! Falls nur 1 SAT-Kabel an die TV Karte angeschlossen ist kann nur 1 Tuner verwendet werden. Deshalb muss der zweite Tuner für den VDR deaktiviert werden.
Hier die VDR Parameter um einen der Tuner zu deaktivieren:
-D NUM, --device=NUM use only the given DVB device (NUM = 0, 1, 2...) there may be several -D options (default: all DVB devices will be used)
Das "runvdr" Skript könnte folgendermaßen erweitert werden:
sudo vi /usr/local/bin/runvdr
VDRCMD="$VDRPRG -w 60 -c /etc/vdr -E /var/vdr -D0 -u vdruser \
somit wird nur 1 Tuner der TV-Karte genutzt.
VDR auf non-root User umstellen
sudo chown -R vdruser.vdruser /usr/local/src/vdr sudo chown -R vdruser.vdruser /usr/local/src/vdr/ 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
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
VDR in den Autostart
Skript erstellen
cd /etc/init.d/ sudo vi vdr
#! /bin/sh ### BEGIN INIT INFO # Provides: VDR # Required-Start: $network $syslog # Required-Stop: $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Video Disk Recorder # Description: Start the Video Disk Recorder. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Video Disc Recorder" NAME=vdr SCRIPTNAME=/etc/init.d/$NAME d_start() { /usr/local/bin/runvdr } d_stop() { killall vdr killall runvdr } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop}" >&2 exit 1 ;; esac exit 0
Skript ausführbar machen
cd /etc/init.d sudo chmod +x vdr
VDR in den Autostart aufnehmen
sudo update-rc.d vdr defaults
VDR aus dem Autostart entfernen
Falls das Skript mal nicht funktionieren sollte kann man dieses wieder aus dem Autostart entfernen:
sudo update-rc.d -f vdr remove
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 TV 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/syslog
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:
Aug 23 17:53:53 vdr vdr: [3647] VDR version 1.7.21 started Aug 23 17:53:53 vdr vdr: [3647] codeset is 'UTF-8' - known Aug 23 17:53:53 vdr vdr: [3647] found 28 locales in /usr/local/src/vdr/locale Aug 23 17:53:53 vdr vdr: [3647] creating directory /etc/vdr/themes Aug 23 17:53:53 vdr vdr: [3647] loading /etc/vdr/sources.conf Aug 23 17:53:53 vdr vdr: [3647] loading /etc/vdr/diseqc.conf Aug 23 17:53:53 vdr vdr: [3647] loading /etc/vdr/channels.conf Aug 23 17:53:53 vdr vdr: [3647] loading /etc/vdr/svdrphosts.conf Aug 23 17:53:53 vdr vdr: [3647] loading /etc/vdr/remote.conf Aug 23 17:53:53 vdr vdr: [3647] loading /etc/vdr/keymacros.conf Aug 23 17:53:53 vdr vdr: [3648] video directory scanner thread started (pid=3647, tid=3648) Aug 23 17:53:53 vdr vdr: [3647] registered source parameters for 'A - ATSC' Aug 23 17:53:53 vdr vdr: [3647] registered source parameters for 'C - DVB-C' Aug 23 17:53:53 vdr vdr: [3647] registered source parameters for 'S - DVB-S' Aug 23 17:53:53 vdr vdr: [3647] registered source parameters for 'T - DVB-T' Aug 23 17:53:53 vdr vdr: [3649] video directory scanner thread started (pid=3647, tid=3649) Aug 23 17:53:53 vdr vdr: [3647] probing /dev/dvb/adapter0/frontend0 Aug 23 17:53:53 vdr vdr: [3647] creating cDvbDevice Aug 23 17:53:53 vdr vdr: [3647] new device number 1 Aug 23 17:53:53 vdr vdr: [3649] video directory scanner thread ended (pid=3647, tid=3649) Aug 23 17:53:53 vdr vdr: [3648] video directory scanner thread ended (pid=3647, tid=3648) Aug 23 17:53:53 vdr vdr: [3647] frontend 0/0 provides DVB-S2 with QPSK ("STV090x Multistandard") Aug 23 17:53:53 vdr vdr: [3651] tuner on frontend 0/0 thread started (pid=3647, tid=3651) Aug 23 17:53:53 vdr vdr: [3652] section handler thread started (pid=3647, tid=3652) Aug 23 17:53:53 vdr vdr: [3651] cTimeMs: using monotonic clock (resolution is 1 ns) Aug 23 17:53:53 vdr vdr: [3647] probing /dev/dvb/adapter1/frontend0 Aug 23 17:53:53 vdr vdr: [3647] creating cDvbDevice Aug 23 17:53:53 vdr vdr: [3647] new device number 2 Aug 23 17:53:53 vdr vdr: [3647] frontend 1/0 provides DVB-S2 with QPSK ("STV090x Multistandard") Aug 23 17:53:53 vdr vdr: [3654] tuner on frontend 1/0 thread started (pid=3647, tid=3654) Aug 23 17:53:53 vdr vdr: [3655] section handler thread started (pid=3647, tid=3655) Aug 23 17:53:53 vdr vdr: [3647] found 2 DVB devices Aug 23 17:53:53 vdr vdr: [3647] setting primary device to 1 Aug 23 17:53:53 vdr vdr: [3647] device 1 has no MPEG decoder Aug 23 17:53:53 vdr vdr: [3647] assuming manual start of VDR Aug 23 17:53:53 vdr vdr: [3647] SVDRP listening on port 6419 Aug 23 17:53:53 vdr vdr: [3647] setting current skin to "sttng" Aug 23 17:53:53 vdr vdr: [3647] loading /etc/vdr/themes/sttng-default.theme Aug 23 17:53:53 vdr vdr: [3656] LIRC remote control thread started (pid=3647, tid=3656) Aug 23 17:53:53 vdr vdr: [3657] KBD remote control thread started (pid=3647, tid=3657) Aug 23 17:53:53 vdr vdr: [3647] remote control LIRC - keys known Aug 23 17:53:53 vdr vdr: [3647] remote control KBD - keys known Aug 23 17:53:53 vdr vdr: [3647] setting watchdog timer to 60 seconds Aug 23 17:53:53 vdr vdr: [3647] OSD size changed to 720x480 @ 1 Aug 23 17:53:53 vdr vdr: [3647] ERROR: no OSD provider available - using dummy OSD! Aug 23 17:53:57 vdr vdr: [3647] max. latency time 1 seconds
Die Error Meldungen im Log sind an dieser Stelle noch normal da noch kein Ausgabeplugin für das TV Bild gestartet ist.
System neu starten und prüfen ob der VDR automatisch gestartet wird
Hiermit ist die VDR Installation grundsätzlich abgeschlossen. Nach einem Systemneustart sollte der VDR automatisch gestartet werden. Das könnt Ihr wie oben beschrieben im VDR Log sehen.
sudo init 6