From 7305d58ddb999d5c18b9a9be39b43902853e2549 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 4 Feb 2017 23:48:33 +0100 Subject: [PATCH 1/3] lirc: use _LIRCUP as key-release suffix instead of _UP Since diagonal key support was added in kernel 4.7 KEY_LEFT_UP and KEY_RIGHT_UP are valid input symbols. This means we can no longer use _UP as a suffix for transporting release events from lircd to lircd-uinput, lircd-uinput now interprets KEY_LEFT_UP/KEY_RIGHT_UP as a diagnoal key down event instead of left/right key release. --- packages/sysutils/lirc/scripts/lircd_helper | 2 +- packages/sysutils/lirc/system.d/lircd-uinput@.service | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sysutils/lirc/scripts/lircd_helper b/packages/sysutils/lirc/scripts/lircd_helper index 6895403ca9..8e79b073a9 100755 --- a/packages/sysutils/lirc/scripts/lircd_helper +++ b/packages/sysutils/lirc/scripts/lircd_helper @@ -36,7 +36,7 @@ case "$ACTION" in 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" + LIRCD_CONFIG="$LIRCD_CONFIG --release=_LIRCUP" 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 index 0490aa5956..85ddf3e3bb 100644 --- a/packages/sysutils/lirc/system.d/lircd-uinput@.service +++ b/packages/sysutils/lirc/system.d/lircd-uinput@.service @@ -4,7 +4,7 @@ Description=lircd-uinput with %I ConditionPathExists=/storage/.cache/services/lircd.conf [Service] -ExecStart=/usr/sbin/lircd-uinput /run/lirc/lircd-%I +ExecStart=/usr/sbin/lircd-uinput --release=_LIRCUP /run/lirc/lircd-%I Slice=system-lircd.slice Restart=on-failure RestartSec=2 From f63efba4e9822d3a79101a38042ed5d38db78d4a Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 4 Feb 2017 23:56:29 +0100 Subject: [PATCH 2/3] lirc: fix cross compilation Make sure lirc uses kernel headers from target, not the build host, when generating input_map.inc. --- packages/sysutils/lirc/package.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/sysutils/lirc/package.mk b/packages/sysutils/lirc/package.mk index 89fa4a5ac5..68ea8d239e 100644 --- a/packages/sysutils/lirc/package.mk +++ b/packages/sysutils/lirc/package.mk @@ -37,6 +37,12 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_forkpty=no \ --with-gnu-ld \ --without-x" +pre_configure_target() { + # patch lirc-make-devinput to use target kernel include + sed -e "s|/usr/include/linux/|${SYSROOT_PREFIX}/usr/include/linux/|g" \ + -i ${ROOT}/${PKG_BUILD}/tools/lirc-make-devinput +} + post_makeinstall_target() { rm -rf $INSTALL/usr/lib/systemd rm -rf $INSTALL/lib From d3c568d81c7457ec0ccab658de79d132bb3aae95 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 4 Feb 2017 23:57:19 +0100 Subject: [PATCH 3/3] eventlircd: dont' send _UP release events Kodi doesn't support the artificial lirc release events and _UP leads to a clash since KEY_LEFT_UP and KEY_RIGHT_UP are valid linux input events since the diagonal key support in kernel 4.7. --- packages/sysutils/eventlircd/system.d/eventlircd.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/eventlircd/system.d/eventlircd.service b/packages/sysutils/eventlircd/system.d/eventlircd.service index 7859753e2a..15b6078315 100644 --- a/packages/sysutils/eventlircd/system.d/eventlircd.service +++ b/packages/sysutils/eventlircd/system.d/eventlircd.service @@ -2,7 +2,7 @@ Description=Eventlirc server daemon [Service] -ExecStart=/usr/sbin/eventlircd -f --evmap=/etc/eventlircd.d --socket=/run/lirc/lircd --release=_UP +ExecStart=/usr/sbin/eventlircd -f --evmap=/etc/eventlircd.d --socket=/run/lirc/lircd KillMode=process TimeoutStopSec=1s