dvb-treiber (hier "ngene") macht probleme mit udev (firmware laden)

  • nabend,


    habe mit meinem archvdr/archlinux seit dem letzten update u.a. vom udev das problem dass der beim boot "hängenbleibt" (-> https://bbs.archlinux.org/viewtopic.php?id=134012).

    Code
    Mon Feb 13 18:55:39 2012: :: Loading User-specified Modules	[BUSY]	[DONE] 
    Mon Feb 13 18:55:39 2012: :: Waiting for UDev uevents to be processed	[BUSY] udevd[188]: worker [195] timeout, kill it
    Mon Feb 13 18:55:39 2012: 
    Mon Feb 13 18:55:39 2012: udevd[188]: seq 1296 '/devices/pci0000:00/0000:00:10.0/0000:03:00.0' killed


    Code
    [vdr@vdr ~]$ lspci -vin -s 0000:03:00.0
    03:00.0 Class 0400: Device 18c3:0720
    	Subsystem: Device 18c3:db01
    	Flags: bus master, fast devsel, latency 0, IRQ 44
    	Memory at fe9f0000 (32-bit, non-prefetchable) [size=64K]
    	Memory at fe9e0000 (64-bit, non-prefetchable) [size=64K]
    	Capabilities: <access denied>
    	Kernel driver in use: ngene


    hängt offenbar mit ner udev anpassung bzgl. dem (nach)laden der firmware zusammen (-> http://www.spinics.net/lists/netdev/msg185742.html)!?!
    wollte da nur mal mit dem finger draufzeigen bevor irgendwann alle das problem bekommen...
    gruß,lars

    Asus H170 PRO GAMING, Intel Core i7-6700T, 16GB RAM, GeForce GTX 1050 2GB, Samsung SSD 860 EVO 1TB SSD + 3TB WD Red, Mystique SaTiX-S2 Dual, Archlinux -> VDR4Arch


    "Freunde sind Menschen, die dich mögen obwohl sie dich kennen"

  • Da haben die udev-Jungs wieder einmal ein ziemliches Faß aufgemacht! :wand


    Eine ganze Menge Treiber lädt bei der Modulinitialisierung die Firmware.
    Und das ist imho auch gut so! (Jedenfalls, soweit es DVB betrifft.)


    Falls die nicht zurückrudern, sind Änderungen fällig, die nicht mal so in einer halben Stunde zu machen sind.
    Und ngene ist nur einer der betroffenen Treiber...


    CU
    Oliver

  • Der ursächliche Commit ist ja schon ein paar udev-Versionen her. Beispielsweise in den Arch-Linux-Paketen wird da auch nix gepatcht. Sieht also nach Absicht aus und scheint sinnvoll: Muss "Treiber laden" gleichzeitig "Firmware laden" bedeuten?


    Bis die Treiber nicht angepasst sind klappt eventuell folgender Würgaround (findet sich bestimmt auch im von Lars verlinkten Arch-Linux-Forumthread):
    - betreffendes Modul blacklisten (/etc/modprobe.d/*.conf)
    - modprobe des Moduls in der rc.local (oder je nach Distribution passend woanders)


    Ich hoffe das der erzwungenermaßen umgestellte Treiber dann vielleicht meine Kaltstartprobleme (Rechner länger komplett vom Netz getrennt) mit der TeVii S470 behebt. Oder ich bin völlig auf dem Holzdampfer...

  • Der ursächliche Commit ist ja schon ein paar udev-Versionen her. Beispielsweise in den Arch-Linux-Paketen wird da auch nix gepatcht. Sieht also nach Absicht aus und scheint sinnvoll: Muss "Treiber laden" gleichzeitig "Firmware laden" bedeuten?


    Es vereinfacht das Leben für die udev-Leute und erschwert es anderen. :(


    Firmware laden bedeutet doch nicht nur, daß irgendeine Datei in den Speicher geladen wird. Die Firmware ist die Betriebssoftware für einen Chip. welcher wiederum für die Funktion der Karte erforderlich ist. Solange die Fw nicht zur Verfügung steht, kann die Karte nicht initialisiert werden.


    Zitat


    Bis die Treiber nicht angepasst sind klappt eventuell folgender Würgaround (findet sich bestimmt auch im von Lars verlinkten Arch-Linux-Forumthread):
    - betreffendes Modul blacklisten (/etc/modprobe.d/*.conf)
    - modprobe des Moduls in der rc.local (oder je nach Distribution passend woanders)


    Hm...


    Zitat


    Ich hoffe das der erzwungenermaßen umgestellte Treiber dann vielleicht meine Kaltstartprobleme (Rechner länger komplett vom Netz getrennt) mit der TeVii S470 behebt. Oder ich bin völlig auf dem Holzdampfer...


    Bezweifle, daß dies damit zu tun hat. Da ist eher etwas im Treiber (oder der Firmware) faul.


    Problem:
    Falls die Treiber geändert werden müßten, muß die Karteninitialisierung verschoben werden.


    Im Extremfall würde dies bedeuten, daß die Karte erst beim Tunen initialisiert werden kann.
    Dies würde die Zeit, bis erstmals ein Bild erscheint, verlängern.


    Schlimmer scheinen mir allerdings die Auswirkungen auf die Fehlerbehandlung zu sein.
    Kann ich momentan jedoch noch nicht so recht abschätzen.


    CU
    Oliver

  • Firmware laden bedeutet doch nicht nur, daß irgendeine Datei in den Speicher geladen wird. Die Firmware ist die Betriebssoftware für einen Chip. welcher wiederum für die Funktion der Karte erforderlich ist. Solange die Fw nicht zur Verfügung steht, kann die Karte nicht initialisiert werden.


    Ja, du hast recht. Dennoch ist es eher so, dass die Firmware bis zur tatsächlichen Nutzung noch gar nicht auf den Chip geladen wird, sondern zunächst nur aus dem Userspace in den Treiber. Das blockiert und ist das Problem.


    Im Extremfall würde dies bedeuten, daß die Karte erst beim Tunen initialisiert werden kann.
    Dies würde die Zeit, bis erstmals ein Bild erscheint, verlängern.


    Das ist bereits der Fall. Zumindest bei den Treibern für cineS2, S470 und SkyStar HD2.


    Nachtrag zu:

    Bis die Treiber nicht angepasst sind klappt eventuell folgender Würgaround (findet sich bestimmt auch im von Lars verlinkten Arch-Linux-Forumthread):
    - betreffendes Modul blacklisten (/etc/modprobe.d/*.conf)
    - modprobe des Moduls in der rc.local (oder je nach Distribution passend woanders)


    Alles Quatsch. Blacklisten ist völliger Unsinn. Das betreffende Modul muss geladen werden bevor dies udev veranlasst. Bei Arch Linux reicht dazu ein Eintrag ins MODULES-Array der rc.conf.


  • Ja, du hast recht. Dennoch ist es eher so, dass die Firmware bis zur tatsächlichen Nutzung noch gar nicht auf den Chip geladen wird, sondern zunächst nur aus dem Userspace in den Treiber. Das blockiert und ist das Problem.


    Das ist nicht richtig. Die Firmware wird sofort in den Chip geladen - jedenfalls bei ngene, TT S2-6400 und den alten FF-Karten (av7110).


    Zitat


    Das ist bereits der Fall. Zumindest bei den Treibern für cineS2, S470 und SkyStar HD2.


    Für die cineS2 stimmt das nicht. Die anderen Treiber kenne ich nicht näher.


    CU
    Oliver

  • Für die cineS2 stimmt das nicht. Die anderen Treiber kenne ich nicht näher.


    Hast völlig recht, hab genauer hingeschaut und du musst es ja auch wissen... Geistige Verwirrung meinerseits :gap mantis (hier SkyStar HD2) kommt ohne Firmware aus, cx23885 (hier S470) braucht sogar mehr als eine Firmware und lädt eine davon tatsächlich erst, wenn ich etwa den VDR anschmeiße, zumindest wenn ich nach den Logeinträgen gehe. Mit meinem Halbwissen hoffe ich dann lieber nur, dass es mittelfristig ohne Tricks wieder klappt...


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!