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

Reply via email to