Kategorie:Ubuntu HD VDR mittels SoftHDDevice und VDPAU

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Einleitung

Diese Step-by-Step-Anleitung beschreibt die Installation und Konfiguration eines Video Disc Recorder (VDR) unter dem Linux Betriebssystem Ubuntu. Grundsätzlich gibt es zu Beginn eine Entscheidung zu treffen wie das VDR-System aufgebaut wird. Zum einen gibt es die Möglichkeit ein VDR-System mit einer Full-Featured TV-Karte aufzubauen. Hier ist es so das die Bildverarbeitung sowie die Bildausgabe über die TV-Karte erledigt werden. Die zweite Möglichkeit ist eine TV-Karte ohne Hardwaredecoder. Hier kann die Bildverarbeitung eine Grafikkarte oder die CPU erledigen und das Bild wird dann über eine Grafikkarte auf den TV ausgegeben. In dieser Anleitung habe ich mich für diese Art entschieden.

Das Internetforum VDR-Portal ist für eine Entscheidung sowie Fragen aller Art zum Thema VDR der richtige Ort.

Welche Hardware wird benötigt?

Passende Hardware für ein VDR-System ist sehr wichtig. Da es sehr viele verschiedene Hardwarekombinationen gibt, auf denen ein VDR-System lauffähig ist, empfehle ich als Einstieg das VDR-Portal. Dort gibt es bereits eine Diskussion über aktuell empfohlene Hardware VDR-PC HDTV 2013 Empfohlene Systeme.

Hardwarebeispiel

Hier die Übersicht von meinem VDR-System:

Gehäuse:               OrigenAE HTPC Aluminium S16V, schwarz
Netzteil:              Seasonic Platinum Series Fanless 400 ATX (passiv/fanless)
Mainboard:             Intel® DH77EB mATX
Prozessor              Intel® Celeron® Processor G1620T (FC-LGA4, "Ivy Bridge")
Prozessor Kühler       Dynatron K-618 (passiv/fanless)
Arbeitsspeicher:       Kingston 4GB Kit HyperX PC3-10667 DDR3-1333 CL7 (KHX1333C7D3K2/4G)
Festplatte 1 SSD:      Kingston SSDNow V300 2,5" SSD 60 GB (SV300S37A/60G)
Festplatte 2 HDD:      Western Digital WD20EFRX 2 TB (SATA 600, WD Red)
Grafikkarte:           Zotac Geforce GT 630 ZONE Edition (ZT-60408-20L passiv/fanless)
TV-Karte (vier Tuner): Digital Devices Cine S2 V6.5 + DuoFlex S2 (Bundle)

Die Grafikkarte in meinem Hardwarebeispiel wurd im VDR-Portal genau unter die Lupe genommen. Den Artikel findet Ihr hier [Review Zotac GeForce GT 630 ZONE Edition]

Welche Softwareversionen werden eingesetzt?

Betriebssystem

  • Ubuntu 13.10 x86_64 (Kernel 3.2.0-55-generic x86_64)

DVB Treiber

  • media_build_experimental DVB Treiber (aus dem CVS vom 07.08.2013)

IRTrans Infrared Control System

  • IRTrans Server 6.09.04 (vom 27.06.2012)

FFmpeg

  • FFmpeg 0.8.9-6

Video Disc Recorder

  • VDR 2.0.5

Video Disc Recorder Plugins

  • SoftHDDevice Plugin (aus dem CVS vom 07.08.2013)
  • LCDProc Plugin (aus dem CVS vom 28.03.2013)
  • skinpearlhd Plugin (aus dem CVS vom 22.01.2013)
  • Femon 2.0.0
  • markad Plugin (aus dem CVS vom 13.10.2013)
  • Live Plugin (aus dem CVS vom 04.05.2013)
  • EPGSearch Plugin (aus dem CVS vom 01.09.2013)
  • streamdev Plugin (aus dem CVS vom 21.10.2013)

Installation Betriebssystem

