Ubuntu HD VDR mittels TechnoTrend S2-6400 - VDR

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Skripte mit Root-Rechten und ohne Passwortaufforderung ausführen)
K (Installation VDR)
Zeile 66: Zeile 66:
 
===Installation VDR===
 
===Installation VDR===
 
  cd /usr/local/src/vdr
 
  cd /usr/local/src/vdr
 +
apt-get install gettext
 +
apt-get install libncursesw5-dev
 
  make REMOTE=LIRC && make plugins && make install
 
  make REMOTE=LIRC && make plugins && make install
  

Version vom 11. Mai 2012, 00:00 Uhr

Inhaltsverzeichnis

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

Skripte/Module mit Root-Rechten und ohne Passwortaufforderung ausführen

Damit der Benutzer vdruser die benötigten Skripte/Module mit Root-Rechten und ohne Passwortaufforderung ausführen kann muss dies mittels visudo konfiguriert werden. Achtung! Die Einträge müssen untereinander und am Ende der Datei eingefügt werden.

visudo
vdruser ALL=(ALL) NOPASSWD: /usr/local/bin/vdrpoweroff.sh,/sbin/poweroff

Installation VDR

cd /usr/local/src/vdr
apt-get install gettext
apt-get install libncursesw5-dev
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

Skripte/Module mit Root-Rechten und ohne Passwortaufforderung ausführen

Damit der Benutzer vdruser die benötigten Skripte/Module mit Root-Rechten und ohne Passwortaufforderung ausführen kann muss dies mittels visudo konfiguriert werden. Achtung! Die Einträge müssen untereinander und am Ende der Datei eingefügt werden.

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

Skripte/Module mit Root-Rechten und ohne Passwortaufforderung ausführen

Damit der Benutzer vdruser die benötigten Skripte/Module mit Root-Rechten und ohne Passwortaufforderung ausführen kann muss dies mittels visudo konfiguriert werden. Achtung! Die Einträge müssen untereinander und am Ende der Datei eingefügt werden.

sudo visudo
vdruser ALL=(ALL) NOPASSWD: /etc/init.d/vdr

VDR in den Autostart aufnehmen

sudo update-rc.d vdr defaults 99 99

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

Links

  1. Video Disc Recorder Homepage
  2. VDR FTP-Server
  3. VDR Portal