Fernbedienung von KODI, warum manche Tasten nicht funktionieren, und wie es funktioniert.

  • Da gibt es schon ganz viele Infos im Netz, aber es war nirgends so beschrieben, dass ich es verstanden haben :( .

    Daher hier ein paar Sätze mit Grundlagen, zur Lösung von Einzelproblemen gibt es ja schon genug im Netz.


    1. Der Kernel interpretiert die IR Signale, und macht daraus Tastaturereignisse.

    De-installiert einfach mal lircd, inputlirc, ...

    Dann installiert ihr ir-keytable, und konfiguriert ir-keytable .

    Code
    ir-keytable -s rc<x> -t

    gibt die Ereignisse aus, z.B. KEY_1, KEY_OK, ...

    <x> ist das Eingabegerät, an dem Eure Fernbedienung hängt, z.B. -s rc2 (z.B. an 0 hängt CEC/HDMI-0, an 1 hängt CEC/HDMI-1, an 2 hängt gpio_ir_recv).

    Wenn das nicht funktioniert -> Anleitung im Netz suchen.

    Wenn es funktioniert: beendet ir-keytable, und drückt auf der Fernbedienung die 1.

    Dann müsste auf der Konsole eine "1" angezeigt werden, wie wenn ihr auf der Tastatur 1 eingebt.

    Klar: aus Sicht des Rechners ist jetzt die Fernbedienung eine weitere Tastatur.

    Wenn ihr jetzt KODI startet, funktionieren manche Tasten. Klar: KODI kann ja mit einer Tastatur bedient werden ...


    Um das Device, an dem die Fernbedienung hängt, eindeutig identifizierbar zu machen, erstellt ihr noch eine udev Regel in der Datei /etc/udev/rules.d/90-persistent-remote.rules, z.B. für rpi/gpio:

    Code
    ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="gpio_ir_recv", SYMLINK+="input/myremote"


    2. Wir machen aus der Tastatur eine (lirc)Fernbedienung

    Im Prinzip kann man es dabei belassen, und die KEY* Ereignisse so umbenennen/konfigurieren, dass das mit KODI funktioniert. Ist aber Arbeit, und unnötig.


    Installiert einfach inputlirc, und konfiguriert es mit der Datei /etc/default/inputlirc:

    Code
    EVENTS="/dev/input/myremote"
    OPTIONS="-m 0"

    Dann werden aus den von /dev/input/myremote erzeugten Tastaturereignissen lirc Ereignisse, mit denen Anwendungen, die Lirc unterstützen, gesteuert werden können.

    Also, aus dem Tastaturereignis KEY_1 wird das lirc Ereignis KEY_1, usw.

    Funktioniert prima, und ich kann VDR damit auch perfekt bedienen, wie mit jeder anderen lirc Fernbedienung :) .

    Nur bei KODI funktionieren immer noch nicht alle Tasten :( .


    Das Problem ist, dass z.B. die 1 auf der Fernbedienung nun 2 Ereignisse erzeugt: Das Tastaturereignis KEY_1, und das lirc Ereignis KEY_1. VDR stört das nicht, KODI aber schon. KODI ignoriert das lirc Ereignis. Eine Meldung im Log dazu könnte Anwender verwirren, daher wird von einer solchen Meldung abgesehen :( .


    Die Lösung ist recht einfach: Wir ergänzen -g in /etc/default/inputlirc:

    Code
    EVENTS="/dev/input/myremote"
    OPTIONS="-g -m 0"

    Jetzt holt sich inputlirc das Device /dev/input/myremote exklusiv, d.h. es werden aus diesem Device keine Tastaturereignisse mehr erzeugt.

    1 auf der Fernbedienung zeigt entsprechend keine 1 mehr auf der Konsole.

    Und KODI reagiert (erst mal) auf gar keine Tasten mehr. Klar, es gibt ja keine Tastaturereignisse mehr.

    Wir legen also eine Lircmap.xml an, in der

    Code
    <lircmap>
      <remote device="/dev/input/myremote">
    ...

    steht, und konfigurieren damit das Mapping der lirc Ereignisse auf die KODI Ereignisse.

    Man kann /usr/share/kodi/system/Lircmap.xml nach .kodi/userdata/ kopieren, in .kodi/userdata/Lircmap.xml alle remotes löschen außer <remote device="devinput">, und dann "devinput" durch "/dev/input/myremote" ersetzen. Sollte schon ziemlich gut passen, und kann bei Bedarf ja noch geändert werden. Sieht etwa so aus:


    Damit funktionieren nun alle Tasten auch in KODI :) .


    ~ Markus



    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

Jetzt mitmachen!

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