Die Ubuntu Installationsmedien können kostenfrei auf der Webseite http://www.ubuntu.com/ heruntergeladen werden.

Starten der Ubuntu Installation - Willkommen

Booten der Ubuntu CD und im darauf folgenden Bootmenü folgendes auswählen:

  • Sprache wählen: Deutsch - Der VDR läuft natürlich auch in einer anderen Sprache
  • danach "Ubuntu installieren" auswählen und die Installation starten.

Willkommen

  • anwählen: Deutsch

Installation von Ubuntu wird vorbereitet

  • anwählen: Aktualisierungen während der Installation herunterladen
  • anwählen: Software von Drittanbietern installieren

Installationsart

  • anwählen: Etwas Anderes (damit wir die Festplatte selbst partitionieren können)

Partitionen manuell festlegen

Alle Partitionen auf der Festplatte werden der Reihe nach folgendermaßen angelegt:

  • /dev/sda SSD Festplatte
  • Neue Partitionstabelle...
  • Freier Speicherplatz auswählen und folgendes hinzufügen:
Laufwerk Beschreibung der Partition Verwendung Einbindungspunkt Formatieren? Größe
/dev/sda1 Root Verzeichnis Ext4 / ja 60000 MB
/dev/sda5 Swap Verzeichnis Swap Rest von /dev/sda ca. 4000 MB
  • /dev/sdb HDD Festplatte
  • Neue Partitionstabelle...
  • Freier Speicherplatz auswählen und folgendes hinzufügen:
Laufwerk Beschreibung der Partition Verwendung Einbindungspunkt Formatieren? Größe
/dev/sdb1 Daten Verzeichnis Ext4 /data ja komplett /dev/sdb

Gerät für die Bootloader-Installation

Hier muss darauf geachtet werden das der Bootloader auf der richtigen Festplatte installiert wird. In meinem Fall ist das die SSD Festplatte auf der sich auch das Betriebssystem befindet.

Gerät für Bootloader-Installation:

  • /dev/sda ATA Corsair CMFSSD-3 (60.0GB)

Jetzt installieren

Sobald auf die Schaltfläche Jetzt installieren ausgewählt wird startet die Installation. Achtung! Ab diesem Zeitpunkt wird die Festplatte partitioniert und formatiert somit werden alle Daten auf der Festplatte gelöscht.

Wo befinden Sie sich?

  • Zeitzone: Berlin

Tastaturbelegung

  • Tastaturbelegung: Deutsch / Deutsch

Wer sind Sie?

  • Ihr name?: vdruser
  • Name Ihres Rechners: vdr01
  • Wählen Sie einen Benutzernamen: vdruser
  • Wählen Sie ein Passwort: hier ein Passwort vergeben
  • Automatische Anmeldung: aktivieren

Ein Konto, mit dem Sie sich bei allen Diensten rund um Ubuntu anmelden können

Benötige ich persönlich nicht.

  • Später einloggen

Konfiguration der Netzwerkkarte

Oben rechts auf dem Desktop befindet sich der "Power Button":

  • Power -> Systemeinstellungen... -> Netzwerk -> Kabelgebunden -> Optionen... -> IPv4-Einstellungen ->
Methode:      Manuell 
Adresse:      192.168.0.10    # Hier eine IP Adresse aus eurem Netzwerk vergeben
Netzmaske:    255.255.255.0
Gateway:      192.168.0.1     # Hier die Adresse von eurem Router eintragen
DNS-Server:   192.168.0.1     # Hier die Adresse von eurem Router eintragen

Remotezugriff auf die grafische Linux Oberfläche einrichten

Dieser Schritt ist optional. Falls Ihr von eurem Windows PC etc. auf die grafische Oberfläche von eurem VDR zugreifen möchtet könnt Ihr dies folgendermaßen einrichten:

  • Dash-Startseite -> Suchen -> Freigabe der Arbeitsfläche
