C't-VDR
Die c't-VDR-Distribution wird von der Zeitschrift c't vertrieben und basiert auf Debian-Linux mit entsprechenden Anpassungen. Einer der Vorteile der Debian Basis ist die spätere individuelle Erweiterbarkeit der Installation auch aus anderen Quellen als von der c't. Auch Pakete, die nicht unmittelbar mit dem VDR zu tun haben, können diesen sinnvoll ergänzen (z.B Midnight Commander, less, ..).
Die Installation kann komplett offline erfolgen und der VDR in Betrieb genommen werden. Ab Version 2 können schon bei der Installation die Install-Routinen aktualisiert und aktuelle Pakete runtergeladen werden. Ab Version 4 ist der Installer auch nach der Erst-Installation weiter zum Ändern und Nachinstallieren ausführbar.
Beschrieben wird die jeweils aktuelle Version unter http://www.heise.de/ct/ftp/projekte/vdr/.
Inhaltsverzeichnis |
Historie
Erste Version
Die erste Version wurde mit Erscheinen der c't 20/2003 auf der Heft-CD veröffentlicht. Das enthaltene Image wurde auf eine CD-R gebrannt, die dann bootfähig war. Inhalt ist ein Kernel 2.4.21, VDR 1.2.2, DVB-Treiber 1.0, Plug-ins nur mit Updates möglich.
c't-VDR Version 2
In Heft c't 08/2004 erschienen, das iso-Image 2.06 ist hier online ladbar. Alternativ ist auch das Erstellen eines .iso-Images per jigdo möglich. Inhalt ist ein Kernel 2.4.24, VDR 1.2.6-15, DVB-Treiber 1.0 und 1.1, Hollywood+, PVR, diverse Plug-ins und Add-ons.
c't-VDR Version 3
Als nächstes wurde mit dem c't special 05/2004 "Kino daheim" die Version 3 verfügbar, .iso-Image 3.06 und jigdo-Dateien sind hier verfübar. Der c't-VDR 3 besteht aus einem Kernel 2.4.27, VDR 1.2.6-27 oder 1.3.12-2 und Debian-Sarge (Testing).
c't-VDR Version 4
Im c't special 03/2005 "Media Center PC" erschien die Version 4 (bzw nach jigdo-Aktualisierung 4.01). Das Heft ist ausverkauft, online war diese Version nie verfügbar. Diese c't-VDR-Distribution enthält sowohl die stabile VDR-Version (1.2.6-34) als auch die Entwicklerversion (1.3.24-1) und ermöglicht die Wahl zwischen Kernel 2.4.30 und 2.6.12.
c't-VDR Version 4.5
Seit dem 08.01.2006 gibt es die Version 4.5 als reine Web-Veröffentlichung, angekündigt wurde sie hier. Kernel 2.4.31, 2.6.12 und über Update 2.6.15 stehen zur Auswahl, VDR ist in der Version 1.3.37 enthalten. Die seperate Vdrdevel Version wurde entfernt.
Struktur
Was der VDR macht und wo die Dateien liegen:
Wenn der Rechner startet, wird mit dem Linux-Loader LiLo das zu startende Betriebssystem ausgewählt. Der erste Eintrag in der /etc/lilo.conf wird von lilo nach Ablauf der Wartezeit automatisch gestartet. Normalerweise wird das der VDR sein. So ist ein Timer-gesteuertes Aufwachen und Aufnehmen von Sendungen möglich. Ab c't-VDR 4.x kommt der Bootmanager Grub zum Einsatz (in c't-VDR 2 auch schon).
Nun wird die Datei /etc/inittab abgearbeitet, wobei die unterschiedlichen Runlevel (Phasen des Startens, Laufens und Beendens von Linux) durchlaufen werden und die zum jeweiligen Runlevel passenden Skripte in den Verzeichnissen /etc/rc0.d bis /etc/rc6.d abgearbeitet werden. In jedem dieser Verzeichnisse befinden sich Links zu den Skripten /etc/init.d/vdr, /etc/init.d/vdr-addon-vdrconvert und /etc/init.d/vdradmin
Mit dem Skript /etc/init.d/vdr wird der VDR dann automatisch gestartet. Manuell kann man den VDR mit /etc/init.d/vdr start starten (oder auch stoppen und restarten). Dabei werden die in /usr/lib/vdr/plugins/ für die jeweilige VDR-Version installierten Plugins automatisch gesucht und mit den entsprechenden Konfigurationen der Dateien in /etc/vdr/plugins/<name>.config geladen. Dann werden alle einzelnen /usr/share/vdr/command-hooks/commands.<name>.conf (Version 2: /etc/vdr/commands.<name>.conf) zu einer einzigen /var/lib/vdr/commands.conf (Version 2: /etc/vdr/commands.conf) zusammengesetzt und geladen (deswegen ist es nutzlos Letztere zu ändern, da diese Datei bei jedem Start neu erstellt wird). Die Befehlszeilen in der Datei commands.conf werden im On-Screen-Display für die Bedienung mit der Fernbedienung zugänglich gemacht. Beispielsweise das Beenden vom VDR wird so ermöglicht, der VDR mit dem Skript /usr/bin/ctvdrstop.sh beendet oder das System mit /usr/bin/poweroffvdr heruntergefahren. Ebenso werden die Befehlszeilen in den Dateien /usr/share/vdr/command-hooks/reccmds.<name>.conf (Version 2: /etc/vdr/reccmds.<name>.conf) usw. zu einer zusammengefasst und stehen als Befehle im Menü Aufzeichnungen zur Verfügung.
Die Plugins wiederum rufen selbst Skripte und Programme auf, wobei wiederum entsprechende Konfigurationsdateien eingelesen werden und das Verhalten steuern. Z.B. ruft das mplayer-plugin das Skript /usr/sbin/mplayer.sh und die Konfigurationsdatei /usr/local/etc/mplayer/mplayer.conf oder ~/.mplayer auf, wobei für das mplayer-plug-in noch die Konfigurationsdatei /etc/vdr/plugins/vdrmplayer.sh.conf benutzt wird.
Weitere Skripte, die aufgerufen werden können, sind /usr/bin/vdrconvert.sh /usr/bin/vdr2divx.sh oder andere /usr/bin/*vdr* (man kann die Dateien mit vdr im Namen schön suchen mit z.B. find /usr | grep vdr).
Beendet wird der VDR indem /usr/bin/poweroffvdr (ist in commands.conf definiert) von der Konsole eingeben wird, oder aus dem OSD heraus. Wie in /etc/default/vdr definiert ist, wird nach dem Beenden noch das Skript /usr/bin/shutdownvdr aufgerufen. Dieses Skript wiederum arbeitet nacheinander alle Skripte in /usr/share/vdr/shutdown-hooks ab. Eines davon ist shutdown90.nvram-wakeup.conf, welches mit nvram-wakeup die Aufwachzeit setzt und, falls nötig, dafür sorgt, dass statt einem Ausschalten ein Reboot durchgeführt wird. Danach wird der Rechner ausgeschaltet.
Doch Vorsicht! Einiges stimmt eventuell nur bei meiner Installation und unvollständig ist es sowieso noch.
2. Karte Installieren
Anbei ein paar Tipps zur Installation einer zweiten DVB-Karte.
1. Karte einbauen und booten
2. Mit "lspci" nachschauen, ob Linux die Karte überhaupt erkennt. Output sollte etwa so aussehen:
0000:01:00.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01) 0000:01:02.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
3. Die zweite Karte muss dem System bekannt gemacht werden. Für die c't VDR Version 3.0x folgendes ausführen:
dpkg-reconfigure linuxtv-dvb-modules-2.4.27-ctvdr-1
Dieses Kommando startet erneut das Skript, das nach vorhandenen DVB-Karten sucht. Es kann nämlich sein, dass die neue Karte ein anderes Frontend-Modul braucht als die Alte. Vorher sind die DVB-Module zu entladen und die Datei mit der Modulkonfiguration (/etc/modutils/linuxtv-dvb.2.4.27-ctvdr-1) zu löschen.
[Hinweis: VDR stoppen mit ctvdrstop, Modulliste: lsmod, Module entladen: rmmod dvb-ttpci]
Jetzt sollte eine neue Version der Datei etc/modutils/linuxtv-dvb.2.4.27-ctvdr-1 geschrieben worden sein.
DVD brennen
Leider funktioniert bei der ctvdr306 das Brennen von DVDs nicht auf Anhieb - ein paar Anpassungen sind notwendig. Zunächst jedoch grob das Grundprinzip, wie DVDs gebrannt werden (Voraussetzung: vdrconvert-plugin (heisst eigentlich vdrconvert-addon) und dvdselect-plugin):
ISO-File für DVD erstellen
- Zu brennenden Film im Hauptmenüpunkt "Aufzeichnungen" mit Cursor markieren
- Menüoption "Befehle" (rot) wählen
- vdr2dvd auswählen
- zu DVD-Liste hinzufügen (mit "back" zurück)
- vdrconvert starten (der Konvertierungsprozeß wird im letzten Hauptmenüpunkt "Befehle" angezeigt unter "vdrconvert", "Status anzeigen" - sobald er abgeschlossen ist, erscheint das ISO-File im DVD-Wechsler [der in diesem Fall besser die Bezeichnung DVD-Brenner tragen sollte])
ISO-File brennen
- im Hauptmenüpunkt "DVD-Wechsler" das zu brennende ISO-File mit Cursor markieren
- Menüoption "schreiben" (grün) wählen
Skript zum Brennen anpassen
Leider wird bei einer Standardinstallation bislang der Brennvorgang nicht gestartet. Abhilfe schafft in den meisten Fällen folgendes Skript, das nach /etc/vdr/plugins/dvdselect_writedvd.sh kopiert werden sollte (dort vorhandenes Originalskript überschreiben und darauf achten, dass das neue Skript ausführbar ist, z.B. indem man im Verzeichnis /etc/vdr/plugins den Befehl eingibt: chmod 770 dvdselect_writedvd.sh):
#!/bin/sh # # This script =/etc/vdr/plugins/dvdselect_writedvd.sh # will be called by the vdr-plugin dvdselect to copy a DVD to write a dvd iso image. # # Quelle: http://www.vdr-portal.de/board/thread.php?threadid=25586&sid= (Thomas kt1040) # # It gets the following parameter: $1 = filename of the iso file # echo "dvdrecord -eject -v dev=0,0,0 speed=4 -dao $1 \ >>/var/log/dvdrecord.log" | at now echo "/usr/bin/growisofs -dvd-compat -Z /dev/hdc=$1 >> \ /var/log/dvdrecord.log && eject /dev/hdc >>/var/log/dvdrecord.log" | at now
Achtung: Wer diese Zeilen unter Windows vom Browser in einen Texteditor kopiert und abspeichert, der kopiert leicht Carriage-Returns mit, weshalb das Skript dann unter Linux nicht funktionieren wird. Besser gleich unter Linux arbeiten oder aber die paar Zeilen von Hand abtippen.
Das Skript bewirkt, dass das Brennen tatsächlich gestartet wird - und dass die DVD nach Abschluß des Brennvorgangs ausgeworfen wird.
Troubleshooting
Man kann man auf dem VDR den Brennvorgang mitverfolgen oder hilfreiche Fehlermeldungen erhalten, wenn man folgenden Befehl absetzt:
tail -f /var/log/dvdrecord.log
Beim Ansehen oder Löschen des ISO-Files im DVD-Wechsler kann es passieren, dass der symbolische Link, der standardmäßig auf den DVD-Brenner zeigen sollte, weiterhin auf den ISO-File zeigt, was besonders unangenehm ist, wenn dieser längst gelöscht wurde. Die Folge kann ein "fatal error" des VDR sein mit konsequenten Abstürzen beim Neustart. Abhilfe verschafft ein einfaches Zurücklegen des Symlinks auf den DVD-Brenner. Dies kann z.B. einfach so geschehen:
cp /dev/cdrom /dev/dvd
Sollte das Phänomen häufiger auftreten, so kann man auch im Startskript /etc/init.d/bootmisc.sh folgenden Eintrag vornehmen:
rm /dev/dvd ln -s /dev/hdc /dev/dvd
Damit sollte zumindest beim Neustart gewährleistet sein, dass der Symlink auf den Brenner zurückgesetzt wird (natürlich ist oben /dev/hdc gemäß der eigenen Installation anzupassen).
Wenn der Brenner trotzdem einmal nicht loslegen sollte, so kann es sein, dass vdrconvert ein leeres ISO-File angelegt hat (dies kann man überprüfen, indem man im Verzeichnis /video/film/dvd nachsieht).
Problemlösungen
ständige Neustarts bei Aufnahme
Wenn die Aufnahme etwa alle 30 Sekunden durch Neustarts unterbrochen wird, so kann dies daran liegen, dass die notwendige Signalstärke unterschritten wird, so dass der VDR versucht, dies durch einen Neustart zu beheben. Abhilfe kann (bei zwei DVB-Karten) ein Tausch der Satellitenkabel bzw. eine Verbesserung der Signalstärke bringen.
Vgl. http://www.vdr-portal.de/board/thread.php?threadid=20318&hilight=aufnahme+restart
vdrconvert
F: Was tun, wenn vdrconvert ein 0 Byte großes ISO-File angelegt hat?
A: | Hier schauen:
DXR3
F: Wie installiere ich die CVS Treiber für die Dxr3 Karte in den c't-VDR?
A: Dxr3
NVRAM WakeUp
F: Wie passe ich das Skript set_timer vom NVRAM WakeUp für die c't-VDR-Distribution an?
F: Muss die vdr-nvram-wakeup.conf in /etc/vdrdevel/ liegen?
A: Nein, sie wird nur in /etc/vdr/ gesucht. Sie muss dort auch für VDRDevel (=v1.3.x) nur vdr-nvram-wakeup.conf heissen!
F: Ist bei Grub-Verwendung der Poweroff-Kernel (kernel-poweroff per apt) notwendig, wenn das Mainboard einen Reboot verlangt?
A: Nein, da dies auch mit einem halt Eintrag in der Menu.lst geht. siehe dafür : [[C%27t-VDR_-_NVRAM_Wakeup_f%FCr_VIA_EPIA_M10000 | NVRam-WakeUp-Anleitung]]
ruckelnde DVD-Wiedergabe trotz DMA
Wenn die DVD-Wiedergabe im DVD-Plugin trotz aktiviertem DMA-Modus ruckelig läuft, kann der Austausch der Bibliothek /usr/lib/vdr/plugins/libvdr-dvd.so.1.2.6 helfen. Das entsprechende Vorgehen ist in diesem Thread auf vdrportal.de beschrieben.
Numlock beim Boot aktivieren
F: Wie kann ich beim Start die Numlock-Funktion aktivieren?
A: In /etc/console-tools/config die Zeile LEDS=+num auskommentieren bzw. hinzufügen. Alternativ siehe unter Tastatur#Numlock
Framebuffer ct vdr 4 / 4.5
F: Wie bekomme ich den VesaFB unter ct vdr 4(.5) ans laufen (habe ein schwarzes Bild,wenn ich vga=XXX in /boot/grub/menu.lst an die kernel-Zeile anhänge)?
A: 1. In /etc/mkinitrd/modules folgende Zeilen einfügen:
fbcon
font
2. mkinitrd -o /boot/initrd.img-2.6.12-test 2.6.12-ct-1 (geht auch mit kernel 2.6.15, dann muss natürlich der Aufruf entsprechend geändert werden
3. Wenn noch nicht passiert vga=XXX (z.B XXX = 0x314 siehe Frambuffer-Doku) an die kernel-Zeile in /boot/grub/menu.lst anfügen
4. REBOOT UND TUT!
remote.conf
F: Wie lerne ich ein neues Eingabegerät an? Der VDR vergisst das bei jedem Neustart.
A: Siehe c't-VDR - remote.conf
lirc
F: Warum funktioniert lirc nicht bei der Onlineinstallation.
A: In den Onlinequellen fehlt die Datei lirc-modules-2.6.12-ct-1. Um den Fehler zu beheben kann man folgendes Howto anwenden: lirc mit ctvdrcfg installieren und konfigurieren (geht über details) mit der Original-CD als Quelle in der sources.con
apt-cdrom add [CD muss eingelegt sein] apt-get install setserial lirc-modules-2.6.12-ct-1
in /etc/modules lirc_serial schreiben und in /etc/lirc/hardware.conf LIRCD_CONF="" in LIRCD_CONF="/etc/lirc/lircd.conf" ändern rebooten und zumindest bei mir hat es funktioniert.
MTA exim4
F: Trotz bestehender Internetverbindung (Router) stoppt der Bootvorgang bei der Zeile "Starting MTA..." für ca. 1 Minute.
A: Manche Router haben anscheinend ein "DNS-Problem" (z.B. Siemens SE515, D-Link DSL-G604T...). Zu Beginn der Installation nicht die IP des Routers unter DNS-Server eintragen, sondern z.B. den DNS-Server des Providers. Auf einem bereits installierter VDR findet man die Einstellungen für den DNS-Server unter /etc/resolv.conf. Sollte bei einem Online-Update der Server ftp://ftp.nerim.net/debian-marillat nicht erreichbar sein, ist dies ein weiteres Indiz für einen Router mit besagtem "DNS-Problem".
Howtos
- Streaming-Server mit Buget-Karte (für Newbies)
- NVRAM Wakeup für VIA EPIA M10000 auch für andere Boards mit Reboot interessant
- Project X
- Updaten
- Hooks
- Hardware WakeUp
- GraphLCD mit Serdisplib
- Samba einrichten
- Analoges 5.1 Boxensystem an einer Soundkarte