Skip to content
seahawk1986 edited this page Sep 11, 2017 · 1 revision

Pakete

yavdr-hardware-irmp besitzt alle nötigen Abhängigkeiten, um irmplircd in Betrieb zu nehmen.

Beschreibung der Konfiguration

Der Start der Systemd-Unit wird durch /lib/udev/rules.d/60-irmplircd.rules ausgelöst und startet ein Instanz von [email protected]. Die Systemd-Unit und die Ergänzung für lircd2uinput (die im Paket yavdr-hardware-irmp steckt) sehen so aus:

$ systemctl cat [email protected]
# /lib/systemd/system/[email protected]
[Unit]
Description=irmplircd - a daemon for IRMP receivers
[Service]
Type=forking
Environment="SOCKET=/var/run/lirc/irmplircd" "KEYMAP=/etc/irmplircd/irmplicd.map"
EnvironmentFile=-/etc/default/irmplircd
ExecStart=/usr/bin/irmplircd -t ${KEYMAP} -d ${SOCKET}-%I /dev/%I
SuccessExitStatus=0 71
# /lib/systemd/system/[email protected]/lircd2uinput-hooks.conf
[Service]
ExecStartPost=/usr/bin/lircd2uinput-add ${SOCKET}-%I
ExecStopPost=/usr/bin/lircd2uinput-remove ${SOCKET}-%I

Der von irmplircd erstellte Lirc-Sockel hat den Kernel-Namen des Empfängers als Suffix, also z.B. /run/lirc/irmplircd-hidraw6, wenn der Kernel für den Empfänger das Gerät /dev/hidraw6 anlegt - prinzipiell könnte man mit dem Konstrukt mehrere IRMP-Empfänger parallel betreiben (auch wenn man sich ggf. noch etwas für getrennte Keymaps überlegen müsste).

Anpassung der Keymap

Die Vorgegebene Keymap (ist im Auslieferungszustand leer) liegt in /etc/irmplircd/irmplircd.map, in /etc/default/irmplircd kann aber auch ein anderer Pfad für die Variable KEYMAP gesetzt werden.

Die nötige Zuordnung erhält man durch das Auslesen der Scancodes mittels irw vom Sockel von irmplircd:

$ sudo irw /var/run/lirc/irmplircd-hidraw6
0250af00f200 0 0250af00f200 IRMP
0250af00b600 0 0250af00b600 IRMP

In der Keymap könnte eine Belegung der Scancodes mit Tastennamen dann so aussehen:

0250af00f200 KEY_UP
0254ab002c00 KEY_RIGHT

Die Erstellung der Keymap wird auch in /usr/share/doc/irmplircd/README.Debian beschrieben.

Eigene udev-Regeln

Falls der verwendete IRMP-Empfänger nicht von der vorinstallierten Regel /lib/udev/rules.d/60-irmplircd.rules erkannt wird, kann man eigene Regeln in /etc/udev/rules.d/ hinterlegen. Die Vendor- und Produkt-ID kann man mit lsusb sehen, zusätzliche UDEV-Attribute kann man sich mit udevamd info --query=all --name/dev/hidraw6 anzeigen lassen (die Pfad muss man natürlich auf das tatsächlich für den Empfänger angelegte Device anpassen).