anwählen:   Anderen Benutzern erlauben, Ihren Bildschirm anzuzeigen
anwählen:   Anderen Benutzern erlauben, Ihren Bildschirm zu steuern
abwählen:   Jeder Zugriff auf diesen Rechner muss bestätigt werden
anwählen:   Der Benutzer muss folgendes Passwort eingeben: <Euer Passwort>
anwählen:   UPnP-Router automatisch so konfigurieren, dass Ports geöffnet und weitergeleitet werden

Remotezugriff mittels VNC Client

Als Remoteclient kommt TightVNC zum Einsatz. TightVNC ist Freeware und kann kostenfrei auf der Webseite http://www.tightvnc.com/ heruntergeladen werden. Nach dem starten von TightVNC kann auf die grafische Oberfläche zugegriffen werden:

Remote Host: 192.168.0.10

Remotezugriff auf die Linux Konsole

Dieser Schritt ist optional. Falls Ihr von eurem Windows PC etc. auf die Linux Console von eurem VDR zugreifen möchtet könnt Ihr dies folgendermaßen einrichten:

  • Dash-Startseite -> Suchen -> Terminal
sudo apt-get install openssh-server

Remotezugriff mittels SSH client

Als Remoteclient kommt Putty zum Einsatz. Putty ist Freeware und kann kostenfrei auf der Webseite http://www.putty.org/ heruntergeladen werden. Nach dem starten von Putty kann auf die Linux Konsole zugegriffen werden:

Host name: 192.168.0.10

Datenverzeichnis für den Benutzer vdruser vorbereiten

Die von der Installationsroutine angelegte Partition gehört Standardmäßig dem User root. Mit folgendem Befehl kann die Rechte Struktur für euren vdruser übernommen werden, damit dieser später Zugriff auf das Dateisystem erlangt:

  • Dash-Startseite -> Suchen -> Terminal
sudo chown -R vdruser.vdruser /data

Datenverzeichnis für das Netzwerk freigeben

Damit mittels Filebrowser (Windows Explorer) auf das Datenverzeichnis von eurem VDR zugegriffen werden kann, kann eine Netzwerkfreigabe eingerichtet werden. Somit könnt Ihr später Dateien wie z.B. Filme über diese Freigabe mit anderen PCs im Netzwerk kopieren.

  • Dateien -> Rechner -> klick mit der Rechten Maustaste auf den Ordner "data" -> Freigabeoptionen ->
anwählen:       Diesen Ordner freigeben
Freigabename:   data
Kommentar:      data auf vdr01
anwählen:       Anderen erlauben, Dateien in diesem Ordner zu erstellen und zu löschen

-> Freigabe erstellen -> Die Zugriffsrechte automatisch setzen

  • Power -> Neustarten...

Bildschirmschoner konfigurieren

Damit später beim TV schauen nicht automatisch die grafische Oberfläche gesperrt wird, muss folgendes konfiguriert werden:

  • Power -> Systemeinstellungen... -> Helligkeit und Sperren ->
Bildschirm abschalten, wenn inaktiv für:   Nie
Sperren:                                   Aus
abwählen:                                  Mein Passwort verlangen, um Rechner aus Bereitschaft zu wecken

Ubuntu auf den aktuellen Softwarestand bringen

  • Dash-Startseite -> Suchen -> Terminal
sudo apt-get update
sudo apt-get upgrade
  • Power -> Neustarten...

Für VDR benötigte Systempakete installieren

  • Dash-Startseite -> Suchen -> Terminal
NVIDIA und VDPAU benötigte Pakete:
sudo apt-get install nvidia-current
sudo apt-get install libvdpau1 libvdpau-dev vdpauinfo
VDR benötigte Pakete:
sudo apt-get install mercurial libncurses5-dev libncursesw5-dev libproc-processtable-perl libfribidi-dev libcap-dev libjpeg-dev lcdproc libssl-dev libfreetype6-dev
sudo apt-get install libfontconfig1-dev g++ git
SoftHDDevice Plugin benötigte Pakete:
sudo apt-get install ffmpeg libavcodec-dev libasound2-dev libx11-xcb-dev libxcb-screensaver0-dev libxcb-dpms0-dev libxcb-util0-dev libxcb-icccm4-dev libxcb-ewmh-dev
sudo apt-get install libxcb-screensaver0-dbg libxcb-screensaver0-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-glx0-dev libxcb-shm0-dev libxcb-xv0-dev libxcb-randr0-dev

