Ubuntu HD VDR mittels TechnoTrend S2-6400 - VDR
Sewn4 (Diskussion | Beiträge) (→Skript erstellen) |
Sewn4 (Diskussion | Beiträge) (→Skript erstellen) |
||
Zeile 268: | Zeile 268: | ||
sudo vi vdr | sudo vi vdr | ||
− | #! /bin/ | + | #! /bin/sh |
+ | # | ||
+ | # VDR initscript | ||
+ | # | ||
### BEGIN INIT INFO | ### BEGIN INIT INFO | ||
# Provides: VDR | # Provides: VDR | ||
− | # Required-Start: $ | + | # Required-Start: $remote_fs $syslog |
− | # Required-Stop: | + | # Required-Stop: $remote_fs $syslog |
# Default-Start: 2 3 4 5 | # Default-Start: 2 3 4 5 | ||
# Default-Stop: 0 1 6 | # Default-Stop: 0 1 6 | ||
− | # Short-Description: | + | # Short-Description: VDR |
− | # Description: Start | + | # Description: Start Video Disc Recorder |
### END INIT INFO | ### END INIT INFO | ||
Zeile 284: | Zeile 287: | ||
SCRIPTNAME=/etc/init.d/$NAME | SCRIPTNAME=/etc/init.d/$NAME | ||
− | + | set -e | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
case "$1" in | case "$1" in | ||
start) | start) | ||
− | + | echo -n "Starting $DESC: " | |
− | + | sudo /usr/local/bin/runvdr & | |
− | + | echo "$NAME." | |
− | + | ;; | |
stop) | stop) | ||
− | + | echo -n "Stopping $DESC: " | |
− | + | sudo killall vdr && sudo killall runvdr | |
− | + | echo "$NAME." | |
− | + | ;; | |
+ | restart|force-reload) | ||
+ | echo -n "Restarting $DESC: " | ||
+ | $0 stop | ||
+ | sleep 1 | ||
+ | $0 start | ||
+ | ;; | ||
*) | *) | ||
− | + | N=/etc/init.d/$NAME | |
− | + | # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 | |
− | + | echo "Usage: $N {start|stop|restart|force-reload}" >&2 | |
+ | exit 1 | ||
+ | ;; | ||
esac | esac | ||
Version vom 6. Mai 2012, 11:07 Uhr
Downloadverzeichnis vorbereiten
mkdir -p /data/installfiles/vdr
Installationsmedien herunterladen
cd /data/installfiles/vdr wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.27.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 adduser vdruser video sudo adduser vdruser audio
Danach müsst Ihr euch erneut am System anmelden damit die neue Gruppenzugehörigkeit "angezogen" wird.
Installation VDR
VDR Verzeichnis vorbereiten und Installationsmedien entpacken
sudo su -
cd /usr/local/src tar -xjf /data/installfiles/vdr/vdr-1.7.27.tar.bz2 ln -s vdr-1.7.27/ 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 /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.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbhddevice.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbsddevice.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-dvbsddevice.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-epgtableid0.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-epgtableid0.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-hello.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-hello.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-osddemo.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-osddemo.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-pictures.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-pictures.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-rcu.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-rcu.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-skincurses.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-skincurses.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-status.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-status.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svccli.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svccli.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svcsvr.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svcsvr.so.1.7.27“ sind die gleiche Datei cp: „/usr/local/src/vdr/PLUGINS/lib/libvdr-svdrpdemo.so.1.7.27“ und „/usr/local/src/vdr/PLUGINS/lib/libvdr-svdrpdemo.so.1.7.27“ 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
Achtung! Die erste Zeile im Skript muss von #!/bin/sh nach #!/bin/bash angepasst werden.
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.template 2.2 2011/04/17 12:34:30 kls Exp $ export LANG=de_DE.utf8 export LC_COLLATE=de_DE.utf8 VDRPRG="/usr/local/bin/vdr" VDROPTIONS="-w 60 -c /etc/vdr -E /var/vdr -u vdruser -L /usr/local/src/vdr/PLUGINS/lib -s /usr/local/bin/vdrpoweroff.sh" # For other options see manpage vdr.1 VDRPLUGINS="" # You will need to select your output device plugin if you want # to use VDR to watch video. For instance, for a "Full Featured" # SD DVB card that would be # VDRPLUGINS="-P dvbsddevice" # For a "Full Featured" HD DVB card you could use # VDRPLUGINS="-P dvbhddevice" # There are also other output device plugins available, see # http://www.vdr-wiki.de/wiki/index.php/Plugins. VDRCMD="$VDRPRG $VDROPTIONS $VDRPLUGINS $*" 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
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
VDROPTIONS="-w 60 -c /etc/vdr -E /var/vdr -D0 -u vdruser -L /usr/local/src/vdr/PLUGINS/lib -s /usr/local/bin/vdrpoweroff.sh"
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 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
svdrphosts.conf anpassen
cd /etc/vdr/ vi svdrphosts.conf
# svdrphosts This file describes a number of host addresses that # are allowed to connect to the SVDRP port of the Video # Disk Recorder (VDR) running on this system. # Syntax: # # IP-Address[/Netmask] # 127.0.0.1 # always accept localhost 192.168.0.0/24 # Euer Netzwerk #192.168.100.0/24 # any host on the local net #204.152.189.113 # a specific host #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)
VDR in den Autostart
Skript erstellen
cd /etc/init.d/ sudo vi vdr
#! /bin/sh # # VDR initscript # ### BEGIN INIT INFO # Provides: VDR # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: VDR # Description: Start Video Disc 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 set -e case "$1" in start) echo -n "Starting $DESC: " sudo /usr/local/bin/runvdr & echo "$NAME." ;; stop) echo -n "Stopping $DESC: " sudo killall vdr && sudo killall runvdr echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " $0 stop sleep 1 $0 start ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
Skript ausführbar machen
cd /etc/init.d sudo chmod +x vdr
Skript als User root starten
Damit der vdruser das Skript ausführen kann benötigt dieser root Rechte.
sudo visudo
vdruser ALL=(ALL) NOPASSWD: /etc/init.d/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
oder mittels Autostartskript
/etc/init.d/vdr start
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:
Mar 27 21:16:59 vdr vdr: [2216] VDR version 1.7.27 started Mar 27 21:16:59 vdr vdr: [2216] switched to user 'vdruser' Mar 27 21:16:59 vdr vdr: [2216] codeset is 'UTF-8' - known Mar 27 21:16:59 vdr vdr: [2216] found 28 locales in /usr/local/src/vdr/locale Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/setup.conf Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/sources.conf Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/diseqc.conf Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/scr.conf Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/channels.conf Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/timers.conf Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/svdrphosts.conf Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/remote.conf Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/keymacros.conf Mar 27 21:16:59 vdr vdr: [2217] video directory scanner thread started (pid=2216, tid=2217) Mar 27 21:16:59 vdr vdr: [2218] video directory scanner thread started (pid=2216, tid=2218) Mar 27 21:16:59 vdr vdr: [2216] registered source parameters for 'A - ATSC' Mar 27 21:16:59 vdr vdr: [2216] registered source parameters for 'C - DVB-C' Mar 27 21:16:59 vdr vdr: [2216] registered source parameters for 'S - DVB-S' Mar 27 21:16:59 vdr vdr: [2216] registered source parameters for 'T - DVB-T' Mar 27 21:16:59 vdr vdr: [2216] probing /dev/dvb/adapter0/frontend0 Mar 27 21:16:59 vdr vdr: [2216] creating cDvbDevice Mar 27 21:16:59 vdr vdr: [2216] new device number 1 Mar 27 21:16:59 vdr vdr: [2219] epg data reader thread started (pid=2216, tid=2219) Mar 27 21:16:59 vdr vdr: [2219] reading EPG data from /var/vdr/epg.data Mar 27 21:16:59 vdr vdr: [2218] video directory scanner thread ended (pid=2216, tid=2218) Mar 27 21:16:59 vdr vdr: [2217] video directory scanner thread ended (pid=2216, tid=2217) Mar 27 21:16:59 vdr vdr: [2216] frontend 0/0 provides DVB-S,DVB-S2,DSS with QPSK ("STV090x Multistandard") Mar 27 21:16:59 vdr vdr: [2221] tuner on frontend 0/0 thread started (pid=2216, tid=2221) Mar 27 21:16:59 vdr vdr: [2221] cTimeMs: using monotonic clock (resolution is 1 ns) Mar 27 21:16:59 vdr vdr: [2222] section handler thread started (pid=2216, tid=2222) Mar 27 21:16:59 vdr vdr: [2216] probing /dev/dvb/adapter1/frontend0 Mar 27 21:16:59 vdr vdr: [2216] creating cDvbDevice Mar 27 21:16:59 vdr vdr: [2216] new device number 2 Mar 27 21:16:59 vdr vdr: [2216] frontend 1/0 provides DVB-S,DVB-S2,DSS with QPSK ("STV090x Multistandard") Mar 27 21:16:59 vdr vdr: [2224] tuner on frontend 1/0 thread started (pid=2216, tid=2224) Mar 27 21:16:59 vdr vdr: [2216] found 2 DVB devices Mar 27 21:16:59 vdr vdr: [2216] setting primary device to 1 Mar 27 21:16:59 vdr vdr: [2225] section handler thread started (pid=2216, tid=2225) Mar 27 21:16:59 vdr vdr: [2216] device 1 has no MPEG decoder Mar 27 21:16:59 vdr vdr: [2216] assuming manual start of VDR Mar 27 21:16:59 vdr vdr: [2216] SVDRP listening on port 6419 Mar 27 21:16:59 vdr vdr: [2216] setting current skin to "sttng" Mar 27 21:16:59 vdr vdr: [2216] loading /etc/vdr/themes/sttng-default.theme Mar 27 21:16:59 vdr vdr: [2216] remote control LIRC - keys known Mar 27 21:16:59 vdr vdr: [2216] switching to channel 1 Mar 27 21:16:59 vdr vdr: [2216] setting watchdog timer to 60 seconds Mar 27 21:16:59 vdr vdr: [2226] LIRC remote control thread started (pid=2216, tid=2226) Mar 27 21:16:59 vdr vdr: [2216] OSD size changed to 720x480 @ 1 Mar 27 21:16:59 vdr vdr: [2216] ERROR: no OSD provider available - using dummy OSD! Mar 27 21:17:01 vdr vdr: [2219] epg data reader thread ended (pid=2216, tid=2219)
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