[vdr4arch] Frontends der DDBridge tauchen erst nach "Ewigkeiten" auf

  • Hi,


    Mein Problem ist das der VDR praktisch schon nach ~5Sek startet. Die CT Frontends der Octopus aber erst nach 7s, bzw 11s auftauchen. Warum ist da so eine gefühlte "Ewigkeit" dazwischen?
    System ist der aus der Sig, jedoch mit VDR4arch und dem LTS Kernel (3.14)


    Lässt sich das beschleunigen? Alternativ müsste ich den VDR wohl mit den dynamite Plugin + Patch versorgen


    Anbei mal dmesg, da sieht man die "Ewigkeit" ;-)

  • Nur so als Info Arch4VDR?! Du meinst VDR4Arch.


    Das ganze läuft ja mit dkms. Hier mal das PKGBUILD dazu: https://github.com/VDR4Arch/vd…ivers/dddvb-dkms/PKGBUILD
    Ich bin mit meinem Latein endgültig am Ende. Wenn sich irgendjemand mit DKMS auskennt... HILFE!! Ich hatte gehofft das Problem endgültig los zu sein.


    dkms ist irgendwie auch nicht so die tolle Lösung...



    chriszero : Du hast dkms in systemd aktiviert, so wie es im Wiki steht?: https://wiki.archlinux.org/ind…dule_Support#Installation

  • Lässt sich das beschleunigen?

    Nein, aber der Start des VDR lässt sich verzögern - eigentlich sollte da so eine Mitteilung bei der Installation bzw. dem Update des VDR-Paketes auftauchen:

    Remember!! VDR has to run after all DVB devices are initialized
    To generate a template rule for systemd run 'vdr-gensddropin'

    Das Skript erstellt dann basierend auf der aktuell existierenden Zahl der Tuner eine Regel, die den Start des VDR entsprechend verzögert, bis die Tuner alle da sind.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Dkms habe ich verbannt, das lief nicht. Hat immer alles zerschossen. Der Treiber ist aus der source vom Hersteller kompiliert und per hand installiert.


    Der dkms service war aktiv als ich das getestet hatte. Ich kann mir das mit dkms auch mal in einer ruhigen minute anschauen.


    Aber das eigentliche Problem gerade ist das die Karte nur so Arschlangsam in gang kommt.


    Vdr4arch, meinte ich doch ;)

  • drxk, d.h. es ist eine ältere Karte, oder? Der Treiber braucht einfach ein paar Sekunden zum Initialisieren.
    Ist hier bei mir auch so.


    Lars.

  • Das alte DRXK-Frontend braucht Firmware. Diese muß geladen werden. Das ganze dauert halt etwas.


    CU
    Oliver

  • Das Skript erstellt dann basierend auf der aktuell existierenden Zahl der Tuner eine Regel, die den Start des VDR entsprechend verzögert, bis die Tuner alle da sind.

    Achja. Das Skript habe ich komplett vergessen.


    Nochmal zur Erklärung. systemd liefert kein Event, das sagt. Jetzt sind alle DVB-Karten initialisiert. Da der VDR nicht damit zurecht kommt bzw. erwartet, dass beim Start alle Devices da sind, muss da etwas drumherum gebaut werden.
    systemd kann schlecht wissen, wann alle DVB-Karten da sind, daher soll das Skript an einem Punkt ausgeführt werden, an dem alle DVB-Karten initialisiert sind.


    Edit: Es gibt ein Event, das mir sagt. Jetzt sind alle Devices initialisiert. Das kommt im Normalfall aber deutlich später als die Einzelevents für die DVB-Karten. Was wahrscheinlich möglich wäre, ist dass man das umstellt. D.h. standardmäßig auf dieses Event warten lässt und aber im Wiki erklärt, wie man das überschreibt und damit den Start beschleunigt.


    Früher hat das Skript die Regel auch automatisch angelegt. Das hat zu Verwirrungen geführt, daher erklärt das Skript jetzt nur noch, was wo gemacht werden soll.


    Schöner wäre, wenn der VDR ohne DVB-Devices gestartet werden könnte und diese danach dynamisch erkennt. Mal sehen, was Klaus noch so hervorzaubert.

  • Im Prinzip ist ja alles da, es muss nur aufgeräumt und abgespeckt werden. Ich will es schon noch gerne dieses Jahr schaffen... :)


    Lars

  • Sorry, wenn ich den alten Thread wieder hochhole.


    Da ich mit einer MAX S8 herum hantiere, die auch von diesem "Problem" betroffen ist, hier mein "Würgaround":


    Eine rules-Datei in /etc/udev/rules.d/ anglegen. Zum Beisiel mit dem Namen 90-dvb-devices.rules


    Code
    1. #
    2. ## Create systemd device units for DVB devices
    3. ##
    4. SUBSYSTEM=="video4linux", TAG+="systemd"
    5. SUBSYSTEM=="dvb", TAG+="systemd


    Damit bekommt der systemd die devices-special-Files angeschubst.


    Jetzt kann ich dann in meinen *.service-Dateien den Status der Frontends abfragen:


    Code
    1. [Unit]
    2. Description=Blah blah blah
    3. After=network.target
    4. Wants=dev-dvb-adapter0-frontend0.device
    5. After=dev-dvb-adapter0-frontend0.device
    6. [Service]
    7. ...


    Nur für den Fall, dass jemand mal eine "schnelle" Lösung braucht.


    Damit funktioniert hier mein Setup zumindest.