VDR mit Budget-DVB-T-Karte unter Debian-Linux


Vor dem Wechsel von Debian Sarge (Stable) auf Debian Sid (Unstable).
Diese Seite wird nicht mehr gepflegt, die aktuelle Version liegt hier.

Diese Seite beschreibt den Aufbau meiner Linux-Multimedia-Box. Das Gerät dient in erster Linie als DVB-T-Empfänger und Multimedia-Zentrale zum Abspielen von Audio- und Video-Dateien. Es hat mittlerweile die gute alte Glotze, den VHS-Videorekorder und (zum Teil) die Stereoanlage ersetzt, ist aber kein hochauflösendes, überdimensionales, mehrkanal-tönendes Ungetüm.

Inhalt

Hardware-Auswahl
   Gehäuse, Display und Fernbedienung
   DVB-T-Karte
   Motherboard, CPU und RAM
   Festplatte und DVD-Laufwerk
   Sonstige Hardware
Software-Auswahl
   Linux-Distribution
   TV-/Multimedia-Software
   Sonstige Software
Software- und Hardware-Überblick
Installation
   Debian-Linux
   DVB-Empfang testen
   VDR einrichten
   Xine starten
   Infrarot-Fernsteuerung und VFD-Display
   VDR-Plugins
   Audio einstellen
System Couch-Potato-tauglich machen
   X11 und Xine automatisch starten
   Rechner per Fernbedienung hochfahren
   Schneller Booten
Nützliches und Sonstiges
Bekannte Probleme
Anhang

Hardware-Auswahl

Da ich keine Streaming-Lösung oder Ähnliches verwenden wollte, mußte die Hardware Wohnzimmer-tauglich sein, also schick, leise und per Fernbedienung steuerbar.
Für die Video-Ausgabe verwende ich einen PC-LCD-Monitor (vorerst ohne DVI, nur analoges VGA), meine Kiste hat also keinen TV-Ausgang. Ansonsten das Übliche: Budget-DVB-T-Karte, Ethernet, USB, Maus, Tastatur, analoger Audio-Ausgang, CD/DVD-Laufwerk. Außerdem wollte ich mir die Möglichkeit offen halten, später auch mal weitere PCI-Karten oder Festplatten im Gehäuse unterzubringen.

Gehäuse, Display und Fernbedienung

Als HTPC-Gehäuse verwende ich das Dign HTPC HV5 von Uneed. Uneed heißt mittlerweile Origen AE, das Gehäuse H5 statt HV5, an den Eigenschaften scheint sich aber nichts geändert zu haben.
Dieses voluminöse Aluminium-Case im Standard-ATX-Format bietet Platz für maximal sieben PCI-Karten, zwei 3,5''-Festplatten und ein 5 1/4''-Laufwerk. In der Front sitzt bei mir ein (optional erhältliches) Modul mit VFD-Display und IR-Empfänger, dazu gehört eine Infrarot-Fernbedienung. Das Modul wird normalerweise an die internen USB-Steckerleiste des Motherboards angeschlossen. Da mein Motherboard allerdings keinen internen USB-Anschluss besitzt, mußte ich eine Steckerleiste an die Pins des externen USB-Anschlusses am Motherboard löten. Dies war zwar etwas fummelig, funktioniert aber einwandfrei.
Auf der Rückseite des Gehäuses, bei meinem Motherboard praktischerweise direkt hinter der CPU, befinden sich zwei 6 x 6 cm-Gehäuselüfter (einer war bereits im Lieferumfang des Gehäuses enthalten, einen zweiten habe ich nachgerüstet). Leider hat das Case keinerlei Lüftungsschlitze, was die Durchlüftung nicht ganz einfach macht. Ich habe das Problem so gelöst, dass ich die Abdeckbleche der vier freien PCI-Slots hinten links entfernt und die Schlitze mit einem Lüftergitter abgedeckt habe. Die Luft strömt so durch diese Öffnungen ins Gehäuse, muss um die PCI-Karten herum und verläßt das Gehäuse dann, vorbei an der CPU, wieder durch die Gehäuselüfter bzw. das Netzteil. Meine 900 MHz-CPU hat so eine Temperatur von ca. 50°C, was durchaus OK ist.
Als Netzteil kommt ein Fortron Source FSP270-50SNV mit 270W zum Einsatz.

Am Markt gibt es zwar eine ganze Reihe von Mini ITX-Gehäusen für Wohnzimmer-PCs. Allerdings haben diese einige Nachteile: Mini ITX-Mainboards besitzen standardmäßig (also ohne Riser Card usw.) nur einen PCI-Slot, der teilweise nur mit Karten halber Bauhöhe bestückt werden kann, die Gehäuse bieten in aller Regel nur Platz für maximal eine 3,5''-Festplatte (teilweise nur eine 2,5''-Platte). Ein weiteres Problem ist die Wärmeabfuhr aus dem engen Gehäuse. Und nicht zuletzt sind die ITX-Mainboards verhältnismäßig teuer.

DVB-T-Karte

Für den DVB-T-Empfang sorgt eine Avermedia AVerTV DVB-T-771, eine PCI-Karte mit halber Bauhöhe. Sie besitzt einen HF-Antennenanschluss sowie einen S-Video-Eingang. Außerdem wird ein S-Video auf Composite-Video-Adapter mitgeliefert.
Diese Budget-Karte wird ohne zusätzliche Patches von neueren Versionen des 2.6er-Kernels unterstützt. Ich habe mich bisher nur auf den DVB-T-Empfang konzentriert, ob der S-Video-Eingang (unter Linux) verwendbar ist weiß ich nicht.

Im Allgemeinen wird für die DVB-Wiedergabe unter Linux eine Full-Featured-Karte (mit Hardware-MPEG-Decoder und analogem TV-Ausgang) empfohlen. Allerdings gibt es für DVB-T nur ein einziges, nicht mehr hergestelltes Modell, welches zudem nicht alle DVB-T-Frequenzbereiche empfangen kann (TechnoTrend Premium DVB-T, siehe vdr-wiki.de). Da Budget-Karten i.A. auch um einiges billiger als Full-Featured-Karten sind, habe ich mich gegen eine Full-Featured-Karte entschieden. Hat man nun keine Full-Featured-DVB-Karte und auch keine Grafikkarte mit TV-Ausgang zur Verfügung, bleibt für die Video-Ausgabe nur mehr der Monitor-Ausgang übrig. Da ich allerdings ohnehin keinen TV, sondern einen "normalen" Computer-Monitor für die Video-Ausgabe verwende, spielt diese Einschränung keine Rolle.
Ohne Full-Featured-Karte oder sonstige Hardware-Unterstützung muss der Prozessor den MPEG-Datenstrom selbst decodieren. Empfohlen wird in diesem Fall ein Prozessor mit mindestens 1 GHz.

Motherboard, CPU und RAM

