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 .
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:
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:
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:
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
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:
<lircmap>
<remote device="/dev/input/myremote">
<left>KEY_LEFT</left>
<right>KEY_RIGHT</right>
<up>KEY_UP</up>
<down>KEY_DOWN</down>
<select>KEY_OK</select>
<enter>KEY_ENTER</enter>
<clear>KEY_DELETE</clear>
<start>KEY_MEDIA</start>
<back>KEY_EXIT</back>
<record>KEY_RECORD</record>
<play>KEY_PLAY</play>
<pause>KEY_PAUSE</pause>
<stop>KEY_STOP</stop>
...
</remote>
</lircmap>
Alles anzeigen
Damit funktionieren nun alle Tasten auch in KODI .
~ Markus