Nicht benötigte Systempakete löschen

  • Dash-Startseite -> Suchen -> Terminal
sudo apt-get autoremove

System neustarten

  • Dash-Startseite -> Suchen -> Terminal
sudo init 6

Inbetriebnahme der TV Karte

Die TV Karte muss zwingend an ein Floppy Stromkabel angeschlossen werden. Auch sollten beide Antennenanschlüsse an die beiden Tuner der TV-Karte angeschlossen werden. Falls Ihr nur einen der beiden Tuner an der TV-Karte nutzen möchtet so muss dies später beim starten vom VDR berücksichtigt werden.

Prüfen der eingebauten DVB-Karte

Mittels dem unten genannten Befehl kann geprüft werden ob die DVB-Karte vom System erkannt wird. Achtung! Falls die Karte nicht wie unten beschrieben angezeigt wird, gegebenfalls mal den PCIe-Slot wechseln und danach nochmals testen.

lspci -v | grep -i '7160' -A 4
02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 02)
	Subsystem: Technotrend Systemtechnik GmbH Device 300a
	Flags: bus master, fast devsel, latency 0, IRQ 10
	Memory at f9f00000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: <access denied>

Installation DVB-Treiber

Mit dieser hier beschriebenen Vorgehensweise werden die vorhandenen DVB-Kernelmodule durch die neuen ersetzt.

Downloadverzeichnis erstellen

mkdir -p /data/installfiles/dvb

DVB-Treiber herunterladen

cd /data/installfiles/dvb/
hg clone http://linuxtv.org/hg/~endriss/media_build_experimental
cd media_build_experimental/
make distclean
make download
make untar
cd /data/installfiles/dvb/
tar -czf media_build_experimental-rev-247.tar.gz media_build_experimental/

Welche Neuerungen gibt es im DVB-Treiber?

Hier können die Neuerungen im Repository eingesehen werden:

http://linuxtv.org/hg/~endriss/media_build_experimental

DVB Treiber vorbereiten und installieren

Die DVB Treiber müssen als Benutzer root vorbereitet und installiert werden. Mit folgendem Befehl wechselt man in den Benutzer root:

sudo su -

DVB Treiber vorbereiten

cd /usr/local/src/
cp -a /data/installfiles/dvb/media_build_experimental .
ln -s media_build_experimental/ dvb

Nicht benötigte Treiber Module deaktivieren

cd /usr/local/src/dvb
make distclean
make menuconfig
Multimedia support ->

< > FireDTV and FloppyDTV (mit der Leertaste das "<M>" abwählen)

Exit -> Exit -> Yes (Konfiguration speichern)

Fehlermeldungen beim Compilieren umgehen

Fehlermeldungen umgeht man, wenn vor der Kompilierung:

cpan Proc::ProcessTable

eingibt.

DVB Treiber Installation starten

cd /usr/local/src/dvb
make && make install

Neustart vom System

Nach erfolgreicher Installation vom DVB-Treiber ist ein Neustart vom System notwendig:

init 6

Link auf compiler.h setzen

Achtung! Dieser Link ist wichtig, da sonst der VDR im späteren Verlauf nicht installiert werden kann.

cd /usr/local/src/dvb/linux/include/linux
sudo ln -s /usr/src/linux-headers-$(uname -r)/include/linux/compiler.h compiler.h

Prüfen der DVB Treiber Installation

Im Modulverzeichnis des Kernels kann das Datum und Uhrzeit der DVB Module betrachtet werden.

Hier ist ersichtlich dass der DVB-Treiber am 17.01.2014 um 15:33 Uhr installiert wurde. Wenn am gleichen Tag das OS installiert wurde, sollte die Uhrzeit betrachtet werden.