Als CPU habe ich einen Intel Celeron-Prozessor mit 900 MHz auf einem GIGABIYTE GA-6WMMC7-Motherboard mit 384 MB RAM im Einsatz. Das Motherboard ist recht betagt, hat aber Onboard-Grafik (VGA-Anschluß) und -Sound (einfaches analoges Stereo), 2 x USB (nur extern und leider nur USB 1.1) und drei PCI-Slots, erfüllt also erst mal meine Minimalanforderungen (bis auf das fehlende LAN-Interface).
Der Prozessor läßt sich mit einem einfachen Kühlkörper passiv kühlen, da sich die Gehäuselüfter direkt dahinter befinden.

Die Darstellung von DVB-T mit Xine und Xv-Output ist ruckelfrei und erzeugt eine CPU-Last von ca. 60%. Allerdings ruckelt das Bild etwas bei gleichzeitiger Anzeige des OSD (Bildschirm-Menü) und beim Kanalwechsel, dies läßt sich aber verschmerzen.

Getestet habe ich auch einen Intel Celeron-Prozessor mit 633 MHz. Bei der reinen Darstellung von DVB-T hat sich dieser nicht schlechter geschlagen als der 900er. Allerdings war das Ruckeln mit OSD und beim Kanalwechsel doch etwas stärker, außerdem reagierten die Menüs des VDR etwas langsamer.

Der auf dem Motherboard befindliche Intel i810-Chipsatz bringt mit XvMC (XVideo Motion Compensation) eine einfache Hardware-Unterstützung für die Decodierung von MPEG-Daten mit. Allerdings waren alle meine Versuche, XvMC zur Mitarbeit zu bewegen, bisher erfolglos (siehe unten).

Festplatte und DVD-Laufwerk

Als Festplatte verwende ich eine Samsung SP1604N (160GB). Das Ding ist stabil, ruhig, wird nicht zu heiß und preiswert, was will man mehr.
Da Uneed wegen der optimalen Positionierung des Auswurf-Knopfes explizit ein CD/DVD-Laufwerk von LG empfiehlt, steckt in meinem Gerät ein schwarzes LG D8163B. Der saubere Einbau des Laufwerkes ins Gehäuse erfordert zwar etwas Geduld. Ist das Laufwerk aber erst mal an seiner genauen Position paßt es perfekt.

Sonstige Hardware

Da das Motherboard keine Ethernet-Schnittstelle besitzt, steckt im Rechner noch eine einfache 100 Mbit-Netzwerkkarte.
Als DVB-T-Antenne verwende ich eine sehr einfache Selbstbau-Antenne, wie sie z.B. unter vdr-wiki.de beschrieben ist. Für den Empfang im Stadtgebiet München reicht diese allemal aus.
Zum Anschluß von Maus, Tastatur und anderen USB-Geräten steht unsichtbar nahe dem Gehäuse im Schrank verstaut noch ein kleiner USB-Hub. Maus und Tastatur benötigt man ohnehin nur sporadisch, über den Hub kann man die Teile ohne Verrenkungen bequem anstecken. Damit sich die USB-Tastatur auch ohne Probleme einsetzen läßt, muss man sie übrigens im BIOS explizit aktivieren (USB Keyboard Support oder ähnlich). Bei mir hat der Bootloader GRUB ansonsten die Zusammenarbeit verweigert.

Software-Auswahl

Die Entscheidung für die am Ende gewählte Software-Konstellation war nicht ganz einfach. Nach ersten Experimenten mit Knoppix, dem ct-VDR4 und Kanotix hatte ich mir noch zwei weitere Multimedia-Projekte, Freevo und MythTV (und auch KnoppMyth), angesehen. Obwohl beide sehr schöne Oberflächen und eine Menge Funktionen haben, erschien mir die Konfiguration, insbesondere von DVB, bei beiden, na ja, etwas umständlich. Außerdem bedingen die poppigen Menüs höhere Anforderungen an die CPU.

Linux-Distribution

Als Betriebssystem wollte ich eine "richtige" Linux-Distribution. Dafür gibt's in aller Regel Updates, (fast) alle Quelltexte, eine große Nutzergemeinde und daher viele aktuelle Infos im Internet. Da Debian-Linux ein ausgereiften Paket-Management sowie funktionale, textbasierte Administrations-Tools mitbringt und damit sehr flexibel konfigurierbar ist, war die Wahl recht schnell getroffen. Hier mag auch dazu beigetragen haben, dass ich Debian schon einige Zeit kenne und einfach gut damit zurechtkomme.

TV-/Multimedia-Software

Als TV- und Multimedia-Software verwende ich den Video Disc Recorder (VDR) zusammen mit verschiedenen Plugins. Die Grafik-Ausgabe erfolgt mit dem Xine-Plugin für den VDR über den Multimedia-Player Xine unter X11.

Im Gegensatz zu Freevo und MythTV ließ sich der VDR recht schnell zur Mitarbeit bewegen, die einfache, aber funktionale Oberfläche reagiert auch bei einer langsamen CPU noch genügend schnell. Außerdem läßt sich VDR über Plugins um viele Funktionen erweitern.
Obwohl Xine prinzipiell auch im Framebuffer-Mode läuft, weigerte er sich, auf meiner Hardware über Framebuffer irgendwas auszugeben. Unter X11 läuft er einwandfrei.

Sonstige Software

Für die Infrarot-Fernsteuerung und die Ansteuerung des VFD-Displays stellt Uneed (bzw. der Hersteller des Displays, IRTrans) eine eigene Software bereit (IRTrans Client/Server). Eigentlich sollten LIRC und LCDProc das Modul auch unterstützen, meine Versuche mit den Debian-Quellen von LIRC waren allerdings bisher nicht erfolgreich (siehe unten).

Software- und Hardware-Überblick

Hier nochmal die Liste der wichtigsten Hard- und Software:

Installation

Das Zusammenschrauben der Hardware war nicht aufregend und möchte ich an dieser Stelle auch nicht beschreiben. Deshalb geht's gleich weiter mit der Software.

Debian-Linux

Debian-Linux kann auf verschiedenste Weise installiert werden. Ich bevorzuge: Die Partitionierung meiner 160 GB-Platte schaut folgendermaßen aus:
/dev/hda1    1 GB   Swap               Virtueller Speicher
/dev/hda2   10 GB   /                  Installation 1
/dev/hda3   10 GB   /                  Installation 2 (Test)
/dev/hda4    Rest   /var/lib/data      Daten
Damit habe ich die Möglichkeit, auf /dev/hda2 und /dev/hda3 zwei getrennte Systeme zu installieren, was für Tests und zur Wiederherstellung einer zerschossenen Installation recht praktisch ist. Alle Video- und Audio-Daten liegen auf /dev/hda4.
Folgende Kommandos verhindern, dass beim Systemstart ein fsck ausgeführt wird:
vdr:# tune2fs -c 0 /dev/hda2
vdr:# tune2fs -c 0 /dev/hda3
vdr:# tune2fs -c 0 /dev/hda4
vdr:# tune2fs -i 0 /dev/hda2
vdr:# tune2fs -i 0 /dev/hda3
vdr:# tune2fs -i 0 /dev/hda4
Natürlich sollte man dann fsck /dev/hdaX gelegentlich manuell starten.

