From 001e5fc621e63029d836e48ccd25121841573c47 Mon Sep 17 00:00:00 2001 From: Benjamin Schieder Date: Tue, 14 Mar 2006 01:11:32 +0000 Subject: [PATCH] Benjamin Schieder: udev (084) doesn't ship inputdev.sh anymore but still references it in permissions.rules This causes a deadlock in which udev will try forever to handle an event and since it fails doesn't remove it from the queue. Why oh Why is udev such a huge pile of crap... [2006022216461208081] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@7202 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- package/base/udev/inputdev.sh | 30 ++++++++++++++++++++++++++++++ package/base/udev/udev.conf | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 package/base/udev/inputdev.sh diff --git a/package/base/udev/inputdev.sh b/package/base/udev/inputdev.sh new file mode 100644 index 000000000..82e4fdc37 --- /dev/null +++ b/package/base/udev/inputdev.sh @@ -0,0 +1,30 @@ +#!/bin/sh -e +# +# Scans /proc/bus/input/devices for the given device. +# +# (c) 2004 Darren Salt +# GPL v2 or later applies. + +[ "$1" ] || exit 0 + +# input device name, less leading "input/" +DEVICE=${1#input/} + +# "|"-separated list. +# The first found in the given device's "N:" line will be output. +DEFAULT_KEYWORDS='dvb|saa7134' +KEYWORDS=${2:-$DEFAULT_KEYWORDS} + +exec sed -nre ' + /^I:/ { + : gather + N + /\nH:/! b gather + /'"$DEVICE"'/ { + s/^.*\nN:[^\n]*("|\b)('"$KEYWORDS"')("|\b)[^\n]*\n.*$/inputdev/ + T + p + } + } +' < /proc/bus/input/devices + diff --git a/package/base/udev/udev.conf b/package/base/udev/udev.conf index 12aa6e832..2d885e0d4 100644 --- a/package/base/udev/udev.conf +++ b/package/base/udev/udev.conf @@ -27,6 +27,8 @@ udev_pm() { cp -v extras/{ide-devfs.sh,scsi-devfs.sh} $root/etc/udev/scripts/ chmod +x $root/etc/udev/scripts/{ide-devfs.sh,scsi-devfs.sh} cp -v $confdir/permissions.rules $root/etc/udev/rules.d/ + cp -v $confdir/inputdev.sh $root/etc/udev/scripts + chmod +x $root/etc/udev/scripts/inputdev.sh ln -svf ../etc/udev/scripts $root/lib/udev install_init udevd $confdir/udevd.init }