Firmware

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Einleitung

Alle DVB-Karten brauchen für den Betrieb eine Firmware, bei den meisten ist diese bereits in den DVB-Treibern enthalten, für andere Karten muss sie eingespielt werden.

Auf den Projektseiten von Heise [1] findet sich eine grobe Zusammenstellung der Downloads.

Neben Nova-T gibt es dort auch Firmware für die HauppaugePVR 350/250, MediaMVP sowie die full-featured DVB-T.

Firmware für

DVB Karten

So muss beispielsweise für Technotrend-basierte Budget DVB-T Karten (Nova-T, Lorenzen DVB-T PCI, TT1300) die Firmware aus den Windows-Treibern kopiert und umbenannt werden.

Je nach verwendeter Distribution (hotplug version) wird sie an verschiedenen Plätzen erwartet, üblich sind Pfade wie /usr/lib/hotplug/firmware und /lib/firmware oder /usr/local/lib/firmware.

Path ist in der /etc/hotplug/firmware.agent hinterlegt, kann dort geändert bzw. erweitert werden.

bash> grep -i -B1 ^FIRMWARE_DIR /etc/hotplug/firmware.agent
# directories with the firmware files
FIRMWARE_DIRS="/lib/firmware /usr/local/lib/firmware /usr/lib/hotplug/firmware"

Ansonsten, sollte beim laden der Treiber, im log näheres zu sehen sein.

bash> tail -n 400 /var/log/messages

Dort steht, wo er sie nicht findet und wo sie folglich hinkopiert werden muss.

Die höheren Kernel Sourcen (2.6.**) haben ein Script zum laden/extrahieren der Firmware anbei, einfach in den PATH kopieren und ausführbar machen. Erhältlich ist das Skript auch hier.

bash> find /usr/src -name get_dvb_firmware -exec chmod 777 \{} \; -exec cp -v \{} /usr/local/bin \;
bash> get_dvb_firmware

Ausgabe sollte wie folgt aussehen:

Supported components:
        sp8870   # T Nexus-T premium rev1.2
        sp887x   # Avermedia DVB-T 761
        tda10045 # Hauppauge/TT Nova-T budget
        tda10046 # Hauppauge/TT Nova-USB-t budget
                 # Terratec Cinergy 1200 DVB-T/KNC1 DVB-T
        av7110   # FF => dvb-ttpci-01.fw-261x
        dec2000t # ?
        dec2540t # ?
        dec3000s # Hauppauge/TT DEC3000-s
        vp7041   # ?
        dibusb   # DiBcom DVB-T USB1.1 reference design (Twinhan, KWorld, Hama, Artec, Compro)
        nxt2002  # ?

In das Verzeichnis wechseln, die passende Firmware laden/extrahieren.

bash> cd /usr/lib/hotplug/firmware
bash> get_dvb_firmware sp8870
# Firmware dvb-fe-sp8870.fw extracted successfully.
# Now copy it to either /lib/firmware or /usr/lib/hotplug/firmware/ (depending on your hotplug version).

Da wir uns schon im Verzeichnis befinden /usr/lib/hotplug/firmware, können wir die Anweisung ignorieren.

bash> ls
Broadband4PC_4_2_11.zip  dvb-fe-nxt2002.fw  dvb-ttpci-01.fw

Sollte entfernt werden Broadband4PC_4_2_11.zip, ggf. woanders sichern.

Oder, via CVS:

bash> cvs -z3 -d:pserver:anonymous@linuxtv.org:/cvs/linuxtv co dvb-kernel/firmware

Hauppauge Nexus-S Rev. 2.3

Mit der Firmware von dvb-ttpci-01.fw-261f von linuxtv.org gelang die Inbetriebnahme der Hauppauge Nexus-S Rev 2.3 auf SuSE 9.2 (check_version.c bei Treiberinstallation auf Kernel Version 2.6.8 heruntersetzen).

bash> wget http://www.linuxtv.org/downloads/firmware/dvb-ttpci-01.fw-261f 
bash> cp dvb-ttpci-01.fw-261f /usr/lib/hotplug/firmware/dvb-ttpci-01.fw

auf 4MB SDRAM erweiterte Karten

Nach dem SpeicherMod der Full-featured-DVB-Karte muss auch eine gepatche Firmware aufgespielt werden. Näheres dazu auf der Anleitungseite für das Tuning.

Dxr3

Auch bei Dxr3-Karten muss die Firmware aufgespielt werden - sie nennt sich dort allerdings Microcode. Mittlerweile befindet sich die benötigte Firmware im Release des dxr3-Projektes (früher war das extrahieren aus den Windowstreibern nötig).

HauppaugePVR 350/250

Standardmäßiger Speicherort ist :

bash> ls /lib/modules/*bin
/lib/modules/ivtv-fw-dec.bin
/lib/modules/ivtv-fw-enc.bin

MediaMVP

Zum laden der Firmware eignet sich der Mvploader, in C wie auch in php erhältlich.

Probleme

Fehler der DVB-Firmware der FF-Karten


Meldung:
Im syslog finden sich öfters Einträge mit

video data stream broken

auch bekannt als "VDSB problem"

VDR startet immer wieder neu wenn eine, aber vorallem wenn mehrere Aufzeichungen von unterschiedlichen Transceivern parallel erfolgen.
Eine Aufnahme springt jede Minute ein kleines Stück.
EPG-Infos fehlen beim Umschalten zunächst.


Abhilfe:
(Reihenfolge ist keine Wertung)
Setzen der EPG scanzeit auf "0" (= abschalten)
Keine VPS timer aktivieren
in "runvdr" mit

export LD_ASSUME_KERNEL=2.4.1

den Support für Native Posix Threading Library (NTPL) deaktivieren.

Wenn ein Mix aus Full-Feature- und Bugdet-Karten verwendet wird, dann die Budget-Karte gegen eine FF ersetzen.
Evtl. schafft der "Spannungs-Mod" f. FF 1.3 Abhilfe


Wenn's das alles nicht sein kann/nicht hilft:
Wie wäre es, die Antenne mal wieder reinzustecken/auszurichten oder die Kabel/Stecker auf Wackelkontakte zuuntersuchen? (Die Verschraubung der F-Stecker muss wirklich fest sitzen!)


Evtl. hilft auch das Verlängern der PCI parameter von 0x40 auf 0x80.
Oder der Tausch des Motherboards. (Vgl. MSI Hermes 650 vs. 651)


Ursache:
Diese wird intensivst gesucht.


Sonstiges:
Wer "Workarounds" gefunden hat: Bitte unbedingt hier nachtragen oder auf die linux-dvb mailliste schicken. Ersteres ist ohne Anmeldung möglich.

Links

  1. Firmware binaries
  2. Firmware übersicht bei Heise