Um ein minimales Debian-System zu erhalten, wird einfach im Dialog Debian Software Auswahl (aus der Liste Desktop-Umgebung, Web-Server usw.) nichts ausgewählt. Der Basiskonfigurations-Dialog kann übrigens jederzeit mit base-config wieder aufgerufen werden.

Die Auswahl der Paket-Quellen ist alles andere als einfach. Nach einigen Versuchen mit verschiedenen Debian-Releases, Paketen von zap.tartarus.org und Einträgen in /etc/apt/preferences (siehe man apt_preferences) habe ich mich für folgende Quellen-Kombination entschieden:

Entsprechend sind die Dateien /etc/apt/sources.list und /etc/apt/apt.conf anzulegen.

Die Kommandos

vdr:# apt-get update
vdr:# apt-get dist-upgrade
bringen Paket-Index und System auf den neuesten Software-Stand von Sarge. Danach werden X11, VDR mit Xine-Plugin, Xine (Xine-Lib und User-Interface) und einige DVB-Tools installiert, gefolgt vom 2.6er-Kernel von Debian Etch:
vdr:# apt-get install x-window-system-core x-window-system xserver-xfree86 vdr-plugin-xine libxine1 xine-ui dvb-utils dvbstream
vdr:# apt-get install vim unzip hdparm hddtemp
vdr:# apt-get install -t testing linux-image-2.6-686
Die Pakete dvb-utils und dvbstream werden zwar nicht direkt für den VDR benötigt, eignen sich aber sehr gut zur Fehlersuche und für Tests von DVB.

Nach Installation dieser Pakete können ggf. nicht mehr benötigte Pakete gelöscht werden. Vor dem Entfernen des 2.4er-Kernels muss das System mit dem 2.6er-Kernel gebootet werden.

vdr:# apt-get remove kernel-image-2.4.27-2-386 modutils
vdr:# apt-get remove nvi
Die DVB-T-Karte wird zwar ab Kernel 2.6.10 automatisch erkannt. Allerdings muss das DVB-Modul noch manuell nachgeladen werden:
vdr:# modprobe dvb-bt8xx
vdr:# echo dvb-bt8xx >> /etc/modules

X11

In der Konfiguration des X-Servers (/etc/X11/XF86Config-4) sollten die Zeilen
Section "ServerFlags"
	Option	"AllowMouseOpenFail"
EndSection
nicht fehlen, ansonsten startet er nicht ohne Maus und Tastatur.

DVB-Empfang testen

Da VDR eine recht komplexe Software ist, sollte man sich vor dessen Konfiguration vergewissern, dass der DVB-T-Empfang auch wirklich funktioniert. Dies geht am einfachsten mit tzap und dvbstream:

Das Kommando

vdr:# mkdir -p ~/.tzap/
vdr:# scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/de-Muenchen > ~/.tzap/channels.conf
generiert die channels.conf für tzap. Vor dem Aufruf muss VDR ggf. mit /etc/init.d/vdr stop beendet werden.
Sollte unter /usr/share/doc/dvb-utils/examples/scan/ keine passende Frequenztabelle auffindbar sein, findet man sie wahrscheinlich im CVS: http://www.linuxtv.org/cgi-bin/viewcvs.cgi/dvb-apps/util/scan/.

In der Datei ~/.tzap/channels.conf sollten nun alle gefundenen Sender eingetragen sein. Der Eintrag für den Sender VOX schaut in München z.B. so aus:

VOX:578000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:16418
Mit
vdr:# tzap VOX
wird die DVB-Karte auf den Sender VOX eingestellt. Die Video- und Audio-Daten lassen sich nun mit einem der beiden (z.B. in einer zweiten Shell) parallel zu startenden Kommandos
vdr:# dvbstream -o -ps -qam 16 -cr 1_2 545 546 | xine stdin:/
vdr:# dvbstream -o -ps -qam 16 -cr 1_2 545 546 > VOX.mpeg
mit Xine darstellen bzw. in eine MPEG-Datei ausgeben. Die Kommando-Parameter entnimmt man der entsprechende Zeile aus der ~/.tzap/channels.conf. Achtung: Die channels.conf von tzap hat ein anderes Format als die vom VDR.

Ist bis hier alles OK geht's an die Konfiguration von VDR.

VDR einrichten

Der VDR benötigt für den Empfang eigentlich nur die richtige channels.conf unter /var/lib/vdr/. Diese kann man einfach von vdr-wiki.de herunterladen (DVB-T) oder z.B. von Kanotix übernehmen.

Mit

vdr:# /etc/init.d/vdr start
wird VDR dann gestartet. Die Konfigurationsdateien von VDR liegen unter /var/lib/vdr/ und /etc/vdr/, VDR-Logmeldungen stehen standardmäßig in /var/log/messages. In der Datei /etc/default/vdr können einige Start-Parameter für den VDR angepaßt werden. Ansonsten wird VDR bequem über das OSD konfiguriert. Dort kann man u.a. auch festlegen, dass VDR die Systemzeit über das DVB-Zeitsignal setzt.

Xine starten

Xine besteht aus den Multimedia-Bibliotheken Xine-Lib (libxine1) und dem User-Interface (normalerweise xine-ui). Beide Pakete von e-tobi.net enthalten bereits die für den Zugriff auf VDR benötigten Patches. Die Tastenbelegung für die VDR-Steuerung muss aber noch in der Datei ~/.xine/keymap vorgegeben werden. Am einfachsten übernimmt man dazu die Vorlage von vdr-wiki.de. In jedem Fall sollte man sich die Tastenbelegung noch im Keymap-Editor der Xine-GUI anschauen und sie ggf. nachbearbeiten.

In der Datei ~/.xine/config sollte noch der Eintrag

gui.dropped_frames_warning:0
nicht fehlen. Das Kommando
vdr:# xine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
sollte nun das VDR-Fernsehbild (unter X11) anzeigen.
Xine bietet eine ganze Reihe von Kommandozeilen-Optionen, die er mit xine --help auflistet. Die im Zusammenhang mit dem VDR wichtigsten Optionen sind im Init-Skript weiter unten enthalten.

Infrarot-Fernsteuerung und VFD-Display

Die Programme auf CD mitgelieferten Programme IRTrans Client/Server funktionieren (Ausgabe von Text, setzen der Willkommens-Anzeige, versetzen des Displays in den Standby-Betrieb, Kommandos ans Display senden usw.), machen auf mich aber keinen besonders ausgereiften Eindruck.

