Fujitsu-Siemens DVB-C wird unter Debian 6 (Squeeze) nicht geladen

  • Guten Tag,
    mein aktuelles Debian 6 squeeze möchte meine (betagte) Fujitsu-Siemens DVB-C PCI-Karte nicht einbinden.

    Code
    1. # uname -a
    2. Linux server 2.6.32-5-amd64 #1 SMP Thu Nov 3 03:41:26 UTC 2011 x86_64 GNU/Linux
    3. # lspci
    4. ...
    5. 05:03.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)


    Im System ist sie aber schonmal drin.
    Das Modul dvb_ttpci wird jedoch beim booten nicht automatisch geladen.
    lade ich es nachträglich per Hand:


    Werden zwar jedemenge Module geladen. Aber er versucht noch nicht mal die Firmware zu laden.
    Natürlich schlägt dann auch der Sendersuchlauf fehl:


    Wo kann ich nun den Fehler suchen?
    Ich habe schon gefunden, dass manche anderen Kernelmodule Probleme machen können, aber weder snd-aw2 noch stradis sind bei mir aktiv.
    Die Firmware für den AV7110 Chip habe ich von http://www.linuxtv.org/downloa…ware/dvb-ttpci-01.fw-2622 nach /lib/firmware/dvb-ttpci-01.fw kopiert.


    Wie könnte ich irgendwie weiter kommen?


    Grüße genbian

  • Hi,


    ich selbst habe eine ganze weile keine TT Premium mehr am laufen. Entlade doch mal alle DVB Module und lade dann in dieser Reihenfolge:


    modprobe dvb_core
    modprobe saa7146
    modprobe saa7146_vv
    modprobe ttpci_eeprom
    modprobe stv0299
    modprobe dvb_ttpci



    Gruss

    [size=8][font='Lucida Sans, Monaco, Geneva, sans-serif']Server: Odroid C2 | WinTV-MiniStick | Streamdev
    [size=8][font='Lucida Sans, Monaco, Geneva, sans-serif']Client1: Raspberry PI Model B+ | libreelec
    [size=8][font='Lucida Sans, Monaco, Geneva, sans-serif']Client2: Raspberry PI 3 Model B | libreelec
    [size=8][font='Lucida Sans, Monaco, Geneva, sans-serif']Client3: MSI C847MS-E33 | Debian 9.0


  • Ganz systematisch vorgehen:
    Was sagt "lspci -vnn" über die Karte?


    CU
    Oliver

  • Ufo:
    Selbst mitt geladenen Modulen, sagt lspci -vnn nicht viel:

    Code
    1. # lspci -vnn
    2. 05:03.0 Multimedia controller [0480]: Philips Semiconductors SAA7146 [1131:7146] (rev 01)
    3. Subsystem: Device [00a1:a1a0]
    4. Flags: bus master, medium devsel, latency 32, IRQ 11
    5. Memory at fddfe000 (32-bit, non-prefetchable) [size=512]


    gandalf:
    Scheinbar passiert nichts anderes beim einzelnen Laden der Module, wie beim automatischen.


    Wie nun weiter?
    Grüße
    genbian

  • Ufo:
    Selbst mitt geladenen Modulen, sagt lspci -vnn nicht viel:

    Code
    1. # lspci -vnn
    2. 05:03.0 Multimedia controller [0480]: Philips Semiconductors SAA7146 [1131:7146] (rev 01)
    3. Subsystem: Device [00a1:a1a0]
    4. Flags: bus master, medium devsel, latency 32, IRQ 11
    5. Memory at fddfe000 (32-bit, non-prefetchable) [size=512]


    Ganz im Gegenteil, lspci sagt alles:
    Die Subsystem-ID der Karte ist 00a1:a1a0, welches keine gültige ID ist.


    Zitat


    Wie nun weiter?


    Die Subsystem-ID der Karte muß neu programmiert werden. Suche nach fix_eeprom hier im Forum.


    CU
    Oliver

  • Okay,
    danke ufo, habe wohl das entscheidende Posting von dir aus dem Jahre 2005 gefunden und die Quelltextdatei gesaugt.
    Außerdem gibt es einen Eintrag im VDR-Wiki dazu.
    Werde mich morgen Abend damit beschäftigen mein Debian Sys fit für's kompilieren zu machen und was ich eigentlich genau kompilieren muss.
    Wenn ich das richtig verstanden habe, muss das fix_eeprom-Modul nur ein einziges mal geladen werden um die korrekte Device ID ins eeprom zu schreiben. Danach sollte es "normal" gehen.


    Gute Nacht
    genbian
    €dit: Ausführliche Antwort auf Sonntag verschoben. Aber ich vermute es hat geklappt.

    Dieser Beitrag wurde bereits 3 Mal editiert, zuletzt von genbian () aus folgendem Grund: Verschieberitis wegen LaTeX bzw. biblatex

  • Vielen dank.
    Ich habe eine gültige Device ID in das eeprom reingebrannt.
    Der Treiber wird nun automatisch beim booten geladen. w_scan findet Sender.
    VDR läuft auch. Da der Rechner aber keinen Bildschirm und Eingabegeräte hat, versuch ich momentan mein Glück mit dem HTTP-Interface von VDRadmin-AM und dem Streaming mittels streamdev-Plugin. Was aber nicht so will. VDRdamin-AM zeigt mir aber im Menüpunkt "Fernseher" immerhin das OSD an und reagiert auf Eingaben. Nur ein Bild habe ich bisher auf keinem Kanal gesehen...


    Egal erstmal aufschreiben was ich getan habe:


    Finger Weg hiervon, wenn man nicht 100% sicher ist, was man tut und warum!
    Es könnte passieren, dass man sich durch einen Tippfehler die Karte zerschießt.


    Das eeprom wird durch ein nur ein einziges mal, per Hand, zu ladendes Kernelmodul "fix_eeprom.ko" neu geschrieben. Der Quellcode ist unter http://www.escape-edv.de/endriss/dvb/fix_eeprom.c zu finden. Dieser Code muss mit dem entsprechenden DVB-Treiber-Kernelmodul, nach der Anleitung in der Quelltextdatei selber, verheiratet werden.
    Da ich unmotiviert war, mir den Quellcode für den (aktuellsten) Treiber im Netz zu suchen, habe ich einfach meine kompletten Kernelquellen, die ja eh schon auf der Platte lagen entpackt und dort unter /usr/src/linux-source-2.6.32/drivers/media/dvb/ttpci an der Makefile die Eintragungen gemacht.
    Danach aus Bequemlichkeit halt mittels

    Code
    1. cd /usr/src/linux-source-2.6.32/
    2. make oldconfig
    3. make
    4. make modules

    den kompletten Kernel mit allen Modulen neu gebaut. Dauert zwar länger, aber erforderte weniger Rechercherabeit meinerseits. Ich hatte eh anderes zu tun.
    Nun entläd man die entscheidenten Module aus dem Arbeitsspeicher:

    Code
    1. rmmod dvb_ttpci
    2. rmmod saa7146_vv
    3. rmmod saa7146.ko


    Nun ist alles fertig vorbereitet. Spätestens jetzt sollt man auf der Karte (mit seinen eigenen Augen) nachgeschaut haben, welches genaues Modell es ist und die entsprechende PCI-Device ID aus der Liste im VDR-Wiki herausgesucht haben. Hier eine Kopie der "Liste bekannter IDs" vom 12.12.2011:


    Nun geht es ans eingemachte frisch kompilierte. Hier ist für jeden nun die Zeile mit "insmod fix_eeprom.ko" jeweils anzupassen. Jeder hat ja einen anderen richtigen "new=" Wert aus der Liste oben!

    Code
    1. cd /usr/src/linux-source-2.6.32/drivers/media/dvb/ttpci
    2. insmod saa7146.ko
    3. insmod fix_eeprom.ko old=0x00a1a1a0 new=0x110a0000


    insmod fix_eeprom.ko wird eine Fehlermeldung "error inserting 'fix_eeprom.ko': -1 Operation not permitted" werfen. Dies ist getrost zu ignorieren. dmesg oder ein Blick in /var/log/messages zeigt den Erfolg:

    Code
    1. saa7146: found saa7146 @ mem d0a58800 (revision 1, irq 11) (0x00a1,0xa1a0).
    2. *** using device 1131:7146 subsystem 00a1:a1a0 ***
    3. *** eeprom - old id: 00a1:a1a0 ***
    4. *** eeprom - writing new id 110a:0000 ***
    5. saa7146: unregister extension 'fix eeprom'.


    Das war's; nach dem nächsten Neustart verwendet die Karte wieder die korrekte, frisch geschriebene, Id und das System läd den korrekten Treiber automatisch.
    Überprüfbar mit:
    "lspci -vv" und lspci "-vn" bzw. lsmod



    Gute Nacht
    genbian