Package: udev Version: 0.090-4 Severity: wishlist Tags: patch Hello,
I have written this little patch, to support platform and/or serio devices in persistent input rules (by-path). I don't know, whether it's reasonable to persistly name these devices, but i was nervous, my /dev/input/by-path directory is empty ;) ... if it's not reasonable, just drop this patch. Second patch (path_id.class.diff) is an attempt to add some detection of ID_CLASS for non-usb devices (like serio, or ir remote on my tv card), it's based on driver name. my directory /dev/input/by-path looks like this now pci-0000:00:1d.0-usb-0:1:1.0-event-mouse pci-0000:00:1d.0-usb-0:1:1.0-mouse pci-0000:02:01.0--event-ir platform-i8042-serio-1-event-kbd platform-pcspkr-event-spkr cu libor -- Package-specific info: -- /etc/udev/rules.d/: /etc/udev/rules.d/: celkem 8 lrwxrwxrwx 1 root root 20 2005-06-16 18:21 020_permissions.rules -> ../permissions.rules lrwxrwxrwx 1 root root 19 2005-10-12 01:47 025_libgphoto2.rules -> ../libgphoto2.rules lrwxrwxrwx 1 root root 22 2005-10-17 01:44 025_logitechmouse.rules -> ../logitechmouse.rules lrwxrwxrwx 1 root root 16 2006-03-28 01:48 030_ifplugd.rules -> ../ifplugd.rules lrwxrwxrwx 1 root root 12 2006-03-07 03:18 050_hal-plugdev.rules -> ../hal.rules -rw-r--r-- 1 root root 82 2006-03-05 23:14 90-hal.rules lrwxrwxrwx 1 root root 19 2005-06-16 18:21 cd-aliases.rules -> ../cd-aliases.rules lrwxrwxrwx 1 root root 13 2005-06-16 18:21 udev.rules -> ../udev.rules lrwxrwxrwx 1 root root 25 2006-03-28 01:48 z20_persistent-input.rules -> ../persistent-input.rules lrwxrwxrwx 1 root root 19 2005-08-15 00:08 z20_persistent.rules -> ../persistent.rules -rw-r--r-- 1 root root 401 2006-04-20 03:23 z25_persistent-net.rules lrwxrwxrwx 1 root root 33 2006-04-20 02:17 z45_persistent-net-generator.rules -> ../persistent-net-generator.rules lrwxrwxrwx 1 root root 12 2005-07-03 22:34 z50_run.rules -> ../run.rules lrwxrwxrwx 1 root root 16 2005-11-05 10:44 z55_hotplug.rules -> ../hotplug.rules lrwxrwxrwx 1 root root 19 2005-08-02 23:28 z60_alsa-utils.rules -> ../alsa-utils.rules lrwxrwxrwx 1 root root 15 2005-09-20 02:13 z60_hdparm.rules -> ../hdparm.rules lrwxrwxrwx 1 root root 17 2005-11-05 11:23 z60_net.rules -> ../usbmount.rules lrwxrwxrwx 1 root root 17 2005-07-09 22:27 z60_usbmount.rules -> ../usbmount.rules lrwxrwxrwx 1 root root 17 2005-07-03 22:34 z70_hotplugd.rules -> ../hotplugd.rules -- /sys/: /sys/block/hda/dev /sys/block/md0/dev /sys/block/md1/dev /sys/block/md2/dev /sys/block/ram0/dev /sys/block/ram10/dev /sys/block/ram11/dev /sys/block/ram12/dev /sys/block/ram13/dev /sys/block/ram14/dev /sys/block/ram15/dev /sys/block/ram1/dev /sys/block/ram2/dev /sys/block/ram3/dev /sys/block/ram4/dev /sys/block/ram5/dev /sys/block/ram6/dev /sys/block/ram7/dev /sys/block/ram8/dev /sys/block/ram9/dev /sys/block/sda/dev /sys/block/sda/sda1/dev /sys/block/sda/sda2/dev /sys/block/sda/sda3/dev /sys/block/sda/sda4/dev /sys/block/sda/sda5/dev /sys/block/sda/sda6/dev /sys/block/sdb/dev /sys/block/sdb/sdb1/dev /sys/block/sdb/sdb2/dev /sys/block/sdb/sdb3/dev /sys/block/sdb/sdb4/dev /sys/block/sdb/sdb5/dev /sys/block/sdb/sdb6/dev /sys/class/dvb/dvb0.demux0/dev /sys/class/dvb/dvb0.dvr0/dev /sys/class/dvb/dvb0.frontend0/dev /sys/class/dvb/dvb0.net0/dev /sys/class/graphics/fb0/dev /sys/class/i2c-dev/i2c-0/dev /sys/class/i2c-dev/i2c-1/dev /sys/class/i2c-dev/i2c-2/dev /sys/class/i2c-dev/i2c-3/dev /sys/class/i2c-dev/i2c-4/dev /sys/class/i2c-dev/i2c-5/dev /sys/class/input/input0/event0/dev /sys/class/input/input2/event2/dev /sys/class/input/input3/event3/dev /sys/class/input/input4/event1/dev /sys/class/input/input4/mouse0/dev /sys/class/input/input5/event4/dev /sys/class/input/mice/dev /sys/class/misc/device-mapper/dev /sys/class/misc/fuse/dev /sys/class/misc/hpet/dev /sys/class/misc/rtc/dev /sys/class/misc/tun/dev /sys/class/printer/lp0/dev /sys/class/sound/admmidi/dev /sys/class/sound/adsp1/dev /sys/class/sound/adsp/dev /sys/class/sound/amidi/dev /sys/class/sound/audio1/dev /sys/class/sound/audio/dev /sys/class/sound/controlC0/dev /sys/class/sound/controlC1/dev /sys/class/sound/dmmidi/dev /sys/class/sound/dsp1/dev /sys/class/sound/dsp/dev /sys/class/sound/hwC0D0/dev /sys/class/sound/hwC0D2/dev /sys/class/sound/midiC0D0/dev /sys/class/sound/midiC0D1/dev /sys/class/sound/midiC0D2/dev /sys/class/sound/midi/dev /sys/class/sound/mixer1/dev /sys/class/sound/mixer/dev /sys/class/sound/pcmC0D0c/dev /sys/class/sound/pcmC0D0p/dev /sys/class/sound/pcmC0D1c/dev /sys/class/sound/pcmC0D2c/dev /sys/class/sound/pcmC0D2p/dev /sys/class/sound/pcmC0D3p/dev /sys/class/sound/pcmC1D0c/dev /sys/class/sound/pcmC1D0p/dev /sys/class/sound/pcmC1D1c/dev /sys/class/sound/pcmC1D2c/dev /sys/class/sound/pcmC1D3c/dev /sys/class/sound/pcmC1D4p/dev /sys/class/sound/seq/dev /sys/class/sound/sequencer2/dev /sys/class/sound/sequencer/dev /sys/class/sound/timer/dev /sys/class/usb_device/usbdev1.1/dev /sys/class/usb_device/usbdev1.4/dev /sys/class/usb_device/usbdev2.1/dev /sys/class/usb_device/usbdev3.1/dev /sys/class/usb_device/usbdev4.1/dev /sys/class/usb_device/usbdev5.1/dev /sys/class/usb_device/usbdev5.5/dev /sys/class/video4linux/radio0/dev /sys/class/video4linux/vbi0/dev /sys/class/video4linux/video0/dev -- Kernel configuration: isapnp_init not present. -- System Information: Debian Release: testing/unstable APT prefers experimental APT policy: (700, 'experimental'), (700, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16-ck4-lev-1 Locale: LANG=cs_CZ, LC_CTYPE=cs_CZ (charmap=ISO-8859-2) Versions of packages udev depends on: ii initscripts 2.86.ds1-14 Scripts for initializing and shutt ii libc6 2.3.6-7 GNU C Library: Shared libraries ii libselinux1 1.30-1 SELinux shared libraries ii libvolume-id0 0.090-4 libvolume_id shared library ii lsb-base 3.1-4 Linux Standard Base 3.1 init scrip ii makedev 3.3.8.2-0 Creates device files in /dev ii sed 4.1.4-7 The GNU sed stream editor udev recommends no packages. -- debconf information: udev/devfs-warning: udev/reboot-warning:
--- path_id.orig 2006-04-23 18:25:45.000000000 +0200 +++ path_id 2006-04-25 22:53:38.000000000 +0200 @@ -96,6 +96,56 @@ RESULT=0 } +handle_platform () { + local DEV=$1 + cd -P $1 + DEV=${PWD} + platform_id=${DEV##*/} + host_dev_path=$DEV + while [ ! -z "$host_dev_path" ] ; do + case "$host_dev_path" in + */platform*) + host_dev_path=${host_dev_path%/*} + ;; + *) + break + ;; + esac + done + if [ "$d" ]; then + d="platform-$platform_id-$d" + else + d="platform-$platform_id" + fi + D="$host_dev_path" + RESULT=0 +} + +handle_serio () { + local DEV=$1 + cd -P $1 + DEV=${PWD} + serio_id=${DEV##*/serio} + host_dev_path=$DEV + while [ ! -z "$host_dev_path" ] ; do + case "$host_dev_path" in + */serio*) + host_dev_path=${host_dev_path%/*} + ;; + *) + break + ;; + esac + done + if [ "$d" ]; then + d="serio-$serio_id-$d" + else + d="serio-$serio_id" + fi + D="$host_dev_path" + RESULT=0 +} + handle_ide () { : handle_ide $* local DEV=$1 @@ -372,6 +422,12 @@ */pci[0-9]*:[0-9]*) handle_pci "$D" ;; + */serio[0-9]*) + handle_serio "$D" + ;; + */platform/*) + handle_platform "$D" + ;; */devices) D= ;;
--- path_id.orig 2006-04-25 22:53:38.000000000 +0200 +++ path_id 2006-04-25 23:38:17.000000000 +0200 @@ -460,6 +460,30 @@ d="$d-${rewind}st${mode}" fi fi + if [ "$TYPE" == "input" ] ; then + cd -P "${full_sysfs_device_path}/driver" + full_sysfs_driver_path=`pwd -P` + devname=${full_sysfs_driver_path##*drivers/} + case "$devname" in + bttv|saa7134|cx88xx) + c="ir" + ;; + atkbd) + c="kbd" + ;; + psmouse) + c="mouse" + ;; + usbhid) + ;; + pcspkr) + c="spkr" + ;; + *) + c="other" + ;; + esac + fi } case "$TYPE" in @@ -474,6 +498,9 @@ input) handle_device echo "ID_PATH=$d" + if [ "$c" ]; then + echo "ID_CLASS=$c" + fi ;; *) RESULT=1