|
© 2001 - 2013 Hubertus Sandmann
|
| Video Disk Recorder |
Remote-Plugin![]() |
|
|
|
Für den Aufbau des Festplatten-Videorecorders (Video Disk Recorder) auf der Basis von Linux und der Software VDR von Klaus Schmidinger reicht prinzipiell ein PC mit Minimalausstattung, welcher für die verwendete Distribution ausreichend ist. In jedem Fall braucht man eine oder mehrere DVB-Karten zum Empfang von digitalen TV-Austrahlungen, entweder per Satellit (DVB-S/S2), kabelgestützt (DVB-C) oder terrestrisch (DVB-T). Auch ein gemischter Betrieb ist möglich. HDTV ist in Deutschland auf terrestrischem Wege überhaupt nicht vorgesehen. In die Kabelnetze hingegen wird es zunehmend eingespeist. Für den Empfang von HDTV-Signalen über Satellit benötigt man mindestens eine Karte, die den im Vergleich zu DVB-S effizienteren Übertragungsstandard DVB-S2 beherrscht.
Im einfachsten Fall muss es sich bei mindestes einer der Karten um eine so genannte Full-Featured-Karte mit aktivem Decoderchip handeln. Diese aktive Karte muss die rechenintensive Dekodierung der komprimierten Signale für MPEG-2 bei SDTV und MPEG-4 AVC (H.264) bei HDTV erledigen und entlastet den Rechner, der bei dieser Konstellation vergleichsweise schwachbrüstig ausfallen kann. Die Ausgabe von Bild und Ton erfolgt dann direkt über die HDMI-Buchse dieser Karte. Für die übrigen Karten lassen sich dann preiswertere, so genannte Budget-Karten nutzen.
Die Steuerung kann vollständig per Fernbedienung an Hand eines ins Bild eingeblendeten Menüs (OSD) erfolgen. Aufnahmen von digitalen TV-Sendungen lassen sich komfortabel auf der Basis der vom EPG (Electronic Programm Guide) übermittelten Daten realisieren. Ebenfalls ist ein Videoschnitt um z. B. Werbeeinblendungen in den digitalen Aufnahmen auszublenden möglich. Mit der Hilfe von Plugins und Addons lässt sich der Funktionsumfang nahezu beliebig erweitern. So lassen sich beispielsweise SD-Aufnahmen auf DVD brennen und auch das Streamen im Netzwerk realisieren.
Dieses Dokument beinhaltet die Beschreibung zur Installation der aktuellen stabilen Version 2. Sie bietet erstmals die grundsätzliche Unterstützung für hochauflösendes Fernsehen. Diese Anleitung baut speziell auf die für die direkte Ausgabe von HDTV-Signalen mit der DVB-Karte selbst notwendige TT-Premium S2-6400 Dual HD auf. Es soll hier nicht unterschlagen werden, dass diese Karte die einzige für den VDR geeignete verfügbare Full-Featured-DVB-S2-Karte ist. Sie wurde nur in geringer Stückzahl gefertigt und ist derzeit wohl nur noch auf dem Gebrauchtmarkt aufzutreiben.
|
Ich verwende als Grundlage für meinen VDR eine openSUSE-12.3-Distribution in der 64-Bit-Variante. Es müssen noch die passenden Kernelquellen nachinstalliert werden. Gleiches gilt für diverse Tools sowie natürlich der Compiler zum Übersetzen von Quelltexten.
zypper install kernel-source make automake autoconf gcc-c++ mercurialEbenfalls ist zu diesem Zweck noch eine Erweiterung für Perl nachzuinstallieren mittels:
cpan Proc::ProcessTable
Bei dieser Distribution ist eine ältere Version von vdr bereits vorhanden, aber diese ist für HDTV nicht geeignet. Daher löscht man das Paket gleich komplett und führt stattdessen die nachfolgendend beschriebenen Installationsschritte als Systemadministrator root durch.
|
Geeignete Treiber für die DVB-S2-Karte TT-Premium S2-6400 Dual HD sind im Kernel der Version 3.7 noch nicht enthalten. Daher braucht man den entprechenden Treiber von http://powarman.dyndns.org/hgwebdir.cgi/v4l-dvb-saa716x/ . Neben anderen experimentellen Treibern wird das jeweils aktuellste Treiberpaket für diesen Kartentyp auf nachfolgende Weise recht komfortabel installiert:
cd /usr/local/src hg clone http://linuxtv.org/hg/~endriss/media_build_experimental ln -nfs media_build_experimental DVB cd DVB make download make untar make make install
Auch die speziellen Firmwaredateien für die DVB-S2-Karte TT-Premium S2-6400 Dual HD müssen separat von http://www.aregel.de downgeloaded und in das dafür vorgesehene Verzeichnis installiert werden:
unzip -o dvb-ttpremium-st7109-01_v0_4_0.zip -d /lib/firmware unzip -o dvb-ttpremium-loader-01_v1_03.zip -d /lib/firmware unzip -o dvb-ttpremium-fpga-01_v1_09.zip -d /lib/firmware
Bitte beachten: Man muss an der entsprechenden Buchse auf der Stirnseite dieser Karte ein SATA-Stromversorgungskabel anschließen, damit sie ordnungsgemäß funktioniert!
Danach ist der Rechner neu zu booten. Im Anschluss kann das entsprechende Treibermodul dann probehalber geladen werden. Ich muss hier eine zusätzliche Option für die Interruptverabeitung mitgeben, da die Voreinstellung zumindest auf meinem Board ASUS P5KPL/EPU schwere Abstürze verursacht!
modprobe saa716x_ff int_type=1
Ein Sender wird zu diesem Zeitpunkt noch nicht eingestellt, sondern erst später mit dem erfolgreichen Start der VDR-Software. Man kann aber durchaus einen kurzen Blick in die Logdatei werfen:
dmesgBitte grundsätzlich immer beide Sat-Eingänge der Karte beschalten, bevor man unnötig auf Fehlersuche geht!
Damit der Treiber zukünftig grundsätzlich mit der richtigen Interrupt-Option geladen wird und auch der Grab-Befehl funktioniert, ist in der Datei
/etc/modprobe.d/99-local.conf noch folgender Inhalt zu ergänzen:
# SAA716x_ff # 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: verbose: verbose startup messages, default is 1 (yes) (int) # parm: video_capture:capture digital video coming from STi7109: 0=off, 1=one-shot. default off (int) options saa716x_ff int_type=1 video_capture=1
Bitte beachten: Eine erneute Installation des Treiberpaketes ist grundsätzlich bei jedem Kernelupdate bzw. zum Einspielen einer neuen Treiberversion notwendig! Dabei geht man dann im Prinzip folgendermaßen vor:
cd /usr/local/src/DVB hg pull -u make distclean make download make untar make make install reboot
|
Vor der Übersetzung des Quelltextes sind noch folgende Pakete incl. ggf. notwendiger Abhängigkeiten nachzuinstallieren.
zypper install fontconfig-devel freetype2-devel libjpeg-devel ncurses-devel libcap-devel gettext-tools
Die aktuelle Version der VDR-Software kann von
ftp://ftp.tvdr.de/vdr/
downgeloaded werden. Das Entpacken der Quelltexte erfolgt
in diesem Beispiel aus dem dafür geeigneten Verzeichnis /usr/local/src heraus.
cd /usr/local/src tar xjf vdr-2.0.2.tar.bz2 ln -nfs vdr-2.0.2 VDR cd VDR cp Make.config.template Make.configHinweis: Für die neue Version 2 wurde das Installationskonzept der VDR-Software und der zugehörigen VDR-Plugins umgestellt. Zurzeit ist allerdings noch die Unterstützung für die "alten" Makefiles der Plugins gewährleistet.
Aus Bequemlichkeit für weitere Übersetzungen und Installationen der VDR-Software sowie weitere Plugins
wird die Datei Make.config zuvor noch angepasst.
### The directory environment: PREFIX = /usr/local BINDIR = $(PREFIX)/bin MANDIR = $(PREFIX)/share/man RESDIR = $(PREFIX)/share/vdr LOCDIR = $(PREFIX)/share/locale LIBDIR = $(PREFIX)/lib/vdr INCDIR = $(PREFIX)/include CACHEDIR = /var/cache/vdr CONFDIR = /etc/vdr VIDEODIR = /video
Die VDR-Software wird zwar mit einem Plugin namens dvdhddevice für die Ausgabe über die DVB-Karte des Typs
TT-Premium S2-6400 Dual HD ausgestattet, aber es ist nicht unbedingt gewährleistet, dass es sich dabei immer um die aktuellste handelt.
Also gilt es, diese ggf. durch eine neuere Version des Plugins von
http://powarman.dyndns.org/hgwebdir.cgi/dvbhddevice/
zu ersetzen:
cd /usr/local/src tar xjf dvbhddevice-7a48070da75b.tar.bz2 -C VDR/PLUGINS/src cd VDR/PLUGINS/src rm -rf dvbhddevice ln -nfs dvbhddevice-7a48070da75b dvbhddevice cd /usr/local/src/VDR make clean-plugins rm -f /usr/local/lib/vdr/*Zur Sicherheit werden hier auch noch eventuelle Überreste vorher erstellter Libraries entfernt.
Bei der abschließenden Installation der VDR-Software wird das fertig kompilierte Binary vdr
in das Verzeichnis /usr/local/bin kopiert. Das Verzeichnis
/video wird bei der Installation automatisch erzeugt, sofern es nicht bereits
vorher existierte. Hierin werden später die aufgezeichneteten Video-Dateien gespeichert. Die
entsprechende Partition sollte daher ausreichend groß sein.
Die Bibliotheken der erzeugten Plugins werden dabei nach /usr/local/lib/vdr kopiert.
Auch das Konfigurationsverzeichnis /etc/vdr wird beim Installationsprozess automatisch angelegt und mit den Vorlagedateien befüllt.
An diesen Konfigationsdateien müssen normalerweise keine Änderungen vorgenommen werden.
Im Nachhinein wird hier noch ein Unterverzeichnis für Konfigurationsdateien von ggf. später genutzten Plugins angelegt.
Ebenfalls wird eine Beispieldatei herangezogen, welche für den Start der VDR-Software später noch angepasst werden muss.
cd /usr/local/src/VDR make make install mkdir -p /etc/vdr/plugins cp runvdr.template /usr/local/bin/runvdr
Für die Bedienung ist zunächst die Steuerung mit der Tastatur vorgesehen.
Beim ersten Aufruf der VDR-Software geht das Programm in den Lernmodus um die Tasten zur
Steuerung der VDR-Funktionen wunschgemäß zuzuordnen. Während der Lernphase kann man Korrekturen
durchführen oder vorzeitig abbrechen. Das Ergebnis wird dann in der Datei
/etc/vdr/remote.conf gespeichert. Möchte man sich das Anlernen sparen, lässt sich
auch diese Beispieldatei mit den wichtigsten Funktionen verwenden. Der Inhalt stimmt mit der
in der Dokumentation des VDR
empfohlenen Belegung für die Tastatursteuerung überein. Für ein erneutes Anlernen kann man die
Datei einfach löschen und VDR geht wieder in den Lernmodus.
KBD.Up 00000000001B4F41 KBD.Down 00000000001B4F42 KBD.Menu 000000001B5B317E KBD.Ok 000000000000000D KBD.Back 000000001B5B347E KBD.Left 00000000001B4F44 KBD.Right 00000000001B4F43 KBD.Red 00000000001B4F50 KBD.Green 00000000001B4F51 KBD.Yellow 00000000001B4F52 KBD.Blue 00000000001B4F53 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 0000000000000070 KBD.Volume+ 000000000000002B KBD.Volume- 000000000000002D KBD.Mute 000000000000006D
Testweise kann man jetzt die Software aus dem aktuellen Verzeichnis heraus aufrufen und
kann mit der Tastatur bedienen.
Die VDR-Software wird bereits im Auslieferungszustand mit einem Plugin namens dvdhddevice für die Ausgabe über die DVB-Karte des Typs
TT-Premium S2-6400 Dual HD ausgestattet.
Dieses wird beim Aufruf aus einem Konsolenfenster heraus mitgestartet. Zuvor wird noch die Umgebungsvariable für deutsche Sprache, aber
englische Fehlermeldungen, gesetzt:
export LC_COLLATE=de_DE /usr/local/bin/vdr -P dvbhddeviceZum Beenden des Tests verwendet man die Tastenkombination STRG+c.
Die VDR-Software bietet die praktische Möglichkeit den Rechner nach einer bestimmten Zeit der
Inaktivität und wenn keine Aufnahmen anstehen den Rechner automatisch oder aber auch per
Tastendruck herunterzufahren. Man erstellt dazu lediglich ein kleines Skript, welches diese
Aufgabe erledigt und beispielsweise unter dem Namen vdrpoweroff.sh im Verzeichnis
/usr/local/bin angelegt wird und folgenden Inhalt hat:
#!/bin/sh exec poweroffDas Skript muss noch ausführbar gemacht werden.
chmod +x /usr/local/bin/vdrpoweroff.sh
Die VDR-Software startet nur, wenn auch die DVB-Treiber geladen sind.
Ein geeigneter Weg dies zu gewährleisten ist, das Skript /usr/local/bin/runvdr
dafür zu nutzen. Ruft man dieses als root auf, lädt es die Treiber bei Bedarf
automatisch und startet dann die VDR-Software. Ausserdem sorgt es durch Aktivieren der internen
Watchdog-Funktion dafür, dass eine im Fehlerfall abgestürzte VDR-Software und auch die
DVB-Treiber im Bedarfsfall selbstständig innerhalb einer Minute wieder neu gestartet werden.
Ebenso nutzt man das freie Terminal 8 als kontrollierendes Terminal. Ebenso wird hier noch
das temporäre Verzeichnis für den Grab-Befehl zum Erstellen von Snapshots definiert.
Dazu macht man die notwendigen Ergänzungen und Änderungen in der Datei /usr/local/bin/runvdr.
Hierbei passt man u. a. auch die Pfade zum Startskript der DVB-Treiber und zum VDR-Programm an.
export LANG=de_DE
VDRPRG="/usr/local/bin/vdr"
VDROPTIONS="-t /dev/tty8 -w 60 -g /tmp \
-s /usr/local/bin/vdrpoweroff.sh"
VDRPLUGINS="-P dvbhddevice"
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()
{
/sbin/modprobe saa716x_ff
}
# Unload all DVB driver modules loaded in LoadDriver():
function UnloadDriver()
{
/sbin/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
Hier wird die VDR-Software mit den allumfassenden
Rechten des Superusers root ausgeführt. Solange der Rechner nicht ohne Firewall ständig
mit dem Internet verbunden ist, dürfte diese Vorgehensweise vertretbar sein.
Testweise kann man jetzt das Startskript als root aufrufen.
/usr/local/bin/runvdr
Damit nun auch die VDR-Software samt DVB-Treiber automatisch bei jedem Hochfahren des
Rechners startet, fügt man am Ende der Datei /etc/init.d/boot.local z. B. folgende Zeile
hinzu.
# starting VDR /usr/local/bin/runvdr
|
Zur Fehlersuche, sowohl beim Laden des DVB-Treibers als auch beim Betrieb der VDR-Software, ist ein Blick in die Logdatei sehr nützlich. Hierzu kann man als root die laufenden Meldungen in einer geöffneten Konsole mitlesen.
tail -f /var/log/messagesAls weitere Hilfestellung neben der beigefügten Dokumentation im Quellpaket wie README, INSTALL und MANUAL ist die Manpage auf dem System verfügbar und kann aufgerufen werden.
man vdrGleiches gilt für den Abschnitt 5 mit den Erläuterungen zum Format der einzelnen Konfigurationsdateien.
man 5 vdr
Weitere Hilfe lässt sich auch im deutschsprachigen VDR-Portal unter http://www.vdr-portal.de oder auch im VDR-Wiki unter http://www.vdr-wiki.de finden.
|
Das hier vorgestellte Konzept auf der Basis der Full-Featured-Karte TT-Premium S2-6400 Dual HD sollte keinesfalls als die einzige Möglichkeit angesehen werden, um den Video Disk Recorder für die Ausgabe von HDTV fit zu machen. Für diesen Zweck eignet sich insbesondere eine VDPAU-fähige Graphikkarte von Nvidia. Dieses manuell einzurichten ist aufgrund des Umfangs und der Komplexität so mancher Abhängigkeiten sehr mühsam und fehleranfällig. Hierfür gibt es aber darauf spezialisierte Distributionen.
| Video Disk Recorder |
Remote-Plugin![]() |
|
© 2001 - 2013 Hubertus Sandmann
|