Die Installation von der mitgelieferten CD erfolgt mit

vdr:# mount /dev/cdrom
vdr:# cd /media/cdrom/IR\ Trans
vdr:# sh install.sh 
unter /usr/local/irtrans/. Einige der dort installierten Dateien habe ich durch neuere Versionen von irtrans.de ersetzt. Im Verzeichnis remotes/ befinden sich die Definitionen der Tasten-Codes von verschiedenen Fernsteuerungen. Mit
vdr:# cd /usr/local/irtrans
vdr:# ./irserver -debug_code -loglevel 4 /dev/ttyUSB0
werden die von der IR-Fernsteuerung gesendeten Codes angezeigt, z.B.
7500c38011000000[0.0] ok mediacenter
[0.0]: S11101010000000000011110000010001001000 48
Die zweite Zeile entspricht einer nicht unter remotes/ aufgelisteten Taste. Die angezeigten Daten können zur Ergänzung von fehlenden Tastatur-Codes unter remotes/ verwendet werden. Da remotes/mediacenter.rem am besten auf die bei mir mitgelieferte Fernbedienung paßt, habe ich die fehlenden Einträge dort nachgetragen und die restlichen remotes/*.rem-Dateien gelöscht. Der Eintrag für den obigen unbekannten Code lautet z.B.
  [tvrec][T]0[D]S11101010000000000011110000010001001000
Alternativ können die Codes auch automatisch mit dem Kommando irclient in die Konfigurationsdatei eingetragen werden. Hier liegt meine Datei remotes/mediacenter.rem.

Der LIRC-kompatible Server wird mit

./irserver -daemon /dev/ttyUSB0
als Daemon gestartet. Mein Init-Skript /etc/init.d/irserver gibt's hier.

Das Kommando

update-rc.d irserver start 10 2 3 4 5 . stop 30 0 1 6 .
legt die Soft Links zum automatischen Starten des Skriptes beim Booten an.

VDR erkennt (bzw. glaubt) nun beim Start, dass LIRC gestartet ist und springt ins Menü zum Lernen der Tasten-Codes. Diese werden in die Datei /var/lib/vdr/remote.conf abgelegt und können dort bei Bedarf manuell nachbearbeitet werden.
Hier zeigt sich leider, dass irserver eben doch nicht LIRC ist. Das Skript /usr/lib/vdr/remotes-loader.sh überprüft explizit, ob der LIRC-Daemon lircd läuft, was er natürlich nicht tut. Daher löscht das Skript bei jedem VDR-Start den Inhalt von /var/lib/vdr/remote.conf. Hier hilft es, das Skript /usr/lib/vdr/remotes-loader.sh um folgende Zeilen zu ergänzen:

vdr:# diff -u /usr/lib/vdr/remotes-loader.sh /usr/lib/vdr/remotes-loader.sh.orig
--- /usr/lib/vdr/remotes-loader.sh      2005-11-01 11:40:16.000000000 +0100
+++ /usr/lib/vdr/remotes-loader.sh.orig 2005-06-26 01:28:37.000000000 +0200
@@ -11,11 +11,6 @@
             REMOTES="LIRC"
         fi
     fi
-    if [ -e "/var/run/irserver.pid" ]; then
-        if ps --no-headers --pid `cat /var/run/irserver.pid` | grep -q "irserver" ; then
-            REMOTES="LIRC"
-        fi
-    fi
     if [ "$KEYB_TTY" != "" ]; then
         REMOTES="$REMOTES KBD"
     fi
Der VDR kann nun bequem über die Fernbedienung gesteuert werden. Leider werden diese Änderungen bei jedem Update des VDR-Paketes überschrieben und müssen dann neu gemacht werden.

Mit dem Kommando

vdr:# /usr/local/irtrans/irclient 127.0.0.1 Optionen
lassen sich weitere Funktionen des VFD-Modules steuern, insbesondere Text auf dem Display ausgeben oder die Willkommen-Meldung ändern. Die Dokumentation dazu finde ich ziemlich mager, hier hilft nur probieren.

VDR-Plugins

Der Schwerpunkt von VDR liegt zwar auf DVB. Über verschiedenste Plugins läßt er sich aber um sehr viele Funktionen erweitern. Eine Liste der (als Debian-Binärpaket) verfügbaren Plugins zeigt das Kommando apt-cache search vdr-plugin an. Installiert werden die Plugins wie gewohnt mit apt-get install Plugin-Name. Konfiguriert werden sie über das OSD von VDR oder in den Dateien unter /etc/vdr/plugins/.

Mit folgende Plugins habe ich bisher herumgespielt:

vdr-plugin-xine

Dieses Plugin wird wie bereits erwähnt für die Video-Ausgabe mit Xine benötigt.

vdr-plugin-mp3

Läßt den VDR MP3, OGG und Audio-CDs abspielen.

Für die Wiedergabe Audio-CDs wird das Dateisystem bzw. Kernel-Modul cdfs benötigt, welches leider nicht Bestandteil des offiziellen Kernels ist und daher selbst kompiliert werden muss.

Da unser Kernel aus Etch/Testing-System stammt, muss auch das neue Kernel-Modul unter Etch kompiliert werden. Für das Kompilieren von Kernel-Modulen werden auf dem Rechner ggf. ein paar zusätzliche Pakete sowie die Kernel-Quellen benötigt:

etch:# apt-get install linux-source kernel-package libncurses5-dev
etch:# cd /usr/src/
etch:# tar -xvjf linux-source-2.6.12.tar.bz2
etch:# cd /usr/src/linux-source-2.6.12/
etch:# make menuconfig
make menuconfig erstellt die Kernel-Konfigurationsdatei .config. Da hier keine speziellen Einstellungen benötigt werden, kann das Menü sofort nach dem Start wieder verlassen werden.

Das Modul wird dann übersetzt und installiert mit:

etch:# apt-get install cdfs-src
etch:# cd /usr/src/
etch:# tar -xvjf cdfs.tar.bz2
etch:# cd /usr/src/linux-source-2.6.12/
etch:# dpkg --list | grep linux-image-2.6.12
ii  linux-image-2.6.12-1-686      2.6.12-10      Linux kernel 2.6.12 image on PPro/Celeron/PII/PI
etch:# dpkg --list | grep kernel-package
ii  kernel-package                9.008.4        A utility for building Linux kernel related Debi
etch:# make-kpkg --append-to-version=-1-686 --initrd --revision=9.008.4 kernel_image
etch:# make-kpkg --append-to-version=-1-686 --revision=9.008.4 modules_image
Der ganze Kernel muss eigentlich nur kompiliert werden (Befehl make-kpkg ... kernel_image), um dem Kernel-Modul die zum Kernel passenden Versionsinformationen mitzugeben (Datei Module.symvers). Das Modul funktioniert auch ohne diesen Schritt, beim Kompilieren und Laden des Moduls erscheinen aber Warnungen über die fehlende Versionsnummer.
Die Option --append-to-version=-1-686 sorgt dafür, dass die Module später im richtigen Verzeichnis unter /lib/modules/ landen.

Das Debian-Paket /usr/src/cdfs-2.6.12-1-686_2.4.20.a+2.6.12-2+9.008.4_i386.deb kann dann auf dem VDR-Rechner kopiert und dort installiert werden:

vdr:# dpkg --install cdfs-2.6.12-1-686_2.4.20.a+2.6.12-2+9.008.4_i386.deb
Mit cdfs können nun Audio-CDs direkt ins Dateisystem gemountet werden:
vdr:# mount -o ro -t cdfs /dev/cdrom /mnt/
Unter /mnt/ liegen nun die Audio-Tracks auf der CD als WAV-Dateien. Das MP3-Plugin kann diese Funktion nutzen, sobald folgende Schritte gemacht sind:
vdr:# cd /media/
vdr:# mkdir cdfs0
vdr:# ln -s cdfs0 cdfs
Einträge in /etc/fstab:
/dev/hdb        /media/cdfs0        cdfs    ro,user,noauto  0       0
und /etc/vdr/plugins/mp3sources.conf:
/media/cdfs0;CD-Audio;1;*.wav
/media/cdrom0;CDROM;1

vdr-plugin-dvd

Spielt DVDs ab. Damit das Plugin das DVD-Laufwerk findet, war bei mir
vdr:# ln -s hdb /dev/dvd
nötig.

Leider ist das Plugin zumindest auf meiner Installation fast unbrauchbar: Die DVD wird abgespielt, allerdings läuft es instabil, ein DVD-Menü hat es mir noch nie angezeigt und der schnelle Vor- und Rücklauf arbeitet auch nur bei Gelegenheit.

vdr-plugin-image

Zum Betrachten von Bildern.

vdr-plugin-osdteletext

Ein Plugin zur Anzeige von Teletext im OSD mit dem Fernsehbild im Hintergrund.
Eigentlich wollte ich vdr-plugin-teletext installieren, dieses ist aber nicht als Binäpaket im Release vdr-experimental von e-tobi.net enthalten, das Kompilieren aus den Quellen hat bei mir nicht funktioniert.

vdr-plugin-mplayer

Das Plugin ermöglicht das Abspielen von Video-Dateien (MPEG, DivX usw.) über den VDR. Installiert wird es mit
vdr:# apt-get install vdr-plugin-mplayer mplayer-586
Ohne mplayer-586 wird mplayer-386 installiert.

Das Plugin funktioniert normalerweise nur mit einer Full-Featured-Karte, nicht mit Xine. Allerdings gibt es im vdr-plugin-xine ein Programm namens xineplayer, welches als Ersatz für den mplayer funktioniert. Um diesen zu aktivieren muss die Datei /etc/vdr/plugins/vdrmplayer.sh.conf angepaßt werden:

# Where to find mplayer executable ?
MPLAYER="/usr/bin/xineplayer"
Der xineplayer arbeitet zur Zeit nur im "traditional mode" des vdr-plugin-mplayer, läß sich also nicht über den VDR steuern. Die Wiedergabe sollte aber über den blauen Knopf der Fernbedienung beendet werden können, was bei mir aber dazu führt, dass Xine keinerlei VDR-Daten mehr anzeigt und neu gestartet werden muss. Während des Abspielens mit xineplayer kann Xine ggf. direkt durch LIRC bzw. den IRTrans Server gesteuert werden, habe ich aber noch nicht getestet.

Audio einstellen

In der Standardeinstellung war bei meinem Gerät die Audio-Signalstärke zu niedrig. Abhilfe schaffte ALSA:
vdr:# apt-get install alsa-utils
vdr:# alsaconf
vdr:# alsamixer
vdr:# alsactl store
alsaconf richtet ALSA auf dem System ein. Die Dialoge sind weitgehend selbsterklärend, im Zweifel einfach die Standardeinstellungen beibehalten.
Der alsamixer hilft bei der Einstellung der gewünschten Lautstärke. Am wichtigsten ist der erste Regler, Master. alsactl store speichert die eingestellten Werte in die Datei /var/lib/alsa/asound.state. Der Inhalt der Datei ist ebenfalls recht selbsterklärend. Die Master-Lautstärke wird z.B. im Bereich
        control.2 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 63'
                iface MIXER
                name 'Master Playback Volume'
                value.0 63
                value.1 63
        }
festgelegt. Nach einem Neustart des Systems werden diese Einstellungen nun automatisch gesetzt.

System Couch-Potato-tauglich machen

Nachdem nun alles soweit funktioniert möchte man (und v.a. Frau) sich nicht jedesmal am System einloggen müssen und die Programme manuell starten. Das muss natürlich alles automatisch und möglichst schnell gehen.

X11 und Xine automatisch starten

Zu diesem Zweck legt man ein Init-Skript an, welches zuerst einen X-Server ohne Display-Manager usw. startet und dann Xine im Vollbild-Modus. Beide Prozesse sollen unter dem User vdr laufen.

Damit nicht nur root den X-Server starten darf, muss erst noch mit

vdr:# dpkg-reconfigure xserver-common
die Konfiguration entsprechend angepaßt werden:
Wählen Sie aus, welcher Benutzertyp den X-Server starten darf.
                                                                    Jeder
Alternativ kann man manuell den Eintrag allowed_users=anybody in /etc/X11/Xwrapper.config anlegen.

Zu beachten ist außerdem, dass der User vdr auf die Audio- und Video-Devices zugreifen muss, ggf. auch auf andere (CDROM, Floppy usw.). Dazu wird er in die entsprechenden Gruppen (siehe /etc/group) aufgenommen:

vdr:# usermod -G audio,video,cdrom vdr
Wie oben beschrieben muss noch die Datei ~vdr/.xine/keymap angepaßt werden.

Das Init-Skript /etc/init.d/Xxine liegt hier.

Der X-Server für Xine startet nach /etc/init.d/Xxine start auf VT8 (erreichbar mit Strg-Alt-F8). Beide Prozesse werden vom User vdr gestartet.

Das Kommando

update-rc.d Xxine start 99 2 . stop 01 0 1 6 .
legt die Soft Links zum automatischen Starten des Skriptes beim Booten an.

Rechner per Fernbedienung hochfahren

Zum Hochfahren des Rechners per Fernbedienung muss das Modul (bei laufendem irserver) mit irclient programmiert werden:
vdr:# cd /usr/local/irtrans/
vdr:# ./irclient localhost


  1 - Send
  2 - Learn
  3 - Status

 99 - Exit

Select command 3

0 Device(s) Found:


99 - Exit

Select command 0
Device [0]:

Repeat Mask: o  o  o  o  o  o  o  x  x  o  o  o  o  o  o  o
             0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15

Device Mode Send             [20]: x
            IR               [21]: x
            SBUS             [22]: x
            IR RemoteCtrl    [23]: x
            SBUS RemoteCtrl  [24]: x
            RAW              [25]: o
            Fast Mode        [26]: o
            SBUS send Repeat [27]: x

PowerOn Remote               [40]: .04.30
PowerOn Command              [41]:

Cancel                     [88]
Save & Exit                [99]

Select command 40

Enter PowerOn Remote: mediacenter
Device [0]:

Repeat Mask: o  o  o  o  o  o  o  x  x  o  o  o  o  o  o  o
             0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15

Device Mode Send             [20]: x
            IR               [21]: x
            SBUS             [22]: x
            IR RemoteCtrl    [23]: x
            SBUS RemoteCtrl  [24]: x
            RAW              [25]: o
            Fast Mode        [26]: o
            SBUS send Repeat [27]: x

PowerOn Remote               [40]: mediacenter
PowerOn Command              [41]:

Cancel                     [88]
Save & Exit                [99]

Select command 41

Enter PowerOn Command: power
Device [0]:

Repeat Mask: o  o  o  o  o  o  o  x  x  o  o  o  o  o  o  o
             0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15

Device Mode Send             [20]: x
            IR               [21]: x
            SBUS             [22]: x
            IR RemoteCtrl    [23]: x
            SBUS RemoteCtrl  [24]: x
            RAW              [25]: o
            Fast Mode        [26]: o
            SBUS send Repeat [27]: x

PowerOn Remote               [40]: mediacenter
PowerOn Command              [41]: power

Cancel                     [88]
Save & Exit                [99]

Select command 99


  1 - Send
  2 - Learn
  3 - Status

 99 - Exit

Select command 99
mediacenter benennt die Datei remotes/mediacenter.rem mit den Fernbedienungs-Codes, power den Namen der Taste aus dieser Datei (siehe oben), über welche der Rechner eingeschalten werden soll.

Nach diesen Einstellungen kann der Rechner per Fernbedienung eingeschalten werden, mit einer Ausnahme: Wurde der Rechner komplett vom Stromnetz getrennt, muß er beim ersten Mal über den Power-Knopf eingeschalten werden.

Schneller Booten

Um den Boot-Vorgang zu beschleunigen, kann man nicht benötigte Software löschen oder einfach die Init-Skripten deaktivieren. Folgende Tabelle enthält eine Auswahl der Prozesse, die beim Booten gestartet, vom VDR aber nicht benötigt werden. Zu beachten ist, dass bei Deaktivierung von einigen Prozessen kleinere Konfigurationsänderungen am System nötig sind (siehe Anmerkungen in der letzten Spalte).
Dienst Debian-Paketname Init-Skript unter /etc/init.d/ Anmerkungen
sysklogd sysklogd sysklogd  
klogd klogd klogd  
PPP ppp ppp
pppd-dns
 
PPP dns-clean pppconfig dns-clean  
portmap portmap portmap  
inetd netkit-inetd inetd  
lpd lpr lpd  
SSH-Daemon openssh-server ssh  
Mailserver Exim exim4-base exim4  
NFS nfs-common nfs-common  
Netzwerk netbase networking  
Einrichten der Netwerk-Interfaces ifupdown ifupdown-clean
ifupdown
 
Automatische Hardware-Erkennung discover1 discover Einige Kernel-Module werden beim Booten nicht mehr automatisch geladen und müssen in die /etc/modules eingetragen werden (lsmod zeigt die geladenen Module an).
Automatische Erkennung von Hotplug-Geräten im laufenden Betrieb hotplug hotplug
hotplug-net
X11 Font Server xfs xfs Gleichzeitig den Eintrag FontPath "unix/:7100" in /etc/X11/XF86Config-4 entfernen.
Xprt xprint-common xprint  
X Display Manager xdm xdm  

Debian verwendet standardmäßig (und abweichend von anderen Linux-Distributionen) den Runlevel 2 für den "normalen" Multiuser-Betrieb (siehe /etc/inittab). Ein nicht benötigter Dienst wird nach rm /etc/rc[S2].d/S[0-9][0-9]Initscript beim Booten (in Runlevel 2) nicht mehr gestartet.
Bei meinem System hat sich durch Deaktivierung der aufgelisteten Dienste der gesamte Boot-Vorgang (BIOS, Grub, Linux) von ca. 95 auf 65 Sekunden verkürzt, wobei die automatische Hardware-Erkennung und X11 mit xdm den Löwenanteil ausmachen.
Die gelöschten Soft Links können bei Bedarf mit dpkg-reconfigure --unseen-only Paketname wieder angelegt werden (dpkg-reconfigure --unseen-only --all konfiguriert alle Pakete neu). apt-get remove Paketname löscht das Paket (Paket-Abhängigkeiten beachten!).
Mit /etc/init.d/Initscript start kann der Dienst nachträglich manuell gestartet werden.

Nützliches und Sonstiges

Im Folgenden sind weitere Änderungen am System beschrieben, die für den einen oder anderen Sinn machen können. Die Beschreibung ist teilweise unvollständig, da ich selbst damit noch rumspiele oder die Änderung (erst mal) verworfen habe.

Display-Ansteuerung mit LCDProc

Leider hab ich LCDProc noch nicht zur Mitarbeit bewegen können. Mein aktueller Stand:

Der Daemon LCDd von LCDProc nimmt Texte und Kommandos übers Netz entgegen und zeigt diese auf dem Display an. Konfigurationsdatei: /etc/LCDd.conf. Das Kommando lcdproc übergibt dem Server einige Systemparameter (CPU-Last usw.), die der LCDd dann auf dem Display ausgibt. Als Treiber sollte für das bei mir eingebaute VFD-Display Sasem verwendet werden, habe das Display allerdings mit LCDd noch nicht zum Laufen gebracht (aber auch nicht sehr viel ausprobiert). Ggf. kann man das Kommando lcdproc auch zusammen mit irserver verwenden (hab ich noch nicht getestet).

Fernbedienung mit LIRC

Das USB-Modul vom Dign HTPC HV5-Gehäuse wird vom Debian-Paket noch nicht richtig unterstützt (das Modul lirc_sasem läßt sich unter Kernel 2.6 nicht übersetzen, weil die Version aus dem Debian-Paket zu alt ist), daher haben meine Versuche nicht zum Ziel geführt:

Für die Fernsteuerung des VDRs über LIRC wird das LIRC-Paket sowie ein auf den IR-Empfänger passendes Kernel-Modul benötigt. LIRC wird wie gewohnt installiert mit:

vdr:# apt-get install lirc
Im Konfigurationmenü wird unter USB devices der Eintrag Dign HV5 HTPC IR/VFD Module ausgewählt.

Die Kernel-Module für LIRC gibt es leider nicht als Binärpaket, sie müssen also ähnlich wie das cdfs-Modul oben manuell übersetzt werden. Den Debian-Quelltext (Paket lirc-modules-source) habe ich auf einem reinen Etch/Testing-System kompiliert und das entstandene Installationspaket dann auf dem VDR-Rechner installiert:

etch:# cd /usr/src/
etch:# apt-get install linux-source kernel-package libncurses5-dev
etch:# tar -xvjf linux-source-2.6.12.tar.bz2
etch:# cd /usr/src/linux-source-2.6.12/
etch:# make menuconfig
Das Paket lirc-modules-source von Etch/Testing war fehlerhaft, daher habe ich das Paket von Sid/Unstable verwendet. Dazu sind folgende temporäre Einträge in /etc/apt/sources.list zu machen:
## Sid/Unstable
deb     http://ftp.de.debian.org/debian/         sid                      main contrib non-free
deb-src http://ftp.de.debian.org/debian/         sid                      main contrib non-free
Dann:
etch:# apt-get update
etch:# apt-get install lirc-modules-source
Im nun folgenden Dialog habe ich erst mal alle Module ausgewählt, dann als SIR-Device Other angegeben. Im nächsten Dialog sollte man die Module besser noch nicht kompilieren, ansonsten werden sie nur lokal installiert, aber kein Debian-Paket daraus gemacht. Außerdem wird das benötigte Modul ohnehin noch nicht richtig übersetzt.
Die Einträge für Sid/Unstable sollten nun wieder aus /etc/apt/sources.list entfernt werden, gefolgt von apt-get update.
etch:# cd /usr/src/
etch:# tar -xzf lirc-modules.tar.gz
Der Quelltext zu den LIRC-Modulen landet dann unter /usr/src/modules/lirc/. Hier gibt es leider ein Problem: lirc_sasem wird von /usr/src/modules/lirc/Makefile nicht kompiliert, da das Modul unter Kernel 2.6 nicht kompilierbar ist (siehe /usr/src/modules/lirc/drivers/lirc_sasem/lirc_sasem.c). Die Software-Version ist zu alt. Nach dem Austauschen der Quellen unter /usr/src/modules/lirc/drivers/lirc_sasem/ mit neuen Versionen von lirc.org und dem Anpassen von /usr/src/modules/lirc/Makefile und /etc/lirc/lirc-modules-source.conf (sasem in der Zeile LIRC_MODULES= dazunehmen), wird das Modul kompiliert und läßt sich laden.

Die restlichen Schritte sind dann:

etch:# cd /usr/src/linux-source-2.6.12/
etch:# dpkg --list | grep linux-image-2.6.12
ii  linux-image-2.6.12-1-686      2.6.12-10      Linux kernel 2.6.12 image on PPro/Celeron/PII/PI
etch:# dpkg --list | grep kernel-package
ii  kernel-package                9.008          A utility for building Linux kernel related Debi
etch:# make-kpkg --append-to-version=-1-686 --initrd --revision=9.008 kernel_image
etch:# make-kpkg --append-to-version=-1-686 --revision=9.008 modules_image
Das Debian-Paket /usr/src/lirc-modules-2.6.12-1-686_0.7.1pre2-10+9.008_i386.deb kann dann auf dem VDR-Rechner kopiert und dort installiert werden:
vdr:# dpkg --install lirc-modules-2.6.12-1-686_0.7.1pre2-10+9.008_i386.deb
vdr:# depmod
Die Konfigurationsdateien von LIRC liegen unter /etc/lirc/. Die dortige Datei lircd.conf enthält die Daten der Fernsteuerung. Funktionieren sollte die Vorlage /usr/share/doc/lirc/remotes/sasem/lircd.conf.dignhv5.
vdr:# cd /etc/lirc/
vdr:# cp /usr/share/doc/lirc/remotes/sasem/lircd.conf.dignhv5 lircd.conf
vdr:# /etc/init.d/lirc start
Die Module werden korrekt geladen und der LIRC-Daemon startet. Leider bekomme ich kein Lebenszeichen von der Fernsteuerung. Wahrscheinlich hilft nur ein komplettes Update der LIRC-Quellen auf den neuesten Stand.

Systeminfo, CDROM/Festplatte herunterregeln usw.

Ggf. interessante Pakete: powertweak, hddtemp, hdparm, blktool. V.a. hdparm sollte mit Vorsicht eingesetzt werden (siehe Manpage).

Temperatur der Festplatte anzeigen:

vdr:# hddtemp /dev/hda
/dev/hda: SAMSUNG SP1604N: 29°C

CDROM herunterregeln:

vdr:# hdparm -E
Festplatte stoppen (Stromsparmodus):
vdr:# hdparm -y /dev/hda
Siehe auch -Y (Schlafmodus), -S (Standby Timeout), -M (Automatic Acoustic Management), Status abfragen mit -C.

Xine-Quellen kompilieren

Die Quelltexte von libxine1 (Multimedia-Bibliotheken) und xine-ui (GUI) werden geladen und das Kompilieren vorbereitet mit:
vdr:# apt-get install devscripts
vdr:# cd /usr/src/
vdr:# apt-get source xine-ui libxine1
vdr:# apt-get build-dep xine-ui libxine1
apt-get build-dep installiert alle fürs Kompilieren benötigten Pakete (über 100 Stück!). Da die Abhängigkeiten ggf. nicht 100-prozentig aufgelöst werden, muss man zwei, drei Pakete manuell mit apt-get install Paketname explizit installieren. Sollten sich dennoch nicht alle Abhängigkeiten auflösen lassen: Einfach mit dem Kompilieren beginnen, debuild meldet auch später noch, welches Paket es ggf. noch benötigt.

libxine1 übersetzen

libxine1 wird kompiliert und installiert mit:
vdr:# cd /usr/src/xine-lib-vdr-1.0.2/
vdr:# debuild --set-envvar DEB_BUILD_OPTIONS="optimize" -uc -us -b -tc
vdr:# dpkg --install /usr/src/libxine1_1.0.2-0vdr1+net1_i386.deb
vdr:# dpkg --install /usr/src/libxine-dev_1.0.2-0vdr1+net1_i386.deb
Die debuild-Option DEB_BUILD_OPTIONS="optimize" sollte bewirken, dass die Binaries auf die lokale Hardware optimiert werden. Die restlichen Optionen sind in man dpkg-buildpackage beschrieben.
Ggf. machen fürs Übersetzen noch einige configure-Optionen Sinn, die man dann allerdings manuell in die Datei debian/rules beim Aufruf von ./configure eintragen muss. ./configure --help zeigt alle verfügbaren Optionen an.

Das Paket libxine-dev muss nur installiert werden, wenn auch xine-ui neu übersetzt werden soll.

xine-ui übersetzen

Für die Aktivierung der VDR-Tasten in xine-ui ist die (hier bereits enthaltene) Option --enable-vdr-keys beim Aufruf von ./configure in der Datei debian/rules zuständig.

Die GUI wird kompiliert und installiert mit:

vdr:# cd /usr/src/xine-ui-0.99.3
vdr:# debuild --set-envvar DEB_BUILD_OPTIONS="optimize" -uc -us -b -tc
vdr:# dpkg --install /usr/src/xine-ui_0.99.3-1ctvdr2_i386.deb
Das reine Kompilieren der Quellen hat bei mir keinen spürbaren Geschwindigkeitsvorteil gebracht, daher benutze ich weiterhin die Debian-Binärpakete.

Xine und XvMC

Einiges erhofft hatte ich mir von den Xine-Plugins xvmc oder xxmc, welche XvMC (XVideo Motion Compensation), eine einfache Hardware-Unterstützung für die Decodierung von MPEG-Daten, unterstützen sollen. Der Intel-Chipsatz i810 sollte XvMC bieten.

Meine Versuche sahen ungefähr so aus:

XvMC (XVideo Motion Compensation) in /etc/X11/XF86Config-4 aktivieren (siehe man 4x i810):

Section "Device"
	Driver      "i810"
	...
	Option  "XvMCSurfaces" "7"
	...
EndSection
XvMC-Bibliotheken installieren:
vdr:# apt-get -t testing install libxvmc1 libxvmc-dev
Dann libxine1 mit den ./configure-Optionen --with-xxmc-lib=I810XvMC --with-xvmc-lib=I810XvMC (in debian/rules) wie oben beschrieben übersetzen.

Leider wurden meine Hoffnungen bisher nicht erfüllt: xine --video-driver xvmc ließ Xine erst gar nicht starten, mit xxmc lief er zwar, das Ruckeln war aber (bei einer CPU-Last von ca. 30%) um einiges heftiger als mit dem standardmäßigen Xv-Output. Auch die Versuche mit dem X-Server von X.org lieferten das selbe Ergebnis.

Kernel kompilieren

Aus den Debian-Kernel-Quellen läßt sich mit Bordmitteln recht einfach ein Binärpaket erstellen:
vdr:# apt-get install linux-source kernel-package libncurses5-dev
vdr:# cd /usr/src/
vdr:# tar -xvjf linux-source-2.6.12.tar.bz2
vdr:# cd linux-source-2.6.12/
vdr:# make menuconfig
vdr:# make-kpkg clean
vdr:# make-kpkg --initrd --revision=linuxvdr0.01 kernel_image
Unter /usr/src/ liegt der neue Kernel dann als Debian-Paket kernel-image-2.6.12_linuxvdr0.01_i386.deb, welches mit
vdr:# dpkg --install /usr/src/kernel-image-2.6.12_linuxvdr0.01_i386.deb
installiert werden kann.

Bootloader-Hintergrund-Bild (Grub)

Einträge in /boot/grub/menu.lst:
    splashimage (hd0,1)/boot/grub/splashimages/linuxinside.xpm.gz
    foreground ffffff
    background 000000
Das Bild (hier linuxinside.xpm.gz) muss dann nach /boot/grub/splashimages/ kopiert werden. Fertige Bilder und eine genaue Beschreibung gibts unter http://linuxwiki.de/GRUB.

Bootsplash

Entweder über einen Kernel Patch oder mit Grub mit gfxmenu in /boot/grub/menu.lst (Suse?).

Rechner automatisch hochfahren lassen

Damit der Rechner automatisch (vor dem Aufnahmestart) einschaltet, muss das Motherboard "Automatic Power Up Control" oder "Resume by Alarm" unterstützen. Dabei wird über ein kleines Tool namens NVRAM WakeUp die Einschalt-Zeit ins Flash geschrieben. Der Rechner schaltet zu diesem Zeitpunkt automatisch ein. Wie's genau geht weiß ich noch nicht.

Ausgabe im Framebuffer

Wie oben erwähnt wollte Xine mit meiner Hardware nicht im Framebuffer laufen. Da ich mir davon allerdings auch nicht allzuviele Vorteile erwarte (vielleicht etwas weniger CPU-Last ohne X11), hab ich das Thema erst mal aufgegeben.

Standard-Zeichensatz auf UTF8 umstellen

Mit
vdr:# dpkg-reconfigure locales
läßt sich der Standard-Zeichensatz des Systems festlegen. Der Versuch, den Zeichensatz auf de_DE.UTF-8@euro umzustellen, scheitert aber leider daran, dass der VDR UTF8 noch nicht unterstützt. Auch andere Programme haben an einigen Stellen noch Probleme mit UTF8.

libdvdcss2

libdvdcss2 installieren, siehe http://www.videolan.org/vlc/download-debian.html.

Synchronisieren großer Datenmengen

Audio und Video-Datein füllen schnell ganze Festplatten. Um die Daten übers Netz oder USB halbwegs schnell abgleichen zu können, hilft rsync ungemein. Der Aufruf
rsync --archive --delete /srcpath/rsyncsrc/ /dstpath/rsyncdst/
synchronisiert den Inhalt des Verzeichnisses /srcpath/rsyncsrc/ (Slash am Ende nicht vergessen!) nach /dstpath/rsyncdst/. Wirkt Wunder bei meiner lahmen USB 1.1-Schnittstelle...

Bekannte Probleme

Sporadisch reagiert Xine nicht mehr auf Tastatur-Kommandos, der VDR läßt sich dann nicht mehr steuern. Da ich den VDR normalerweise über IR-Fernbedienung steuere ist das Problem nur marginal.

Wie oben erwähnt ruckelt das Bild aufgrund der etwas knappen CPU-Leistung bei OSD und kurz nach dem Kanalwechsel.

Gleich nach dem Hochfahren zeigt der VDR kurz (ca. zwei Sekunden) das Menü zum Lernen der Fernbedienungs-Codes an, obwohl diese schon definiert sind.

Der Rechner ist noch nicht ganz so leise, wie man es für einen Wohnzimmer-PC gerne hätte. Es scheint, als ob der Netzteil-Lüfter am meisten Geräusche macht, muss ich mir aber noch genauer ansehen.

Die Xine-Option --post expand verursacht, abhängig von der verwendeten X11-Auflösung, ein blaues Bid bei (echtem) 16:9-Material, zudem "springt" das OSD manchmal zwischen 16:9 und 4:3.

Auf der IR-Fernsteuerung ziert (noch) ein Windows-Icon den Start-Knopf ;-) .

Anhang

Konfigurationsdateien

Im Archiv LinuxVDRconfig.tar.gz liegen die wichtigsten Konfigurationsdateien von meinem VDR-Rechner.

Links




Letzte Änderung: 22.02.2006