© 2004 - 2007 Hubertus Sandmann


Version: 0.3.28
Stand: 13.04.2007

nach untenEinleitung
nach untenVoraussetzungen
nach untenDVB-Treiber
nach untenVDR-Software
nach untenSkins und Themes
nach untenFehlersuche
nach untenAusblick

Einleitung

nach oben 

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, bestückt mit einem Prozessor der PII-Klasse ab 64 MByte RAM. In jedem Fall braucht man eine oder mehrere DVB-Karten zum Empfang von digitalen TV-Austrahlungen, entweder per Satellit (DVB-S), kabelgestützt (DVB-C) oder terrestrisch (DVB-T).

Die VDR-Software kann mit bis zu 4 DVB-Karten umgehen. Bei mindestes einer der Karten muss es sich um eine so genannte Full-Featured-Karte wie die Hauppauge Nexus oder deren Vorgängern und kompatiblen Karten mit aktiven MPEG-Decoderchip und TV-Ausgang handeln. Für die weiteren Karten lassen sich preiswertere Budget-Karten wie etwa die Hauppage Nova und baugleiche Karten nutzen. Die Ausgabe von Bild und Ton erfolgt im einfachsten Fall direkt über den FBAS-Ausgang und die Stereo-Klinkenbuchse der DVB-Karte.

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. Wie bei einer digitalen Aufnahme nicht anders zu erwarten, ist die Bildqualität der Wiedergabe hervorragend, da die MPEG-Daten verlustfrei abgespeichert werden. 1 GByte Speicherplatz auf der Festplatte reichen dabei für rund eine 1/2 Stunde Aufnahmedauer.

Mit der Hilfe von Plugins lässt sich der Funktionsumfang vielfältig erweitern. Die zusätzlichen Nutzung als DVD-Player sind nur ein kleiner Ausschnitt der umfangreichen Möglichkeiten. Ebenso das automatisierte Konvertieren von Aufnahmen für das Erstellen von Video-DVDs. Das offene Konzept von VDR ermöglicht die Entwicklung zu einer universellen Multimediazentrale fürs Wohnzimmer. Dahinter steckt der Gedanke von Open Source und freier Software. Dies alles sollte Grund genug sein, sich einmal mit dem Betriebssystem Linux zu beschäftigen. Es lohnt sich!

Dieses Dokument beinhaltet die Beschreibung zur Installation der aktuellen stabilen Version 1.4.6. Diese Version bietet neben Features wie Timeshift und gleichzeitiger Aufnahme mehrerer Sendungen vom gleichen Transponder mit nur einer einzigen DVB-Karte zusätzliche Leistungsmerkmale wie den lang ersehnten Sendersuchlauf und Unterstützung für VPS (Video Programming Service). Zu den allgemeinen Verbesserungen bzgl. des CAM-Supports kommt das automatische Umschalten im Zusammenhang mit lokalen Fensterprogrammen einiger Dritter Regionalprogramme.


Voraussetzungen

nach oben 

Voraussetzung für eine erfolgreiche Übersetzung der Quellen sind entweder ein Kernel in der Version 2.4.X oder wie bei einer SuSE 9.3 ein Kernel der Version 2.6.X. Zudem müssen die passenden Kernelquellen kernel-source nachinstalliert werden. Gleiches gilt für Tools wie autoconf und automake und natürlich der Compiler zum Übersetzen von Quelltexten. Dazu installiert man am bequemsten mittels YaST die Pakete C/C++ Compiler und Werkzeuge komplett.

Obwohl bei der SuSE-9.3-Distribution ältere Pakete von vdr und den DVB-Treibern bereits vorhanden sind, nutze ich diese nicht um die Möglickeit zu haben, die aktuellen Versionen zu installieren. Dazu deaktiviert man die Dienste vdr und dvb mittels YaST im Runlevel-Editor und führt anschließend die folgenden Installationsschritte als Systemadministrator root durch.


DVB-Treiber

nach oben 

