Karte funktioniert nach Resume nicht mehr wegen ddbridge Modul

  • Hi Lars,


    hätte ich gewusst, dass sie von Interesse sind, hätte ich sie schon vorher gepostet:
    mythtv-backend.service

    ddbridge-sleep.service


    Mir fällt gerade ein, dass ich das sleep nur am Anfang der ExecStop-Anweisung eingebaut hatte,
    ich werde mal versuchen es dazwischen zu packen. Nichtsdestotrotz, wurde mir im IRC-Channel von systemd
    zum zweiten Skript gesagt, und ich zitiere: "That's terrible" mit dem Verweis ich solle mich an den Maintainer
    wenden, damit dieser das Problem behebt. Ich hatte bis gestern Abend ja die Hoffung, dass das Problem schon behoben ist, sieht nur jetzt nicht mehr danach aus.


    Was ist denn mit den Metzler-Brüdern? Warten die den Code noch?
    Lohnt es sich die anzuschreiben? Gibt es sonst jemanden der sich damit auskennt?


    SG
    Antonio

  • Der zweite Link funktioniert nicht. Das Entladen und Laden des Treibers würde ich auch eher wie oben erwähnt über ein Script in /usr/lib/systemd/system-sleep machen.


    Lars.

  • Alternativ kann man auch Services schreiben, die auf das sleep.target bzw. suspend.target reagieren - im Arch Linux Wiki wird das an der Stelle beschrieben: https://wiki.archlinux.org/ind…er_management#Sleep_hooks
    Das hat auch den Vorteil, dass man durch die Angabe von Abhängigkeiten und Konflikten die Dienste, die die DVB-Karte nutzen, gezielt stoppen und wieder starten lassen kann.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Link ist korrigiert :)


    Ich kann die Anweisungen natürlich in eine Datei auslagern, aber eigentlich dürfte das keinen Unterschied machen, aber das werde ich im gleichen Zug mal versuchen.
    Udev-Regel habe ich erstellt und im mythtv-backend.service sollte eigentlich auch auf die Devices gewartet werden.
    Hmm... ich sehe gerade, dass ich aber nicht "/bin/systemctl start mythtv-backend.service" ausführe, sondern "/usr/bin/mythbackend", dann wird natürlich auch nicht
    auf die Geräte gewartet. Das werde ich am WE auch mal ausprobieren.


    Vielen Dank wieder mal! :)


    SG
    Antonio

  • Hallo seahawk,


    das klingt nach einer sehr guten Idee, so könnte ich die Sachen aufteilen und müsste nicht alles in einem Skript über ExecStart und ExecStop machen.


    Außerdem habe ich die Anweisung falsch geschrieben, sleep(20) statt /usr/bin/sleep 20 (habe ich gerade auf der Arch-Seite gesehen) :wand Das ist auch noch eine wahrscheinliche Fehlerquelle.


    Das müsste dann "/etc/systemd/system/suspend@mythtv.service" sein?
    Falls jemand weiß was
    User=%I
    und
    Environment=DISPLAY=:0
    bedeutet wäre das super, sonst frage ich im IRC-Channel, weil google da nichts vernünftiges ausspuckt.


    Schönen Gruß
    Antonio

  • Falls jemand weiß was
    User=%I
    und
    Environment=DISPLAY=:0
    bedeutet wäre das super


    Das ist im Beispiel ein Service, der im Kontext eines Benutzers ausgeführt werden soll - das "%I" ist der unescaped instance name (vgl. Tabelle 3 in https://www.freedesktop.org/so…emd/man/systemd.unit.html ), d.h. man würde den Dienst z.B. so anschalten:

    Code
    systemctl enable suspend@user

    Und er wird dann mit den Rechten des angegeben Benutzers ausgeführt.
    Die DISPLAY-Umgebungsvariable braucht es nur, wenn man Befehle ausführen will, die von einem laufenden X-Server abhängen - das ist bei rmmod, modprobe und systemctl aber nicht der Fall.
    Da du Module entladen lassen und Dienste steuern willst, kannst du den Dienst aber gleich mit root-Rechten laufen lassen - dann reicht eine suspend-dvb.service und die beiden genannten Zeilen braucht es in dem Fall nicht.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Das ist im Beispiel ein Service, der im Kontext eines Benutzers ausgeführt werden soll - das "%I" ist der unescaped instance name (vgl. Tabelle 3 in https://www.freedesktop.org/software/sys…stemd.unit.html ), d.h. man würde den Dienst z.B. so anschalten:

    Danke!
    Ich würde also

    Code
    systemctl enable suspend@mythtv


    ausführen und es würde die Datei "/etc/systemd/system/suspend@.service" vewendet werden und "I%" als User durch mythtv ersetzt werden würde, nicht wahr?

    Und er wird dann mit den Rechten des angegeben Benutzers ausgeführt.
    Die DISPLAY-Umgebungsvariable braucht es nur, wenn man Befehle ausführen will, die von einem laufenden X-Server abhängen - das ist bei rmmod, modprobe und systemctl aber nicht der Fall.
    Da du Module entladen lassen und Dienste steuern willst, kannst du den Dienst aber gleich mit root-Rechten laufen lassen - dann reicht eine suspend-dvb.service und die beiden genannten Zeilen braucht es in dem Fall nicht.

    Das stimmt natürlich auffallend. /etc/systemd/system/dvb-resume.service und /etc/systemd/system/dvb-suspend.service und dann kann ich auch beim Resume auf die devices warten.
    Das werde ich wie gesagt am WE testen. :)


    Danke nochmals!


    Gruß
    Antonio

Jetzt mitmachen!

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