Dynamite Anpassungen für S480 Firmware loading

  • Hi,
    ich wollte nochmal fragen, ob bei dynamite inzwischen an einer Handling Routine gearbeitet wird, womit sichergestellt wird, dass die S480 tuner erst eingehangen werden, wenn der Firmware load/reload abgeschlossen ist?


    Mit der aktuellen 0.4 habe ich nämlich immer noch das Problem, dass man manchmal einen restart vdr durchführen muß (aus S5), bei S3 hingegen geht es überhaupt nicht ohne einen "restart vdr"


    Es ist immer noch das leidige Firmware laden, und dass der vdr bzw dynamite zu früh auf die das device zugreift.


    Da von Igor keine Lösung zu erwarten ist und ich weiß, dass ein prüfen auf den abgeschlossenen Ladevorgang der Firmware einen 100% stabilen Betrieb auch mit der ersten Revision ermöglicht (so wird es beim MLD nämlich gemacht) würde ich mich freuen, wenn es eine Lösung auch für den yavdr 0.4 stable eben wird.


    Danke.

    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

  • Moin!


    Gedanken dazu mache ich mir schon. Wann wird denn die Firmware geladen - beim ersten Öffnen des Frontends (d.h. ich müsste es einmal kurz öffnen und dann warten) oder schon beim Laden des Treibers (d.h. ich kriege von udev die Nachricht und warte dann erst mal, bevor es weitergeht).


    Danke!


    Lars

  • Gedanken dazu mache ich mir schon. Wann wird denn die Firmware geladen - beim ersten Öffnen des Frontends (d.h. ich müsste es einmal kurz öffnen und dann warten) oder schon beim Laden des Treibers (d.h. ich kriege von udev die Nachricht und warte dann erst mal, bevor es weitergeht).


    Das ist aber ganz eindeutig ein Fehler des Treibers, eine Lösung dafür gehört nicht nach dynamite, da sind wir uns doch hoffentlich einig. Was ich mir vorstellen könnte ist das udev dynamite signalisiert das entsprechende Device von vorne herein detached zu lassen. Über einen anderen weg muss dann das erfolgreiche Laden der Firmware getrackt werden und dann dynamite beauftragt werden das Device zu attachen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Moin!


    Ich finde auch, dass es eigentlich im Treiber gelöst werden müsste. Aber irgendwie besteht die Welt doch immer aus Workarounds...
    Kann man eigentlich nachträglich udev-Eigenschaften ändern? Muss ich mal ausprobieren. Denn wenn man ein "dynamite_attach=no" an ein Frontend hängt, dann wird dynamite es immer "missachten", auch wenn es später explizit mit "ATTD" hinzugefügt wird.
    Kann man nicht ein passendes sleep irgendwo in den Treiber zwischen Firmwareload und Registrieren des Frontends einsetzen?


    Und vorher muss ich erst noch dynamite und Multi-Frontend-Support auf 1.7.22 portieren.


    Lars.

  • gda - klar ist es ein Treiberproblem - es ist aber auch ein existierendes Problem für 3-5 Geräte - aus meiner Sicht spricht nichts gegen einen Workaround, der durch eine entsprechende Udev Rule ausgelöst wird. Sollte sich die Treibersituation bessern, kann man es wieder zurücknehmen.

    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

  • gda - klar ist es ein Treiberproblem - es ist aber auch ein existierendes Problem für 3-5 Geräte - aus meiner Sicht spricht nichts gegen einen Workaround, der durch eine entsprechende Udev Rule ausgelöst wird. Sollte sich die Treibersituation bessern, kann man es wieder zurücknehmen.


    Das habe ich doch gemeint. Udev ist die richtige Stelle um sowas zu machen, aber der Thread-Titel lautet: "Dynamite Anpassungen für S480 Firmware loading" und ich würde es nicht gut finden, wenn dynamite plötzlich Hardware erkennen würde.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Ich würde mir vorstellen das dynamite nur per udev eine Variable access_delay=X bekommt und bei entsprechender Eigenschaft dann X Sekunden wartet.


    Natürlich muss dynamite die Karte nicht erkennen, nur auf die Variable reagieren :) - Die Frage von Lars steht noch im Raum - ich vermute es ist kein Zugriff nötig bur ein 3s Timeout oder so - aber es wäre schade wenn ich das falsch verstehe :)

    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!


    Richtig, es würde nur eine udev-Variable sein, auf die dynamite reagiert. Ich muss jetzt nur noch wissen, wie dynamite reagieren soll - deshalb meine Frage. ;)


    Lars.

  • Hi,
    Danke für Eure Antworten. Ich habe es so verstanden und bisher anhand der Logs so verstanden:
    - USB Treiber wird geladen
    - DVB Device ist bereit, aber die Firmware noch nicht
    - nun startet der Zugriff auf das DVB Device (ob von dynamite oder vdr ist dafür unerheblich), dummerweise beginnt in dem Moment aber erst das Laden der Firmware (was hier nun zu einem Problem führt)


    Mein Vorschlag sähe also so aus, dass man eine Überprüfung einbaut, die sicherstellt, dass bei USB Geräten die Firmware geladen ist. Dies läßt sich anhand der benötigten Firmware recht gut lösen. Da beim yavdr dass von dynmite übernommen wird, und es noch größere Probleme beim S3 damit gibt, macht es durchaus Sinn, dass dynamite die Firmware überwacht. Leider weiß ich nicht mit welch einem Aufwand dies ermöglicht werden kann.


    Bei Systemen die langsam starten hat man übrigens seltener das Problem, aber bei flotten Systemen oder mit SSD´s ist der Start immer vor dem laden der Firmware abgeschlossen.


    Ich weiß dies ist nur ein workaround, aber was soll man sonst machen? Zwischen Treiberhersteller und Software ist es immer ein Hickhack. Bis beim Treiber sich was ändert muß schon viel passieren. Igor hat seinerzeit dies nicht als ein Treiberfehler sondern als ein Aplicationsproblem betrachtet...
    Was auch immer wirklich der Grund ist, ich weiß nur, es funktioniert problemlos, wenn man eine solche Lösung einbaut (siehe MLD, da ist dieser Lösungsweg seit Monaten im Einsatz und funktioniert perfekt, aber auch kein dynamite). Und damit das auch mit S3 geht, muß dies in dynamite erfolgen und nicht beim Start des VDR´s, da der beim Wakeup aus S3 ja gar nicht mehr neu gestartet wird.


    Gruß


    Edit: die Firmware wird bei der S480 so oder so geladen, auch wenn nicht der Zugriff auf das Device statt findet. Korrigiert mich, wenn das nicht stimmt. Es muß also kein start des vdrs vorher erfolgen um das Firmware loadingt anzustoßen.
    Ich liefere mal ein Log dazu, aber erst nachher.

    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

    Einmal editiert, zuletzt von Torsten73 ()

  • Moin!


    Am einfachsten kannst du das testen, indem du das Teil erst mal abstöpselst, den Rechner startest, vdr beendest und dann das Ding einstöspelt.
    Erscheint dann ein Laden der Firmware in den Logs passiert es auch ohne Öffnen des Frontends.
    Falls dann noch nichts in den Logs steht, einfach den vdr starten, dann müsste das Laden angestoßen werden.


    Für die Argumentation mit Igor:
    Warum erstellt der Treiber schon die Devices, wenn sie noch nicht benutzt werden können?
    Bzw. wenn sie noch nicht benutzt werden können, warum blockiert ein open nicht so lange, bis die Firmware da ist und das Device benutzt werden kann?


    Ein direktes Beobachten des Ladens der Firmware ist nicht möglich (oder doch? müsste ich mal bei udev nachsehen). Ich könnte höchsten ein paar Sekunden warten (an der richtigen Stelle).


    Lars.

  • Da beim yavdr dass von dynmite übernommen wird, und es noch größere Probleme beim S3 damit gibt, macht es durchaus Sinn, dass dynamite die Firmware überwacht.


    Nein, das macht überhaupt keinen Sinn, weil dynamite nur die Devices kennt, aber nicht die Hardware die sich dahinter verbirgt. Udev kennt die Hardware und legt die Devices an, da gehört das hin.

    Was auch immer wirklich der Grund ist, ich weiß nur, es funktioniert problemlos, wenn man eine solche Lösung einbaut (siehe MLD, da ist dieser Lösungsweg seit Monaten im Einsatz und funktioniert perfekt, aber auch kein dynamite).


    Erwartest du jetzt, dass einer von uns sich MLD installiert und das reverse engineered, oder sagst du es uns einfach?

    Und damit das auch mit S3 geht, muß dies in dynamite erfolgen und nicht beim Start des VDR´s, da der beim Wakeup aus S3 ja gar nicht mehr neu gestartet wird.


    Ich bleibe dabei, das gehört nicht nach dynamite, sondern nach udev, udev kann ja dann dynamite benutzen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • hi jungs,


    gda, so haben wir es gelöst: dvb-usb


    greetz MarMic


    p.s. install ist doch gar nicht nötig :) 1. alles im svn 2. LIVEBOOT *LOOOL* :P


    edit://man sollte auch nicht vergessen, dass wir kein dynamite nutzen und vdr erst starten lassen, wenn das dvb init durchgelaufen ist -> erleichtert die sache natürlich gewaltig!

    SZVDR HD: Intel e5300@1,2ghz - Gigabyte GA-EP41-UD3L - 2GB ddr2 800 - Gainward G210 512mb - Silverstone LC16MR - Tevii s480 - Astra 19,2 - MLDHD-5.4 testing


    WZVDR HD: Intel g1610@1,6ghz - Intel DH61BE - Scythe Big Shuriken 2 - 4GB ddr3 1333 - Asus GT610 1024mb - Chieftec Hi-Fi HM-02 - Tevii s480 - Astra 19,2 - MLDHD-5.4 testing

    Einmal editiert, zuletzt von MarMic ()

  • gda, so haben wir es gelöst: dvb-usb


    Also nach dem Laden des Treibers 10 Sekunden warten nachdem der letzte DVB-Adapter hinzugekommen ist. Anscheinend unabhängig davon was für ein Adapter es ist. Es wird also auf das Erscheinen aller DVB-Adapter und dann noch mal 10 Sekunden gewartet. Warum nicht die unproblematischen Adapter ignorieren und nur auf die S480 warten? Ach ihr könnt auf diese Art und Weise nicht wissen welches der Adapter für die S480 ist. Sollte auf jeden Fall durch udev und dynamite zu machen sein.


    Ich muss mich nochmal korrigieren, ihr wartet dort anscheinend nur auf die Adapter der S480. Erst ganz am Schluss werden die anderen USB-DVB-Treiber geladen. Ich hätte es ja andersherum gemacht, so dass die anderen Devices schon mal aktiv sind, aber ohne dynamite nützt euch das ja eh nichts.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

    Einmal editiert, zuletzt von gda ()

  • hi gda,


    ja es wird geschaut ob eine oder n teviis im system enthalten sind und je nachdem wird auf die adapter gewartet (nur 1sekunde -> mit 10sekunden haette man einfach nur nen sleep 10 einfügen können und es haette immer geklappt). Tevii als erstes, da es ja noch andere langsame usb devices geben kann, was das testen auf adapter verfälschen würde.


    greetz MarMic

    SZVDR HD: Intel e5300@1,2ghz - Gigabyte GA-EP41-UD3L - 2GB ddr2 800 - Gainward G210 512mb - Silverstone LC16MR - Tevii s480 - Astra 19,2 - MLDHD-5.4 testing


    WZVDR HD: Intel g1610@1,6ghz - Intel DH61BE - Scythe Big Shuriken 2 - 4GB ddr3 1333 - Asus GT610 1024mb - Chieftec Hi-Fi HM-02 - Tevii s480 - Astra 19,2 - MLDHD-5.4 testing

  • ja es wird geschaut ob eine oder n teviis im system enthalten sind und je nachdem wird auf die adapter gewartet (nur 1sekunde -> mit 10sekunden haette man einfach nur nen sleep 10 einfügen können und es haette immer geklappt). Tevii als erstes, da es ja noch andere langsame usb devices geben kann, was das testen auf adapter verfälschen würde.


    Sorry, du hast recht, ihr hört einen Sekunde nach dem Erscheinen des letzten DVB-Adapters auf. Ihr wartet nur maximal 10 Sekunden darauf, dass sie alle kommen. Ne, stimmt auch nicht, ihr wartet nur auf das Erscheinen des letzten Adapters und macht dann sofort weiter. Das soll alles sein? Nur auf das Erscheinen beider Adapter zu warten?


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Ok also geht ein fixer Wert (1s oder 2s per udev rule und ein sleep auf dynamite seite beim Zugriff) - Zugriff braucht es nicht - nur Verzögerung


    (1s nach erscheinen der Devices/udev event bei MLD). Danke MarMic :)

    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

  • Ok also geht ein fixer Wert (1s oder 2s per udev rule und ein sleep auf dynamite seite beim Zugriff) - Zugriff braucht es nicht - nur Verzögerung


    (1s nach erscheinen der Devices/udev event bei MLD). Danke MarMic


    Ne, gar keine Verzögerung, nur warten bis beide Adapter da sind.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • hi jungs,


    es ist lange lange her seit dem einbau des workarounds. ich bin der meinung, wenn wirklich beide devices da sind also z.B. /adapter0 und /adapter1 -> dann ist die karte auch wirklich betriebsbereit. deswegen testen wir auf die anzahl der adapter (man könnte die eine sekunde auch kleiner wählen, aber naja 1sec ist ja vertrettbar).


    d.h. wenn sich die anzahl der adapter um die anzahl der gefundenen tevii-ids erhöht hat -> kann man den vdr starten


    greetz MarMic

    SZVDR HD: Intel e5300@1,2ghz - Gigabyte GA-EP41-UD3L - 2GB ddr2 800 - Gainward G210 512mb - Silverstone LC16MR - Tevii s480 - Astra 19,2 - MLDHD-5.4 testing


    WZVDR HD: Intel g1610@1,6ghz - Intel DH61BE - Scythe Big Shuriken 2 - 4GB ddr3 1333 - Asus GT610 1024mb - Chieftec Hi-Fi HM-02 - Tevii s480 - Astra 19,2 - MLDHD-5.4 testing

  • d.h. wenn sich die anzahl der adapter um die anzahl der gefundenen tevii-ids erhöht hat -> kann man den vdr starten


    Ganz sicher ist das natürlich nicht. Bis bei euch der VDR auf die Adapter zugreift, dauert es ja noch einige Sekunden. Bei uns läuft der VDR ja schon und dynamite schlägt erbarmungslos zu. Können wir nur durch Testen herausbekommen ob es reicht auf beide Adapter zu warten, oder ob wir noch ein paar Sekunden drauflegen müssen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

Jetzt mitmachen!

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