KEY_SLEEP fährt Rechner in den Standby

  • Hallo,


    ich bastle derzeit gerade an der Umstellung meines VDR von Xubuntu 14.04 auf 18.04. Beim Konfigurieren der Fernbedienung ist mir aufgefallen, dass der Rechner bei der Taste "KEY_SLEEP" in den Standby (Suspend2RAM) fährt und wenn man erneut drückt, dieser wieder hochfährt (SSH Verbindung bleibt sogar bestehen, wenn man nicht zu lange wartet). Empfänger ist ein serieller Atric.

    Kann mir jemand kurz erklären, welchen genauen Weg der Tastendruck nunmehr geht (udev legt fest, dass systemd auf den event reagieren soll?)?

    Hat es mit /lib/udev/rules.d/70-power-switch.rules zu tun? Aber wo ist festgelegt, dass KEY_SLEEP und nicht KEY_NUMERIC_1 den events auslöst?!


    Marcus

    My VDRs:

  • In der Vorkonfiguration wird nach der Installation von lircd neben der lircd.service (und lircd.socket) auch eine lircd-uinput.service gestartet, die die Tastendrücke auf einem virtuellen Kernel Input Device (über uinput) weiterreicht (und gerne mal prellende Tasten generiert).


    Wenn du beim Atric über das serial_ir Modul gehst und dann keinen Dienst wie eventlircd hast, der sich das Gerät exklusiv greift, hast du ebenfalls ein Kernel Input Device, dessen Tastendrücke an den Desktop weitergeleitet werden.


    KEY_SLEEP ist die gängige Taste auf Tastaturen, die für den Standby genutzt wird. Bei xfce dürfte der xfce-power-manager dafür verantwortlich sein auf diese Taste zu reagieren.


    Wenn der VDR über den Lirc-Sockel die Tastendrücke bezieht, würde ich die lircd-uinput.service maskieren, damit die nicht ungewollt dazwischen funkt:

    systemctl mask --now lircd-uinput.service

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Der Rechner fährt er auch ohne lircd-uinput herunter - und ich bin nicht grafisch eingeloggt, d.h. xfce läuft nicht. Bei inputlirc habe ich es gut feststellen können - mit "grab" Option fährt nichts herunter. Ohne schon.

    Es reicht serial_ir geladen zu haben. Wo ist quasi KEY_SLEEP verdrahtet...

    My VDRs:

  • und ich bin nicht grafisch eingeloggt, d.h. xfce läuft nicht.

    Läuft da ein Login-Manager wie lightdm oder GDM, der auf die Taste reagieren kann?


    Ansonsten könntest du versuchen das generell über die /etc/systemd/sleep.conf abzudrehen - z.B. mal versuchen AllowSuspend=no zu setzen und dann den Rechner neu zu starten.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich habe den "Actionhandler" ausfindig gemacht - nachdem ich von inputdev auf lirc-only umgestellt habe und lircd-uinput.service abgestellt habe ("umasked") - war das Verhalten weg. D.h. lircd-uinput.service muss das ganze schon einmal weiter reichen.

    Jetzt weiss ich wo ich genauer suchen muss...


    EDIT: nein, passt auch nicht. Weiter suchen...

    My VDRs:

    Einmal editiert, zuletzt von dad401 ()

  • Nochmal von vorn:


    Laufen tut nicht viel:


    Sobald bei ir-keytable das Protokoll rc-6 für meine MCE-FB aktiviert ist, funktioniert das mit dem Abschalten.

    Ist dort nur lirc enthalten, erkennt das System auch keine Tasten (evtest).


    Systemd muss also auf /dev/input/event8 lauschen und sobald mit aktivierten Protokoll der KEY_SLEEP kommt, fährt das System herunter. Kann es sein, dass systemd generell alle events die es mitbekommt, auf KEY_SLEEP auswertet und reagiert? Kann man es dann auch nur generell abschalten (sleep.conf oder logind.conf)? Kann man systemd nicht sagen: bei /dev/input/event8 reagiere nicht!


    EDIT:

    man logind.conf beschreibt es m.E.:

    Also bleibt nur eine Frage: wo und wer tagt /dev/input/event8 mit "power-switch"?

    Anwort: /lib/udev/rules.d/70-power-switch.rules für ALLE event*

    Code
    SUBSYSTEM=="input", KERNEL=="event*", ENV{ID_INPUT_SWITCH}=="1", TAG+="power-switch"
    SUBSYSTEM=="input", KERNEL=="event*", ENV{ID_INPUT_KEY}=="1", TAG+="power-switch"

    Wenn ich hier irgendwie event8 ausklammern könnte, wäre mein Ziel erreicht...

    My VDRs:

    2 Mal editiert, zuletzt von dad401 ()

Jetzt mitmachen!

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