diff --git a/packages/sysutils/eventlircd/udev.d/98-eventlircd.rules b/packages/sysutils/eventlircd/udev.d/98-eventlircd.rules index 446a82c18b..f75dea2ee8 100644 --- a/packages/sysutils/eventlircd/udev.d/98-eventlircd.rules +++ b/packages/sysutils/eventlircd/udev.d/98-eventlircd.rules @@ -30,6 +30,9 @@ ATTRS{name}=="eventlircd", GOTO="end" ATTRS{name}=="lircd", \ ENV{eventlircd_enable}="true" +ATTRS{name}=="lircd-uinput", \ + ENV{eventlircd_enable}="true" + #------------------------------------------------------------------------------- # Ask eventlircd to handle input event devices created by bdremoteng. For this # to work, bdremoteng must be configured to output Linux input events and must diff --git a/packages/sysutils/lirc/scripts/lircd_helper b/packages/sysutils/lirc/scripts/lircd_helper index c83c512341..6895403ca9 100755 --- a/packages/sysutils/lirc/scripts/lircd_helper +++ b/packages/sysutils/lirc/scripts/lircd_helper @@ -33,9 +33,10 @@ case "$ACTION" in if [ ! -e "/run/lirc/lircd-$DEVICE.pid" ]; then LIRCD="/usr/sbin/lircd" - LIRCD_CONFIG="--uinput --driver=$DRIVER --device=/dev/$DEVICE" + LIRCD_CONFIG="--driver=$DRIVER --device=/dev/$DEVICE" LIRCD_CONFIG="$LIRCD_CONFIG --output=/run/lirc/lircd-$DEVICE" LIRCD_CONFIG="$LIRCD_CONFIG --pidfile=/run/lirc/lircd-$DEVICE.pid" + LIRCD_CONFIG="$LIRCD_CONFIG --release=_UP" if [ -e "/storage/.config/lircd.conf" ]; then LIRCD_CONFIG="$LIRCD_CONFIG /storage/.config/lircd.conf" diff --git a/packages/sysutils/lirc/system.d/lircd-uinput@.service b/packages/sysutils/lirc/system.d/lircd-uinput@.service new file mode 100644 index 0000000000..485f538918 --- /dev/null +++ b/packages/sysutils/lirc/system.d/lircd-uinput@.service @@ -0,0 +1,12 @@ +[Unit] +Description=lircd-uinput with %I + +[Service] +ExecStart=/usr/sbin/lircd-uinput /run/lirc/lircd-%I +Slice=system-lircd.slice +Restart=on-failure +RestartSec=2 + +[Install] +WantedBy=multi-user.target + diff --git a/packages/sysutils/lirc/udev.d/98-lircd.rules b/packages/sysutils/lirc/udev.d/98-lircd.rules index aca4dce868..0bc7714ed7 100644 --- a/packages/sysutils/lirc/udev.d/98-lircd.rules +++ b/packages/sysutils/lirc/udev.d/98-lircd.rules @@ -67,6 +67,12 @@ ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", ACTION=="add", \ TAG+="systemd", ENV{SYSTEMD_WANTS}+="lircd@$name:$env{lircd_driver}:$env{lircd_conf}.service", \ RUN+="lircd_wakeup_enable" +ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", ACTION=="add", \ + TAG+="systemd", ENV{SYSTEMD_WANTS}+="lircd-uinput@$name.service" + +ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", ACTION=="remove", \ + RUN+="/usr/bin/systemctl stop lircd-uinput@$name.service" + ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", ACTION=="remove", \ RUN+="/usr/bin/systemctl stop lircd@$name:$env{lircd_driver}:$env{lircd_conf}.service"