Shutdown bei KEY_POWER unter Debian Stretch Backports verhindern

  • Hallo,


    ich habe einen Debian Stretch Rechner der durchgehend läuft und an dem ein Igor-USB Emfänger hängt. Dieser Empfänger soll aktuell nur auf eine Taste reagieren und dann über irexec einen Dienst starten. Im gleichen Raum werden mit der Fernbedienung aber auch andere Signale für ein anderes Gerät gesendet das dieser Debian Stretch Rechner ignorieren soll.


    Bisher hat dies immer gut funktioniert. Jetzt habe ich aber auf dem Rechner auf Debian Stretch Backports upgedatet und damit läuft jetzt auf dem System ein 4.16. Kernel (vorher ein 4.9.)

    Jetzt ist es leider so das der Rechner sich runter fährt wenn ich auf der Fernbedienung die Power Taste (KEY_POWER) drücke (die aber für das andere System gedacht ist).





    Code
    1. /etc/rc_keymaps# ir-keytable
    2. Found /sys/class/rc/rc0/ (/dev/input/event7) with:
    3. Driver igorplugusb, table rc-hauppauge
    4. Supported protocols: lirc rc-5 rc-5-sz jvc sony mce_kbd rc-6 sharp xmp
    5. Enabled protocols: lirc rc-5
    6. Name: IgorPlug-USB IR Receiver
    7. bus: 3, vendor/product: 03eb:0002, version: 0x0001
    8. Repeat delay = 500 ms, repeat period = 125 ms
    9. root@jupiter:/etc/rc_keymaps#



    Gibt es eine einfach Lösung den Shutdown bei KEY_POWER zu verhindern. Am besten so das ich später die Taste noch in anderen Anwendungen benutzen kann.


    Vielen Dank für Eure Hilfe


    Gruß Dirk :)

  • Was passiert denn wenn Du die Zeile


    Code
    1. scancode 0x1c3d = KEY_POWER (0x74)

    aus der ir-keytable einfach rauslöschst? Dann dürfte der Rechner auf die Taste nicht weiter reagieren.


    Am besten so das ich später die Taste noch in anderen Anwendungen benutzen kann.

    da wird's knifflig. Das hängt dann ja davon ab, welche Programme mit dem lirc zusammenarbeiten. Wenn also Programm A nicht auf Power-Taste reagieren soll, Programm B aber schon, dann darf erwähnte Zeile natürlich nicht gelöscht werden und die weitere Verwendung muss in den Programmen eingestellt werden.

    Ich kenne das nur bei Kodi. Da gibt es nochmal zwei weitere Config-Dateien für Tastenbelegung und Befehlsverknüpfung. Da Dein PC ja aber bei der Power-Taste runterfährt, muss es bereits ein Programm geben, dass das Lirc-Signal mit dem Shutdown-Befehl verknüpft. Das würde ich mal ausfindig machen und da die passende Config-Datei verändern.

  • Vielen Dank für deine Anregungen.


    Wenn ich eine ir-keytable ohne KEY_POWER lade dann tritt der Fehler nicht auf aber das war auch nicht mein Lösungsansatz da ich wissen wollte welche Anwendung das veranlasst.


    Bei der weiteren Suche habe ich die Ursache gefunden. Wenn der Dienst lircd-uinput geladen ist dann fährt der Rechner runter.

    Hab den jetzt generell deaktiviert (brauche den ja auch gar nicht) und jetzt tritt das Problem nicht mehr auf.


    Am liebsten würde ich Lirc komplett deinstallieren, da man das ja mit den Keymaps nicht mehr braucht. Aber irexec setzt darauf noch auf. Oder kennt jemand eine alternative zu irexec die direkt auf die Keymaps aufsetzen kann.


    Schöne Grüße

  • igord, ein schneller lirc-Ersatz für den IgorPlugUSB und RC5 Empfang aufbohren, falls es dir die Mühe wert ist, und die Kenntnisse vorhanden sind.


    Oder IRMP-STM32-USB-IR-Empfänger/Einschalter, dafür gibt es irmpexec (komplett ohne lirc) .


    Was anderes für den IgorPlugUSB ist mir nicht bekannt, und wird es vermutlich auch nie geben (wer entwickelt noch für veraltete Hardware?).

  • Ich glaube ich verstehe Dein Problem einfach nicht. Soll der Rechner noch auf die Fernbedienung reagieren oder nicht? Wenn Du Lirc deinstallierst, kannst Du den IR-Receiver genauso gut ausstöpseln - ohne Lirc geht nichts. Jedenfalls habe ich zu Lirc einen tollen Wiki-Eintrag gefunden, der evtl. hilfreich ist: Tasten mit Funktionen belegen


    Da steht zum Beispiel, dasss es im Home-Verzeichnis eine Datei .lircrc gibt, in der festgelegt ist, welcher Knopf welchen Befehl auslöst. Diese Datei wird von irexec ausgelesen und benutzt. Die .lirrc hat am Anfang oft viele "include"-Zeilen, in denen die Konfiguration für diverse Programme geladen wird (z.B. VLC, Mplayer, Amarok etc.).


    Lircd-uinput reagiert einfach auf empfangene Knöpfe (vom lirc-daemon) und gibt die Ausgabe an /dev/input/event weiter. Da die Eingabe von lircd (dem lirc-daemon) kommt ist die Datei

    Code
    1. /usr/etc/lirc/lircd.conf

    verantwortlich für die Tasten, auf die der Daemon reagiert. Welche Programme wiederrum auf /dev/input/event reagieren ist nicht ganz klar. Das ist eine systemweite Datei auf die grundsätzlich alle Programme zugreifen können, auch der Linux-Kernel. Die ist also ein Block-Device, das genau wie z.B. der Joystick

    (unter /dev/input/js0) für alle Programme zu Verfügung steht.


    Nicht sicher, ob es das war was Du suchst. Trotzdem gutes Gelingen bei der Problemlösung.

  • Lircd-uinput reagiert einfach auf empfangene Knöpfe (vom lirc-daemon) und gibt die Ausgabe an /dev/input/event weiter. Da die Eingabe von lircd (dem lirc-daemon) kommt ist die Datei


    Das war genau mein Problem --> nach deaktivieren dieses Dienstes fährt der Rechner nicht mehr runter und es werden nur noch die Befehle ausgeführt die für irexec konfiguriert sind --> damit ist mein Problem gelöst



    Wenn Du Lirc deinstallierst, kannst Du den IR-Receiver genauso gut ausstöpseln - ohne Lirc geht nichts.

    Ich habe das so verstanden das durch die rc_keymaps die Fernbedienung direkt im Kernel wie eine Tastatur eingebunden wird und dann die verschiedenen Programme direkt zugreifen können. KODI und VDR können dann ohne LIRC direkt die Fernbedienung verwenden. Leider kann Irexec nicht direkt auf diese Schnittstelle zugreifen so das es da noch den Umweg über LIRC braucht.


    Igord hab ich schon an anderem Rechner eingerichtet und läuft dort auch sehr gut (Fernbedienung ist nicht so träge) aber da an diesem Rechner aktuell nur eine Taste reagieren soll mache ich mir glaub ich nicht die Mühe das an dem Rechner einzurichten.