cd /lib/modules/$(uname -r)/updates/media/
ls -l |grep dd*
-rw-r--r-- 1 root root  92376 Jan 17 15:33 ddbridge.ko

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: /sbin/modinfo
vdruser ALL=(ALL) NOPASSWD: /sbin/modprobe

DVB Module manuell laden

Um euch Modulparameter anzeigen zu lassen könnt Ihr folgenden Befehl verwenden:

sudo modinfo ddbridge
filename:       /lib/modules/3.11.0-12-generic/updates/media/ddbridge.ko
version:        0.9.9
license:        GPL
author:         Ralph Metzler, Metzler Brothers Systementwicklung
description:    Digital Devices PCIe Bridge
srcversion:     52FC505F5D8DA5ECD5AC8D7
alias:          pci:v0000DD01d00000201sv*sd*bc*sc*i*
alias:          pci:v0000DD01d00000011sv*sd*bc*sc*i*
alias:          pci:v0000DD01d00000003sv*sd*bc*sc*i*
alias:          pci:v0000DD01d00000201sv0000DD01sd00000001bc*sc*i*
alias:          pci:v0000DD01d00000011sv0000DD01sd00000041bc*sc*i*
alias:          pci:v0000DD01d00000011sv0000DD01sd00000040bc*sc*i*
alias:          pci:v0000DD01d00000003sv0000DD01sd0000DB03bc*sc*i*
alias:          pci:v0000DD01d00000003sv0000DD01sd00000030bc*sc*i*
alias:          pci:v0000DD01d00000003sv0000DD01sd00000021bc*sc*i*
alias:          pci:v0000DD01d00000003sv0000DD01sd00000020bc*sc*i*
alias:          pci:v0000DD01d00000003sv0000DD01sd00000010bc*sc*i*
alias:          pci:v0000DD01d00000003sv0000DD01sd00000003bc*sc*i*
alias:          pci:v0000DD01d00000003sv0000DD01sd00000002bc*sc*i*
alias:          pci:v0000DD01d00000005sv0000DD01sd00000004bc*sc*i*
alias:          pci:v0000DD01d00000003sv0000DD01sd00000001bc*sc*i*
alias:          pci:v0000DD01d00000002sv0000DD01sd00000001bc*sc*i*
depends:        cxd2099,dvb-core
vermagic:       3.11.0-12-generic SMP mod_unload modversions
parm:           adapter_alloc:0-one adapter per io, 1-one per tab with io, 2-one per tab, 3-one for all (int)
parm:           ci_bitrate: Bitrate for output to CI. (int)
parm:           ts_loop:TS in/out test loop on port ts_loop (int)
parm:           vlan:VLAN and QoS IDs enabled (int)
parm:           tt: (int)
parm:           adapter_nr:DVB adapter numbers (array of short)

Hiermit werden die DVB-Treibermodule geladen:

sudo modprobe ddbridge

Nachdem die DVB-Treibermodule geladen wurden, sollte der Aufruf 'dmesg' folgendes Anzeigen:

dmesg
[ 1441.970076] Digital Devices PCIE bridge driver 0.9.9, Copyright (C) 2010-13 Digital Devices GmbH

Die DVB-Treibermodule können folgendermaßen wieder gestoppt werden:

sudo modprobe -r ddbridge

Aktualisieren der DVB Treiber

Hier wird das DVB Treiberverzeichnis auf den aktuellen Stand gebracht. Nach dem Update kann der DVB Treiber wie oben beschrieben installiert werden.

Treiberarchiv aktualisieren

cd /data/installfiles/dvb/media_build_experimental
hg pull -u http://linuxtv.org/hg/~endriss/media_build_experimental
make distclean
make download
make untar

Installation VDR

Downloadverzeichnis vorbereiten

mkdir -p /data/installfiles/vdr

Installationsmedien herunterladen

