Vor einiger Zeit hatte ich meine Erfahrungen mit dem Aufbau eines digitalen Videorecorders (vdr) beschrieben (s. Artikel.
Jetzt war es an der Zeit auf eine neuere Version "upzugraden".
Die Hardware ist noch immer die gleiche: ein VIA EPIA 5000 Board mit einer PVR350 TV-Karte von Hauppauge und einer grossen Festplatte.
Bei der Software hat sich aber einiges geändert, es gibt inzwischen die vdr Version 1.3.41 und der Linux Kernel 2.6 ist Standard.
Was ich nicht wollte war aus den Kernel Sourcen ein neues System zu kompilieren.
Deshalb kam es mir sehr gelegen, dass die Zeitschrift c't auf ihrer Website das neueste "experimentelle" vdr Release auf Basis des 2.6.15 Linux Kernels vorstellte.
Los geht's
Auf einer nicht benötigten Festplatten-Partition habe ich zuerst meine sources.list auf den neuesten Stand gebracht und den neuen Kernel mit "apt-get install kernel-image-2.6.15-ct-1" installiert.
# /etc/apt/sources.list
deb http://ftp2.de.debian.org/debian sarge main non-free contrib
deb http://security.debian.org/ sarge/updates main contrib non-free
deb http://ftp.de.debian.org/debian/ unstable main contrib non-free
deb http://e-tobi.net/vdr-experimental sarge base backports addons vdr-multipatch
deb http://e-tobi.net/vdr-testing sarge base backports addons vdr-multipatch
deb ftp://ftp.heise.de/pub/ct/projekte/vdr/sarge/testing/binary base/
deb http://debian.tu-bs.de/mplayer/ unstable main
deb http://www.heise.de/ct/ftp/projekte/vdr45 experimental/
deb http://www.heise.de/ct/ftp/projekte/vdr45 udev/
deb ftp://ftp.heise.de/pub/ct/projekte/vdr4/cd4/vdr/binary vdr/bigpatch/
deb ftp://ftp.heise.de/pub/ct/projekte/vdr4/cd4/vdr/binary base/
deb ftp://ftp.heise.de/pub/ct/projekte/vdr4/cd4/vdr/binary addons/
deb ftp://ftp.heise.de/pub/ct/projekte/vdr4/cd4/vdr/binary backports/
deb ftp://ftp.heise.de/pub/ct/projekte/vdr4/cd4/vdrdevel/binary vdr/multipatch/
deb ftp://ftp.heise.de/pub/ct/projekte/vdr4/cd4/vdrdevel/binary addons/
Das funktionierte problemlos, und mir fiel auf, dass der neue Kernel schneller ist und schneller auf Eingaben reagiert.
Weil ich immer wieder Schwierigkeiten mit dem Bootloader lilo hatte, habe ich ihn gleich durch grub ausgetauscht.
# /boot/grub/menu.lst
timeout = 5
default 0
title Linux26
root (hd0,2)
kernel /boot/vmlinuz root=/dev/hda3 read-only apm=power-off noapic acpi=on noscsi nousb video=vc:64-64 ramdisk_size=16384
initrd /boot/initrd.img
Tipp:
Es empfiehlt sich im übrigen auf dem vdr-System 2 Systempartitionen zu haben. So kann man mit einer arbeiten und auf der anderen später bequem ein neueres System installieren.
Danach habe ich der Beschreibung auf der c't Website einige Pakete installiert, das Wichtigste beinhaltet die ivtv-Treiber: "apt-get install ivtv0.4-modules-2.6.15-ct-1 cdfs-2.6.15-ct-1 lirc-modules-2.6.15-ct-1".
Firmware
Für die PVR350 gibt es eine neuere Firmware. Wie diese insgesamt 3 Dateien erstellt werden, ist in dieser Anleitung genau beschrieben. Ich habe die Dateien v4l-cx2341x-dec.fw , v4l-cx2341x-enc.fw und v4l-cx2341x-init-mpeg.bin nach /usr/lib/hotplug/firmware kopiert. Das hotplug Verzeichnis wird bei der Installation von udev (s.u.) angelegt.
Probleme
udev
Leider kam an der Stelle, wo die ivtv-Treiber für die PVR350-Karte die 2 Firmware Dateien laden immer die Meldung, dass diese nicht gefunden werden konnten, obwohl sie beide vorhanden waren.
Ein Hinweis auf der c't Website brachte mich weiter. Nach Installation von: "apt-get install udev" konnten die beiden Firmware Dateien gefunden werden:
...
ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
ivtv0: loaded v4l-cx2341x-dec.fw firmware (262144 bytes)
...
und alle Treiber konnten geladen werden.
Falls es danach Probleme mit der Netzwerkverbindung geben sollte, empfehle ich mit "dpkg --set-selections" meine Paketliste zu installieren (verfügbar im Downloadbereich).
Nach der Installation von vdr "apt-get install vdr vdr-plugin-pvr350 vdr-plugin-pvrinput" erschien auf Knopfdruck ("m" auf der Tastatur) das OSD-Menu. (Bei der Gelegenheit sollte man auch gleich das /video-Verzeichnis in /var/lib/video umändern.)
Channels.conf
Aber leider erschien kein Fernsehbild, wo ich doch damals mit viel Mühe die channels.conf Datei erstellt hatte.
Der Grund: das Format dieser Datei hat sich von vdr 1.2 auf 1.3 geändert.
Ein Editieren der alten Datei brachte mich nicht weiter, doch inzwischen gibt es ein Tool, welches die Kanäle selbständig scannt. Es heisst w_pvrscan.
Ich habe meine channels.conf Datei, welche im Münchner Kabelnetz funktioniert, in den Downloadbereich gestellt.
Fernbedienung
Bis jetzt konnte das System nur per Tastatur bedient werden. Der PVR350-Karte liegt aber eine Infrarot-Fernsteuerung bei, die sich viel besser dazu eignen würde.
Die Probleme, die ich bei der ersten Installation des vdrs hatte, waren immer noch die gleichen ...
Nach längerem Herumprobieren, erinnerte ich mich wieder: Es gibt 2 Möglichkeiten, den vdr per Infrarot Fernbedienung zu steuern
- Man verwendet LIRC. Damit können die verschiedensten Fernbedienungen an ein Linux-System angebunden werden. Leider ist bei dem 2.6.15-ct-1 Kernel noch kein lirc_i2c Modul mit kompiliert worden. D.h. man muss sich die Kernel- und LIRC-Sourcen besorgen und das ganze System "von Grund auf hochziehen" - das war mir aber zu aufwändig.
- Deshalb griff ich auf die 2. Möglichkeit ohne LIRC zurück, von der zwar im vdr-Portal abgeraten wurde, die aber für meine Zwecke ausreichend ist: die Verwendung des remote-Plugins. Das war mit "apt-get install vdr-plugin-remote" schnell installiert. Nach Aufruf von modconf musste ich noch unter media/video das Kernel-Modul ir_kbd_i2 installieren.
in der Datei /var/log/user.log fand ich den Eintrag "remote: using '/dev/input/event2'"
In die Konfigurationsdatei /etc/vdr/plugins/plugin.remote.conf schrieb ich "-i /dev/input/event2". Nun muss vdr mit "/etc/init.d/vdr stop" beendet werden und eine evtl. vorhandene Konfig-Datei in /var/lib/vdr/remote.conf gelöscht werden. Nach dem Start von vdr ("/etc/init.d/vdr start") startet vdr das Tastenlernprogramm (s. Onscreen Menu).
Der einzige Nachteil ist, dass das remote Plugin nicht alle Tasten der Original PVR350 Fernbedienung versteht :-( Statt der ok-Taste muss die darunter liegende verwendet, das gilt leider auch für die Gelb- und Blau-Taste (Rot und Grün funktionieren). Ich habe die remote.conf Datei ebenfalls in den Downloadbereich gestellt.
Fazit
Das System noch stabiler geworden Das rechtfertigt im Grunde schon allein den Aufwand für ein Update. Ausserdem ist eine höhere Aufnahmequalität (Videobitrate 6000 kbit/s) im pvrinput -Plugin voreingestellt und damit deutlich besser als mit der alten Einstellung.
Ferner kann ich den VDR über das Web-Admin Tool bequem programmieren und mit einer virtuellen Fernbedienung fernsteuern. Nur der Live-Preview geht nicht... Ferner musste ich noch im /etc/init.d/vdradmin Skript nach der Variablendeklaration am Anfang noch die Zeilen
touch $PIDFILE
chown $USER:$GROUP $PIDFILE
ergänzen, sonst startet vdradmin bei mir nicht.
Offene Punkte
Folgende Funktionen möchte ich noch gerne zum Laufen bringen:
- Automatisches Einschalten zu einem bestimmten Aufnahme-Zeitpunkt.
Momentan muss der VDR eingeschaltet sein. Es gibt ein neues acpi-Plugin für den vdr, was aber leider nicht mit meinem VIA EPIA 5000 Boad funktioniert. - Abspielen von diversen MPEG und AVI-Dateien mittels mplayer. Ist mir leider immer noch nicht gelungen :-(
Als Abhilfe habe ich mir auf einem zweiten PC (Pentium II, 500MHz) ProjectX installiert. Damit ist es in erstaunlich kurzer Zeit möglich (ca. 10Minuten), verschiedenste Video-Formate in einen vdr-konformen MPEG-Stream (vdr-Format) zu konvertieren. Wobei auf den vdr über nfs zugegriffen wird - und weil es in Java geschrieben ist, läuft ProjectX auch auf Win-Plattformen. - Probleme mit ac3-Sound ("Dolby Digital").
Beim Abspielen von gekauften DVDs ist nur "Gekratze" zu hören. Im Moment muss ich bei diesen DVDs die Video- und Tonspur extrahieren, danach die Tonspur von ac3 nach mp2 konvertieren und schliesslich mit mplex wieder zusammenspielen ("multiplexen"). Das ist etwas umständlich ... - vdradmin: Live-Preview (Das liegt vermutlich auch an meinem VIA EPIA 5000 Board, es ist nicht 100%-ig Pentium II kompatibel und hat Probleme mit den i586 Paketen.)
- Ich bin noch auf der Suche nach den Radio-Kanälen.
Installierte Plugins
Folgende Plugins habe ich installiert: vdrconvert burn mplayer pvr350 streamdev-server pvrinput console control streamdev-client tvonscreen vdrrip tvtv yaepg dvd weather games image vcd remote vdrc calc dvdselect.
Mein persönliches Highlight ist das "vdr-addon-tvmovie2vdr" Plugin. Damit kann ich mir das komplette Fernsehprogramm vom Internet holen, weil ein Update über das Kabel bei einer rein analogen, PVR350-basierten Lösung leider nicht möglich ist.
Sehr nützlich ist auch das dvd Plugin, um DVDs abzuspielen und das dvdselect Plugin, um DVDs ins ISO-Format zu konvertieren. Die konvertierten ISO-Files werden auf der Festplatte abgelegt und stellen quasi "virtuelle DVDs" dar.
Ausserdem kann ich noch das vdrconvert-Plugin empfehlen, mit dem das originäre vdr-Dateiformat in verschiedene andere Formate konvertiert werden kann. In Ergänzung dazu, kann das burn-Plugin mehrere vdr-Filme auf eine DVD kopieren, falls die Filme nicht auf eine DVD passen, wird automatisch eine Kompression durchgeführt !
Ein Tipp zum Schluss
Wenn alles soweit funktioniert sollte unbedingt ein Image-Backup der Systempartition (z.B. mit Partimage) erstellt werden. Falls es einmal Probleme geben sollte, ist das Backup in minutenschnelle wieder eingespielt.
Ergänzung
Mir ist aufgefallen, dass unter dem unstable Zweig des vdr's jetzt schon die Version 1.4 installiert wird. Das ist Schade, denn leider gibt es noch nicht viele Plugins und Addon-Pakete, die mit vdr 1.4 laufen, vor allem gab es (Stand 8.5.06) noch kein analog- oder pvrinput Plugin !
Buchtipp
56-seitige Leseprobe
Gute Links:
- Die wichtigste Info-Quelle ist das VDR-Portal.
- http://www.vdr-wiki.de/
- Hier kann man einen vdr live sehen: http://www.div-a.de/.
- MythTV, PVR350 und Kubuntu auf einem VIA EPIA Board installieren.