C't-VDR - 2. Karte nachträglich einrichten

Aus VDR Wiki
Wechseln zu: Navigation, Suche

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:

Thread zum VDRConvert-Fehler