cd /data/installfiles/vdr
wget ftp://ftp.tvdr.de/vdr/vdr-2.0.5.tar.bz2

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 für den vdruser angezogen wird. Alternativ einfach einen Neustart durchführen.

VDR entpacken, vorbereiten und installieren

Der VDR wird als Benutzer root installiert.

sudo su -
cd /usr/local/src
tar -xjf /data/installfiles/vdr/vdr-2.0.5.tar.bz2 
ln -s vdr-2.0.5/ vdr

Shutdownskript erstellen und ablegen

vi /usr/local/bin/vdrpoweroff.sh
#!/bin/bash
sudo /sbin/poweroff

und anschließend das Skript ausführbar machen:

chmod +x /usr/local/bin/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 starten

cd /usr/local/src/vdr
make REMOTE=LIRC && make install
exit

Videoverzeichnis anpassen

In das Videoverzeichnis werden später die TV Aufnahmen vom VDR abgelegt. Da ich mich an den Standardpfad für das Videroverzeichnis des VDR halten möchte, mein vorhander Festplattenspeicher aber auf einer anderen Partition liegt, setzen wir einen Link.

mkdir -p /data/vdrrecords
sudo rm -r /srv/vdr/video
sudo ln -s /data/vdrrecords/ /srv/vdr/video

Somit werden die VDR Aufnahmen in das Standardverzeichnis /srv/vdr/video geschrieben, landen aber auf der Festplattenpartition mit dem dafür vorgesehen Speicherplatz.

VDR mittels runvdr starten

Um den VDR zu starten verwende ich das mittgelieferte runvdr Skript.

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 -u vdruser -c /var/lib/vdr -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:

vi /usr/local/bin/runvdr
VDROPTIONS="-w 60 -D0 -u vdruser -c /var/lib/vdr -s /usr/local/bin/vdrpoweroff.sh"

somit wird nur 1 Tuner der TV-Karte genutzt.

VDR auf non-root Benutzer umstellen

sudo chown vdruser.vdruser -R /usr/local/share/vdr
sudo chown vdruser.vdruser -R /usr/local/bin
sudo chown vdruser.vdruser -R /usr/local/include/vdr
sudo chown vdruser.vdruser -R /usr/local/lib/vdr
sudo chown vdruser.vdruser -R /usr/local/src/vdr*
sudo chown vdruser.vdruser -R /srv/vdr
sudo chown vdruser.vdruser -R /var/cache/vdr
sudo chown vdruser.vdruser -R /var/lib/vdr/

remote.conf erstellen

cd /var/lib/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 /var/lib/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.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!)
192.168.0.0/24        # Euer Netzwerk

VDR in den Autostart

Skript erstellen

sudo vi /etc/init.d/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

sudo chmod +x /etc/init.d/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 Skript 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

Am besten Ihr öffnet zwei SSH Sessions auf euren VDR.

SSH Session 1

Hier wird das VDR Log geöffnet:

tail -f /var/log/syslog

SSH Session 2

Hier wird der VDR manuell gestartet:

sudo /usr/local/bin/runvdr

oder mittels Autostartskript

sudo /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:

