C't-VDR - 2. Karte nachträglich einrichten
Hier ein paar Tipps zur Installation einer zweiten DVB-Karte. Diese Anleitung bezieht sich auf einen C't-VDR in Version 3 oder höher, sollte aber auf andere Distributionen übertragbar sein. Ansonsten evtl. Änderungen für andere Distributionen ergänzen!
1. Karte einbauen und booten
Hierzu evtl. für die Jumperung von VIA Riserkarten hier gucken.
2. Mit "lspci" nachschauen, ob Linux die Karte überhaupt erkennt. Der Output sollte etwa diese Zeilen enthalten:
0000:01:00.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01) 0000:01:02.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
Die zweite Karte muss nun Linux bekannt gemacht werden.
3. Dafür zuerst den VDR stoppen mit
/etc/init.d/vdr stop
(oder aus dem OSD heraus unter Befehle/VDR-Wartung/VDR Stoppen.)
4. Dann zur Kontrolle die Liste der geladenen Module anzeigen mit:
lsmod
und die geladenen DVB-Module entladen mit:
rmmod dvb-ttpci rmmod ttpci-eeprom rmmod stv0299 rmmod tda1004x rmmod dvb-core
Sollte bei einem dieser Module eine Fehlermeldung kommen, dass dieses Modul noch von einem anderen abhängig ist, dieses zuerst entladen und dann das betreffende Modul noch einmal probieren zu entladen! Abhängigkeiten werden bei der Ausgabe von lsmod in Klammern hinter dem Modulnamen ganz rechts angezeigt.
5. Jetzt ist noch die Datei mit der alten Modulkonfiguration (/etc/modutils/linuxtv-dvb.2.4.27-ctvdr-1) umbenennen (z.B. in .bak).
6. Für den Kernel der c't VDR Version 3 Folgendes ausführen:
dpkg-reconfigure linuxtv-dvb-modules-2.4.27-ctvdr-1
(oder evtl. bei Verwendung des 2.4.27-ctvdr-1 Kernels unter neueren c't VDR-Versionen:)
dpkg-reconfigure linuxtv-dvb-ct-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. Im blauen Fenster die Frage nach der Suche mit "Ja" beantworten.
Jetzt sollte eine neue Version der Datei etc/modutils/linuxtv-dvb.2.4.27-ctvdr-1 geschrieben worden sein. Diese ist wahrscheinlich größer und enthält neue Module für die zweite Karte (außer diese benötigt nur dieselben Module wie die Erste) z.B. dvb-ttpci-budget für eine Hauppauge Nova-S.
Meine sieht nun wie folgt aus (für eine Nova-S und eine FF 1.x; dürfte aber bei jedem verschieden sein, da, je nach Karte, andere Module gebraucht werden!):
#!/bin/sh if [ "`uname -r`" == "2.4.27-ctvdr-1" ] ; then cat <<EOF alias char-major-250 dvb probeall dvb dvb-ttpci below dvb-ttpci stv0299 add probeall dvb dvb-ttpci-budget below dvb-ttpci-budget stv0299 EOF fi
7. Nun mit
modprobe dvb
die DVB-Module wieder laden und mit
lsmod
überprüfen, ob oben entladene Module (unter 4. per rmmod) und die Neuen für die Zweite (stehen in der vom Skript erzeugten linuxtv-dvb.2.4.27-ctvdr-1 jetzt zusätzlich zu denen von früher drin) jetzt (wieder) geladen wurden.
8. Jetzt den VDR wieder starten:
/etc/init.d/vdr start
Jetzt geht evtl. nur die erste (alte) Karte, die vorher schon ging, da die neuen zusätzlichen Module nicht automatisch geladen wurden! Deshalb müssen diese mit
modprobe Modulname (meist dvb-ttpci-budget oder dvb-ttpci-budget-ci und evtl. das Frontend)
manuell geladen und den VDR übers OSD unter Einstellungen\Neustart neu gestartet werden.
9. Nun muss man noch im OSD unter Einstellungen\DVB\ das Primäre DVB-Interface auf die Nr. der neuen Budget-Karte ändern (alte FF ist 1, daher sollte diese jetzt 2 sein).
Funktioniert die Umstellung des primären DVB-Interfaces im OSD nun (ist die 1 also in eine 2 änderbar), dann sollten, wenn eine Aufnahme läuft, trotzdem noch alle Kanäle umschaltbar sein (also man kann diese noch gucken). Im OSD (Enter drücken) steht dann "DVB2: 1 Aufnahme".
Leider vergisst er das Laden der zusätzlichen Module für die neue Karte beim Reboot wieder!
10. Deshalb noch
update-modules depmod -a
ausführen. Nun sollte die /etc/modules.conf sich geändert haben und ein Änderungsdatum von jetzt haben.
Probleme
Wenn der VDR nach den obigen Schritten die zweite Karte zur Aufnahme nutzen kann, aber sich mit folgender Fehlermeldung im Log weigert, herunterzufahren,:
vdrdevel-shutdown: executing /usr/share/vdrdevel/shutdown-hooks/S50.vdrconvert as shell script vdrdevel-shutdown: /usr/share/vdrdevel/shutdown-hooks/S50.vdrconvert requests to try again in 5 minutes vdr: [1849] connect from 127.0.0.1, port 32769 - accepted vdr: [1849] SVDRP message: 'Shutdown aborted. Retry in 5 minutes.' vdr: [1849] info: Shutdown aborted. Retry in 5 minutes. vdr: [1849] closing SVDRP connection
dann liegt dies an der zu alten VDRConvert-Version: vdrdevel-addon-vdrconvert (0.1.1+1) evtl. im Zusammenhang mit dem Burn-Plugin. Eine neuere Version von VDRConvert ist bei e-Tobi aber nicht für VDRDevel zu bekommen! Die Version lässt sich mithilfe von
ctvdrdevelinfo (bzw. ctvdrinfo)
ermitteln.
Dann muss man in /usr/share/vdr/shutdown-hooks/ den Inhalt der S50.vdrconvert in Folgendes ändern (in vdrdevel ist nur ein Symlink darauf):
# # vdrconvert shutdown hook script - Tobias Grimm <tg@e-tobi.net> # ------------------------------- # # This script checks if vdrconvert is still doing anything, and if so # advices VDR to try the shutdown again in 5 minutes # . /etc/vdr/vdrconvert/vdrconvert.conf # check if any job is still in queue or any convert process is running: for JOBFIL in $CONVERT_JOBS ; do JOB=$JOBFIL JOBFIL="/var/spool/vdrconvert/$JOBFIL" let LINES=0 LINES=`cat $JOBFIL | wc -l` run=`ps -aef|grep $VDRCONVERTBINDIR/${JOB}.sh|grep -v grep|wc -l` if [ $LINES -gt 0 -o $run -gt 0 ] ; then # there is still a job in queue or running, so # we should defer the shutdown for 5 minutes echo "TRY_AGAIN=5" fi done exit 0
Vorher diese Datei Backuppen!
Links: