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:      Corsair Force LS 2,5" SSD 60 GB
Festplatte 2 HDD:      Western Digital WD20EZRX 2 TB
Grafikkarte:           ASUS GT630-DCSL (passiv/fanless)
TV-Karte (vier Tuner): Digital Devices Cine S2 V6.5 + DuoFlex S2 (Bundle)

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)

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
sudo apt-get install 
sudo apt-get install autoconf autopoint qt3-dev-tools qt4-qmake libqt4-dev linux-firmware-nonfree mercurial libcxxtools-dev libpcre3-dev libfribidi-dev
sudo apt-get install libtntnet-dev libboost-dev libtool libcdio-dev libvcdinfo-dev libavcodec-dev libpostproc-dev libcap-dev libjpeg-dev vflib3-dev
sudo apt-get install libncurses5-dev libncursesw5-dev lcdproc vim libssl-dev imagemagick libmagick++-dev libproc-processtable-perl

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-cvs-07082013.tar.gz media_build_experimental/

Was hat sich geändert?

Hier kann das DVB Repository eingesehen werden.

https://bitbucket.org/powARman/v4l-dvb-saa716x/overview
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 -> DVB/ATSC adapters ->

< > 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 installieren

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

Link auf compiler.h setzen

Achtung! Dieser Link ist wichtig, da sonst der VDR nicht übersetzt 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 sieht man, dass der DVB-Treiber am 15.10.2013 um 22:00 Uhr installiert wurde. Wenn am gleichen Tag das OS installiert wurde, sollte die Uhrzeit betrachtet werden.

cd /lib/modules/$(uname -r)/kernel/drivers/media/pci/ttpci
ls -l
-rw-r--r-- 1 root root  50096 Okt 15 22:00 budget-av.ko
-rw-r--r-- 1 root root  44680 Okt 15 22:00 budget-ci.ko
-rw-r--r-- 1 root root  22352 Okt 15 22:00 budget-core.ko
-rw-r--r-- 1 root root  36896 Okt 15 22:00 budget.ko
-rw-r--r-- 1 root root  20216 Okt 15 22:00 budget-patch.ko
-rw-r--r-- 1 root root 201656 Okt 15 22:00 dvb-ttpci.ko
-rw-r--r-- 1 root root   6504 Okt 15 22:00 ttpci-eeprom.ko


Die Treiber Module für die TT S2-6400 finden sich dann hier:

cd /lib/modules/$(uname -r)/kernel/drivers/media/pci/saa716x
ls -l
-rw-r--r-- 1 root root  24728 Okt 15 22:00 saa716x_budget.ko
-rw-r--r-- 1 root root 117296 Okt 15 22:00 saa716x_core.ko
-rw-r--r-- 1 root root  60616 Okt 15 22:00 saa716x_ff.ko
-rw-r--r-- 1 root root  25512 Okt 15 22:00 saa716x_hybrid.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/modprobe

DVB Module manuell laden

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

sudo modinfo saa716x_ff
filename:       /lib/modules/3.2.0-35-generic/kernel/drivers/media/pci/saa716x/saa716x_ff.ko
license:        GPL
author:         Manu Abraham
description:    SAA716x FF driver
srcversion:     904DE1ED5D6573D4AE01E89
alias:          pci:v00001131d00007160sv000013C2sd0000300Abc*sc*i*
alias:          pci:v00001131d00007160sv000013C2sd00003009bc*sc*i*
depends:        dvb-core,saa716x_core
vermagic:       3.2.0-35-generic SMP mod_unload modversions 
parm:           verbose:verbose startup messages, default is 1 (yes) (int)
parm:           int_type:force Interrupt Handler type: 0=INT-A, 1=MSI, 2=MSI-X. default INT-A mode (int)
parm:           int_count_enable:enable counting of interrupts (int)
parm:           video_capture:capture digital video coming from STi7109: 0=off, 1=one-shot. default off (int)

Hier werden die DVB-Treibermodule geladen:

sudo modprobe saa716x_ff

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

dmesg
[ 2804.317930] ACPI: PCI Interrupt Link [LN0A] enabled at IRQ 18
[ 2804.317986] SAA716x FF 0000:02:00.0: PCI INT A -> Link[LN0A] -> GSI 18 (level, low) -> IRQ 18
[ 2804.318009] SAA716x FF 0000:02:00.0: setting latency timer to 64
[ 2805.450111] SAA716x FF FPGA version 1.09
[ 2805.515714] SAA716x FF loader version 1.03
[ 2806.191089] DVB: registering new adapter (SAA716x dvb adapter)
[ 2806.342408] stv6110x_attach: Attaching STV6110x
[ 2806.348871] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...
[ 2806.349488] DVB: registering new adapter (SAA716x dvb adapter)
[ 2806.351530] stv6110x_attach: Attaching STV6110x
[ 2806.388518] DVB: registering adapter 1 frontend 0 (STV090x Multistandard)...
[ 2807.178544] SAA716x FF firmware version 0.3.8
[ 2807.178773] input: TT6400 DVB IR receiver as /devices/pci0000:00/0000:00:0c.0/0000:02:00.0/input/input5

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

sudo modprobe -r saa716x_ff

OS neu starten

sudo init 6

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

DVB Treiber installieren

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

sudo su -

DVB Treiber vorbereiten

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

DVB Treiber installieren

cd /usr/local/src/dvb
make distclean && make && make install
init 6

Links

  1. Ubuntu
  2. TightVNC
  3. Putty
  1. LinuxTV
  2. UFO DVB Repository
  3. powarman DVB Repository
  4. TT Firmware