Jan 17 17:40:44 vdr01 vdr: [12451] VDR version 2.0.5 started
Jan 17 17:40:44 vdr01 vdr: [12451] switched to user 'vdruser'
Jan 17 17:40:44 vdr01 vdr: [12451] codeset is 'UTF-8' - known
Jan 17 17:40:44 vdr01 vdr: [12451] found 28 locales in /usr/local/share/locale
Jan 17 17:40:44 vdr01 vdr: [12451] loading /var/lib/vdr/sources.conf
Jan 17 17:40:44 vdr01 vdr: [12451] loading /var/lib/vdr/diseqc.conf
Jan 17 17:40:44 vdr01 vdr: [12451] loading /var/lib/vdr/scr.conf
Jan 17 17:40:44 vdr01 vdr: [12451] loading /var/lib/vdr/channels.conf
Jan 17 17:40:44 vdr01 vdr: [12451] loading /var/lib/vdr/svdrphosts.conf
Jan 17 17:40:44 vdr01 vdr: [12451] loading /var/lib/vdr/remote.conf
Jan 17 17:40:44 vdr01 vdr: [12451] loading /var/lib/vdr/keymacros.conf
Jan 17 17:40:44 vdr01 vdr: [12451] registered source parameters for 'A - ATSC'
Jan 17 17:40:44 vdr01 vdr: [12451] registered source parameters for 'C - DVB-C'
Jan 17 17:40:44 vdr01 vdr: [12451] registered source parameters for 'S - DVB-S'
Jan 17 17:40:44 vdr01 vdr: [12451] registered source parameters for 'T - DVB-T'
Jan 17 17:40:44 vdr01 vdr: [12451] no DVB device found
Jan 17 17:40:44 vdr01 vdr: [12451] ERROR: invalid primary device number: 1
Jan 17 17:40:44 vdr01 vdr: [12451] ERROR: no primary device found - using first device!
Jan 17 17:40:44 vdr01 vdr: [12451] ERROR: invalid primary device number: 1
Jan 17 17:40:44 vdr01 vdr: [12454] epg data reader thread started (pid=12451, tid=12454, prio=high)
Jan 17 17:40:44 vdr01 vdr: [12453] video directory scanner thread started (pid=12451, tid=12453, prio=high)
Jan 17 17:40:44 vdr01 vdr: [12453] video directory scanner thread ended (pid=12451, tid=12453)
Jan 17 17:40:44 vdr01 vdr: [12452] video directory scanner thread started (pid=12451, tid=12452, prio=high)
Jan 17 17:40:44 vdr01 vdr: [12452] video directory scanner thread ended (pid=12451, tid=12452)
Jan 17 17:40:44 vdr01 vdr: [12451] max. latency time 0 seconds
Jan 17 17:40:44 vdr01 vdr: [12451] exiting, exit code 2


Achtung! Bisher kann noch kein TV Bild angezeigt werden da noch kein Ausgabedevice Plugin eingerichtet ist. Die ERROR Meldungen sind hier vorerst normal.

VDR Plugins

Downloadverzeichnis für Plugins vorbereiten

mkdir /data/installfiles/vdrplugins

SoftHDDevice Plugin

Download

cd /data/installfiles/vdrplugins
git clone git://projects.vdr-developer.org/vdr-plugin-softhddevice.git
tar -czf vdr-plugin-softhddevice-git-14012014.tar.gz vdr-plugin-softhddevice/

Was hat sich geändert?

Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:

http://projects.vdr-developer.org/projects/plg-softhddevice/repository

Installation

cd /usr/local/src/vdr/PLUGINS/src
cp -a /data/installfiles/vdrplugins/vdr-plugin-softhddevice .
ln -s vdr-plugin-softhddevice softhddevice
cd /usr/local/src/vdr/
make plugins && sudo make install

runvdr anpassen

Achtung! Das softhddevice Plugin muss als erstes Plugin im VDR geladen werden.


Die Plugins werden in das bestehende runvdr Skript hintereinander eingefügt:

Zum Beispiel:

VDRPLUGINS="-P Plugin1 -P Plugin2 -P Plugin3"

Hier der Eintrag für das softhddevice Plugin:

vi /usr/local/bin/runvdr
VDRPLUGINS="-P softhddevice"

Linksammlung

  1. Video Disc Recorder
  2. VDR FTP-Server
  3. VDR Portal
  4. Digital Devices
  5. Ubuntu
  6. IRTrans
  7. TightVNC
  8. Putty
  9. LinuxTV
  10. UFO DVB Repository
  11. dvbhddevice Plugin
  12. LCDProc Plugin
  13. PearlHD Skin Plugin
  14. Femon Plugin
  15. Markad
  16. TVOnScreen Plugin
  17. Live Plugin
  18. Epgsearch Plugin
  19. Streamdev Plugin
  20. Skin nOpacity Plugin
  21. Screenshot Plugin

Kategrorien