mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
v4l-utils: fix racy udev rule
ir-keytable -a can fail if it's run before the input and event devices are created. Fix this by changing the udev rule to trigger on event device creation instead of rc device creation. Also drop the udev rules patch and simply replace the udev rule with our version, this is easier to maintain. Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
parent
95eb836354
commit
1411f6098f
@ -46,6 +46,10 @@ post_makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/config
|
||||
cp -PR $PKG_DIR/config/* $INSTALL/usr/config
|
||||
|
||||
rm -rf $INSTALL/usr/lib/udev/rules.d
|
||||
mkdir -p $INSTALL/usr/lib/udev/rules.d
|
||||
cp -PR $PKG_DIR/udev.d/*.rules $INSTALL/usr/lib/udev/rules.d
|
||||
|
||||
(
|
||||
echo "# table libreelec_multi, type: RC6 NEC"
|
||||
for f in rc6_mce xbox_360 zotac_ad10 hp_mce xbox_one cubox_i ; do
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 996fdbf54f4b6c479dc7dd6ab4ca7933730aba93 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Reichl <hias@horus.com>
|
||||
Date: Sun, 12 Mar 2017 12:22:14 +0100
|
||||
Subject: [PATCH] ir-keytable: allow map rules override via
|
||||
/storage/.config/rc_maps.cfg
|
||||
|
||||
Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
---
|
||||
utils/keytable/70-infrared.rules | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/utils/keytable/70-infrared.rules b/utils/keytable/70-infrared.rules
|
||||
index afffd95..eef3234 100644
|
||||
--- a/utils/keytable/70-infrared.rules
|
||||
+++ b/utils/keytable/70-infrared.rules
|
||||
@@ -1,4 +1,14 @@
|
||||
# Automatically load the proper keymaps after the Remote Controller device
|
||||
-# creation. The keycode tables rules should be at /etc/rc_maps.cfg
|
||||
+# creation.
|
||||
+#
|
||||
+# User-defined rules can be stored in /storage/.config/rc_maps.cfg. If that
|
||||
+# file doesn't exist the default rules from /etc/rc_maps.cfg are used.
|
||||
|
||||
-ACTION=="add", SUBSYSTEM=="rc", RUN+="/usr/bin/ir-keytable -a /etc/rc_maps.cfg -s $name"
|
||||
+ACTION=="add", SUBSYSTEM=="rc", IMPORT{program}="/usr/bin/sh -c '\
|
||||
+ if [ -r /storage/.config/rc_maps.cfg ] ; then \
|
||||
+ echo rc_maps_cfg=/storage/.config/rc_maps.cfg ; \
|
||||
+ else \
|
||||
+ echo rc_maps_cfg=/etc/rc_maps.cfg ; \
|
||||
+ fi'"
|
||||
+
|
||||
+ENV{rc_maps_cfg}=="?*", RUN+="/usr/bin/ir-keytable -a $env{rc_maps_cfg} -s $name"
|
||||
--
|
||||
2.1.4
|
||||
|
25
packages/sysutils/v4l-utils/udev.d/70-infrared.rules
Normal file
25
packages/sysutils/v4l-utils/udev.d/70-infrared.rules
Normal file
@ -0,0 +1,25 @@
|
||||
# Automatically load the proper keymaps after the Remote Controller device
|
||||
# creation.
|
||||
#
|
||||
# User-defined rules can be stored in /storage/.config/rc_maps.cfg. If that
|
||||
# file doesn't exist the default rules from /etc/rc_maps.cfg are used.
|
||||
|
||||
ACTION=="add", SUBSYSTEMS=="rc", GOTO="begin"
|
||||
GOTO="end"
|
||||
|
||||
LABEL="begin"
|
||||
|
||||
SUBSYSTEM=="rc", ENV{rc_sysdev}="$name"
|
||||
|
||||
SUBSYSTEM=="input", IMPORT{parent}="rc_sysdev"
|
||||
|
||||
KERNEL=="event[0-9]*", ENV{rc_sysdev}=="?*", IMPORT{program}="/usr/bin/sh -c '\
|
||||
if [ -r /storage/.config/rc_maps.cfg ] ; then \
|
||||
echo rc_maps_cfg=/storage/.config/rc_maps.cfg ; \
|
||||
else \
|
||||
echo rc_maps_cfg=/etc/rc_maps.cfg ; \
|
||||
fi'"
|
||||
|
||||
ENV{rc_maps_cfg}=="?*", RUN+="/usr/bin/ir-keytable -a $env{rc_maps_cfg} -s $env{rc_sysdev}"
|
||||
|
||||
LABEL="end"
|
Loading…
x
Reference in New Issue
Block a user