Yavdr 0.4-pre2 und Cinergy S2 USB HD Firmware Upload Problem

  • Es scheint aber wohl alle ds3000 Firmware abhängigen Devices zu betreffen. Meine bescheidenen Fähigkeiten reichten halt nicht aus um Igor klar zu machen, wo das Problem ist. Denn lt. seiner Tests gibt es keine Probleme diesbezüglich. Obs nun die Firmware oder der Treiber ist, ich weiß es nicht. Von der Symptomatik her scheint es für mich aber doch eher mit der Firmware zusammen zuhängen, da die Treiber bestimmt nicht gleich sind.


    Vielleicht kommt ja doch noch mal ein Stein ins rollen, damit der durchaus lästige Fehler behoben werden kann, ohne ein workaround zu nutzen.

    Proxmox VE, Tyan Xeon Server, OMV, MLD-Server 5.1
    MLD 5.1 64bit: Asus AT5iont-t, ION2, 4GB Ram, SSHD 2,5" 1Tb, HEX TFX 300W 82+, Cine S2 V6.2 , 38W max.
    Yavdr 0.5:
    Zotac D2550ITXS-A-E mit GT610 OB, TT S2-4100 PCI-e ,Joujye NU-0568I-B
    Yavdr 0.5:
    Sandy Bridge G840, Tests und Energieverbrauch , CoHaus CIR, Cine S2 V6.2
    MLD 5.1 Beebox N3150
    , DVBSky S960 und 1Tb WD Blue

  • Ich hatte damals mit meiner Tevii 470 Treiber und Firmware in die initrd verfrachtet - vielleicht ist das ein workaround ? Wenn jemand das Ausprobieren will - da war irgendwo ein Post der das Vorgehen beschreibt (find ich grad nicht)

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • So hab mal nen Test gemacht:


    Wenn ich die Box mit dynamite raus schmeiße, in dem Mom wird die Firmware geladen, füge ich die Box dann wieder mit dynamite wieder ein, funzt die Box


    raus:

    Code
    Oct 18 17:45:28 hdvdr vdr: [2338] dynamite: deleted device for /dev/dvb/adapter2/frontend0
    Oct 18 17:45:28 hdvdr vdr: [2338] dynamite: detached device /dev/dvb/adapter2/frontend0
    Oct 18 17:45:28 hdvdr vdr: [2338] info: detached /dev/dvb/adapter2/frontend0
    Oct 18 17:45:28 hdvdr vdr: [2744] Text2Skin: message display update thread started (pid=2338, tid=2744)
    Oct 18 17:45:28 hdvdr vdr: [2338] closing SVDRP connection
    Oct 18 17:45:28 hdvdr kernel: [  664.552300] dw2102: su3000_power_ctrl: 0, initialized 1
    Oct 18 17:45:28 hdvdr kernel: [  664.552305]


    rein:


    Tja... was machen wir?!



    MFG SVen

  • Moin!


    Wir wissen jetzt, dass die Box ihre Firmware nicht laden kann, wenn ein Programm das Frontend bzw. demux-Device geöffnet hat.
    Das muss eigentlich ein Treiberproblem sein. D.h., die richtige Stelle, dies zu beheben, wäre, einen Bugreport an den Maintainer zu schreiben. Kann man vom Treiber noch ausführlichere Debug-Meldungen ausgeben lassen, z.B. per Modul-Option?


    Bis das gelöst ist, hast du verschiedene Workarounds zur Auswahl:

    • vor dem vdr-Start mit irgendeinem Programm (z.B. dvbtune) kurz auf das Device zugreifen, damit die Firmware geladen wird (per udev-Regel oder upstart, wie's es dir besser gefällt)
    • nach dem vdr-Start mit einem Script über dynamite das Device aus- und wieder einhängen


    Was mir gerade noch eingefallen ist: Probier mal ein SetIdle mit dynamite:

    Code
    svdrpsend plug dynamite SetIdle /dev/dvb/adapter2/frontend0


    Das sorgt auch dafür, dass die Filehandles geschlossen werden, aber der vdr kann das Device von alleine wieder öffnen, falls es gebraucht wird.


    Ist es eigentlich immer adapter2 oder wechselt das? Das musst du sonst ggf. anpassen.


    Bei Treiberproblemen kann ich leider nicht helfen. Viel Glück auf der linux-media Mailinglist, das wäre die richtige Stelle dafür...


    Lars.

  • Hi,


    Zitat


    Ist es eigentlich immer adapter2 oder wechselt das? Das musst du sonst ggf. anpassen

    Leider nicht, meist ist es adapter0, in dem Beispiel hab ich die Box nachträglich an gestöpselt, damit ich besser sehen kann welches dev das ist.
    Eine udev-ergel würde denke ich passen, nur bräuchte ich Hilfe damit die Box immer der gleiche adapter ist und dann per SetIdle ausgehängt werden kann. Denke das müßte so klappen.
    Dann würde ich auch gleich per udev ein Script starten mit sleep bis der VDR gestartet ist und dann per dynamite die Box schlafen legt und die Firmware dann geladen werden kann, denke so müsste das klappen!?! Mit fehlt jetzt nur die richtige Syntax für die udev-regel.
    Dann kann das Upstartscript unangetastet bleiben und beim Treiberfix ist die regel fix gelöscht.


    Danke für die Mithilfe, MFG SVen

  • Wir wissen jetzt, dass die Box ihre Firmware nicht laden kann, wenn ein Programm das Frontend bzw. demux-Device geöffnet hat.


    Das muss eigentlich ein Treiberproblem sein. D.h., die richtige Stelle, dies zu beheben, wäre, einen Bugreport an den Maintainer zu schreiben. Kann man vom Treiber noch ausführlichere Debug-Meldungen ausgeben lassen, z.B. per Modul-Option?

    Der Maintainer ist in dem Fall igor. Vielleicht kannst Du ihm das verständlich in Englisch erklären warum es der Treiber ist?

    Proxmox VE, Tyan Xeon Server, OMV, MLD-Server 5.1
    MLD 5.1 64bit: Asus AT5iont-t, ION2, 4GB Ram, SSHD 2,5" 1Tb, HEX TFX 300W 82+, Cine S2 V6.2 , 38W max.
    Yavdr 0.5:
    Zotac D2550ITXS-A-E mit GT610 OB, TT S2-4100 PCI-e ,Joujye NU-0568I-B
    Yavdr 0.5:
    Sandy Bridge G840, Tests und Energieverbrauch , CoHaus CIR, Cine S2 V6.2
    MLD 5.1 Beebox N3150
    , DVBSky S960 und 1Tb WD Blue

  • Access to the allready existing device nodes by an application is blocking the firmware upload. On the other hand the firmware is loaded on demand so at first access to the device. No matter what the application should not be able to block the driver or as an alternative it should be possible from the application perspective to find out what to do (try again ?). The situation as of now can be described as broken driver.


    So in etwa ?

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Moin!


    Der Maintainer ist in dem Fall igor. Vielleicht kannst Du ihm das verständlich in Englisch erklären warum es der Treiber ist?


    Naja, der Firmware-Upload wird beim ersten Öffnen gestartet und hängt. Wird das Frontend geschlossen, geht's mit dem Upload weiter. Mehr ist es eigentlich nicht.
    Ich würde mich bei der Diskussion mit dem Maintainer aber raushalten wollen, weil ich nicht die Hardware habe, um genauere Infos zu liefern bzw. irgendwas zu testen.


    Eventuell könnte man das auch reproduzieren, wenn man dvbtune mit dem Monitor-Parameter -m startet. Dann sollte das Frontend auch nicht geschlossen werden und es wäre für ihn evtl. leichter nachzuvollziehen. Dann braucht er nicht erst vdr/dynamite usw. zu bemühen.


    Lars.

  • Moin!


    Mit fehlt jetzt nur die richtige Syntax für die udev-regel.


    Hast du deine ursprüngliche Regel noch mal mit "0x" vor den Ids probiert? "udevadm test" hilft dir da auch weiter.


    Dann kann das Upstartscript unangetastet bleiben und beim Treiberfix ist die regel fix gelöscht.


    Du kannst auch ein neues Upstart-Script schreiben, dass vor dem vdr gestartet wird und einfach mal bei allen Adaptern dvbtune aufruft. Ich muss aber gestehen, dass ich mich bei den Abhängigkeiten in upstart auch nicht so auskenne. Ich müsste also genauso wie du die Doku lesen... :)


    Lars.

  • Moin!


    Probier's einfach mal aus und lese zur Not die manpage zu dvbtune. Ich hab nur DVB-C, da sieht das alles anders aus...
    Es fehlt evtl. der Parameter "-c n", wobei n die Adapternummer ist. Müssen V, A, T nicht große Buchstaben sein?


    Lars.

  • Hm... Jungs wie muß die udev-Regel ausehen, wenn ich die Box einen Bestimmten Adapter zuordnen will!?


    Code
    KERNEL=="dvb*", DRIVERS=="dvb_usb_dw2102", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter3/%%s $${K#*.}", NAME="%c"


    oder


    Code
    SUBSYSTEM=="dvb", ATTR{idProduct}=="0x0ccd", ATTR{idVendor}=="0x00a8", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter3/%%s $${K#*.}'", NAME="%c"


    Nix vom dem geht!!!! Was mache ich falsch


    hier mal udevinfo:




    Danke und MFG SVen

  • Moin!


    Das geht nicht mehr mit dem aktuellen udev. Was der Kernel vorgibt als Device wird immer angelegt.
    Eventuell bietet der Treiber einen Modulparameter.


    Lars.

Jetzt mitmachen!

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