Für die DVB-Karten braucht man den entprechenden Treiber, welcher ursprünglich von der Firma Convergence entwickelt und als freie Software auf http://linuxtv.org/ der Allgemeinheit zur Verfügung gestellt wird. Ich nutzte die Version, welche vom Entwickler der VDR-Software zum Download http://www.cadsoft.de/vdr/download.htm angeboten wird. Die Installation des Treibers erfolgt beispielsweise aus dem Verzeichnis /usr/local/src heraus.

 cd /usr/local/src

 tar xfj hg-v4l-dvb-7b2efa772750.tar.bz2
 
 ln -nfs hg-v4l-dvb-7b2efa772750 DVB
 
 cd /usr/local/src/DVB
 
 make
 
 make install

Nun muss noch die passende Firmware für die TechnoTrend-basierten Full-Featured Karten installiert werden. Entsprechende Firmwaredateien erhält man bei http://LinuxTV.org/downloads/firmware/. Bei einer SuSE-9.3-Distribution geschieht dies folgendermaßen:
 cp dvb-ttpci-01.fw-2622 /usr/lib/hotplug/firmware

 cd /usr/lib/hotplug/firmware

 ln -nfs dvb-ttpci-01.fw-2622 dvb-ttpci-01.fw
 

Die Treiber können danach probehalber geladen werden mit:

 cd /usr/local/src/DVB/v4l
 
 scripts/insmod.sh load

Ein Sender wird zu diesem Zeitpunkt noch nicht eingestellt, sondern erst später mit dem erfolgreichen Start der VDR-Software.


VDR-Software

nach oben 

Die aktuelle stabile Version der VDR-Software kann von http://www.cadsoft.de/vdr/download.htm downgeloaded werden. Die Übersetzung dieser Software erfolgt beispielsweise aus dem Verzeichnis /usr/local/src heraus. Vor der Übersetzung des Quelltextes sind ggf. noch die Pakete libjpeg und libjpeg-devel sowie libcap vom Installationsmedium der Distribution nachzuinstallieren.

 
 cd /usr/local/src

 tar xfj vdr-1.4.6.tar.bz2

 ln -nfs vdr-1.4.6 VDR

 cd VDR

 make

 make install

Bei der vollständigen Installation der VDR-Software wird das Binary vdr und auch das Skript runvdr in das Verzeichnis /usr/local/bin kopiert. Für die Bedienung ist die Steuerung mit der Tastatur vorgesehen. 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.

Gleichzeitig werden bei der Installation noch die vorgefertigten Konfigurationsdateien in das zuvor erstellte Verzeichnis /etc/vdr, welches ich für die Konfigurationsdateien vorgesehen habe, kopiert. Es wird hier ebenfalls noch ein Unterverzeichnis für die EPG-Daten sowie ggf. später genutzte Plugins angelegt.

 
 cp svdrpsend.pl /usr/bin

 mkdir -p /etc/vdr/plugins /var/vdr

 cp *.conf /etc/vdr

Hierbei gilt es zu beachten, dass sich das Format der channels.conf gegenüber der Vorgängerversion geändert hat. Falls man die bisherige Datei weiter verwenden möchte, wird diese von der VDR-Software entsprechend angepasst. Da der Sendersuchlauf ständig im Hintergrund arbeitet, fügt er die neu aufgefundenen Kanäle am Ende der channels.conf an. Um die Übersicht nicht zu verlieren, fügt man am besten ein Zeile wie die folgende am Ende der Datei an, so dass diese ab Kanalnummer 1000 erscheinen.
:@1000 Neue Sender

Anschließend wird die Software testweise aus dem aktuellen Verzeichnis heraus gestartet und kann nach einmaligem Anlernen mit der Tastatur bedient werden. Der Aufruf aus einem Konsolenfenster kann auch später sehr hilfreich sein, da hierbei ggf. ausführliche Fehlermeldungen erscheinen. Zuvor sind noch einige Umgebungsvariablen passend zu setzen, weil die VDR-Software nicht mit der Zeichenkodierung der SuSE-9.3 zurecht kommt.

 
 export LANG=de_DE.iso8859-1

 export LC_CTYPE=de_DE.iso8859-1 
 
 /usr/local/bin/vdr -c /etc/vdr -E /var/vdr

Zm Beenden verwendet man die Tastenkombination STRG+c.

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

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/bash
/sbin/poweroff

Das Skript muss ausführbar gemacht werden.
 
 chmod +x /usr/local/bin/vdrpoweroff.sh

