-
Notifications
You must be signed in to change notification settings - Fork 0
IRMP Empfänger
yavdr-hardware-irmp besitzt alle nötigen Abhängigkeiten, um irmplircd in Betrieb zu nehmen.
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).
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.
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).