Später muss nur noch die Option für den automatischen Shutdown im Skript /usr/local/bin/runvdr ergänzt werden.

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. Auch könnte man hier die Option --vfat hinzufügen, wenn man beispielsweise auf einer FAT32-Partition des Betriebssystems Windows aufzeichnen will, oder aber auch, sobald man später einmal die gespeicherten Files zur späteren Bearbeitung etwa mittels samba im Windows-Netzwerk exportieren will. Dazu macht man einige Ergänzungen und Änderungen in der Datei /usr/local/bin/runvdr. Hierbei passt man auch die Pfade zum Startskript der DVB-Treiber und zum VDR-Programm an.

export LANG=de_DE.iso8859-1
export LC_CTYPE=de_DE.iso8859-1


VDRPRG="/usr/local/bin/vdr"
VDRCMD="$VDRPRG -t /dev/tty8 -w 60 -c /etc/vdr -E /var/vdr \
                --vfat -s /usr/local/bin/vdrpoweroff.sh $*"
                
  
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()
{
  cd /usr/local/src/DVB/v4l
  scripts/insmod.sh load
}

# Unload all DVB driver modules loaded in LoadDriver():
function UnloadDriver()
{
  cd /usr/local/src/DVB/v4l
  scripts/insmod.sh unload 
}

# 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

So ist auf einem Rechner mit graphischer Oberfläche schon einmal die Bedienung mittels der Programme kvdr oder xawtv möglich, die bei einer aktuellen SuSE-Distribution mitgeliefert werden.

Damit nun auch die VDR-Software samt DVB-Treiber automatisch bei jedem Hochfahren des Rechners startet, kann man am Ende der Datei /etc/inittab z. B. folgende Zeile hinzufügen.

vdr:35:once:/usr/local/bin/runvdr


Skins und Themes

nach oben 

Das OSD der VDR-Software war bislang eher auf nüchterne Funktionalität ausgerichtet. Mit der aktuellen Version von VDR lassen sich neue Oberflächen in Form von zusätzlichen Skins und Themes einbinden. Im Menüpunkt -> Einstellungen für das OSD kann man zu den installierten Skins jeweils ein passendes Theme auswählen.

Neben den bereits standardmäßig enthaltenen Skins kann man die erweiterten Möglichkeiten des Designs beispielsweise mit der Hilfe des Plugins von http://linux.kompiliert.net/ nutzen. Weitere Skins werden z. B. auf http://vdrskins.org/ veröffentlicht. Hierbei ist darauf zu achten, dass diese zu der verwendeten Version des Plugins passen. Auch gibt es Skins, welche nur für modifizierte DVB-Karten mit erweitertem Speicher geeignet sind. Für eine zügige Darstellung der aufwändigen Menüs ist zudem ein schneller Rechner erforderlich.


Fehlersuche

nach oben 

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/messages

Alternativ kann man zur Beobachtung auch von der graphischen Oberfläche mit der Tastenkombination STRG+ALT+PF10 umschalten bzw. von der Textkonsole aus mit ALT+PF10.

Als 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 vdr

Gleiches 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.


Ausblick

nach oben 

Das hier vorgestellte Konzept sollte keinesfalls als die einzige Möglichkeit angesehen werden einen vollwertigen Festplatten-Videorecorder mit Hilfe der VDR-Software einzurichten, sondern nur als eine von vielen Möglichkeiten. Mittlerweile gibt eine eine nahezu unüberschaubare Anzahl von Plugins und Addons für VDR. Diese manuell zu installieren ist aufgrund des Umfangs und der Komplexität so mancher Abhängigkeiten sehr mühsam und fehleranfällig. Glücklicherweise gibt es eine sehr rege Fangemeinde rund um VDR, sodass von dieser Seite diverse Hilfestellungen für all diejenigen bereit gestellt werden, die möglichst umfangreiche Zusatzfunktionen nutzen wollen. Hierzu zählt etwa das Installationsskript aus dem Downloadbereich vom VDR-Portal unter http://www.vdr-portal.de/ mit einer einfachen und menügestützten Installation. Gleiches gilt für spezielle auf VDR zugeschnittene Mini-Distributionen, die als bootfähige CD-Images zur Verfügung gestellt werden, wie beispielsweise c'tVDR auf http://www.heise.de/ct/ftp/projekte/vdr/ oder auch LinVDR von http://linvdr.org/.


© 2004 - 2007 Hubertus Sandmann