Package: udev Version: 0.091-1 Severity: important I have a Logitech Elite keyboard, which has both keyboard and mouse components. Unfortunately, evdev's by-id matching automatically tries to represent both by the same evdev node:
Keyboard: > agaeris:/home/atrus# udevtest /class/input/input1/event1 > main: looking at device '/class/input/input1/event1' from subsystem 'input' > udev_rules_get_name: rule applied, 'event1' becomes 'input/event1' > run_program: 'usb_id -x' > run_program: '/lib/udev/usb_id' (stdout) 'ID_VENDOR=Logitech' > run_program: '/lib/udev/usb_id' (stdout) 'ID_MODEL=Logitech_USB_Keyboard' > run_program: '/lib/udev/usb_id' (stdout) 'ID_REVISION=1500' > run_program: '/lib/udev/usb_id' (stdout) > 'ID_SERIAL=Logitech_Logitech_USB_Keyboard' > run_program: '/lib/udev/usb_id' (stdout) 'ID_TYPE=hid' > run_program: '/lib/udev/usb_id' (stdout) 'ID_BUS=usb' > run_program: '/lib/udev/usb_id' returned with status 0 > udev_rules_get_name: add symlink > 'input/by-id/usb-Logitech_Logitech_USB_Keyboard-event-mouse' > run_program: 'path_id /class/input/input1/event1' > run_program: '/lib/udev/path_id' (stdout) > 'ID_PATH=pci-0000:00:07.2-usb-0:1:1.0' > run_program: '/lib/udev/path_id' returned with status 0 > udev_rules_get_name: add symlink > 'input/by-path/pci-0000:00:07.2-usb-0:1:1.0-event-mouse' > udev_device_event: device '/class/input/input1/event1' already known, remove > possible symlinks > udev_node_add: creating device node '/dev/input/event1', major = '13', minor > = '65', mode = '0660', uid = '0', gid = '0' > udev_node_add: creating symlink > '/dev/input/by-id/usb-Logitech_Logitech_USB_Keyboard-event-mouse' to > '../event1' > udev_node_add: creating symlink > '/dev/input/by-path/pci-0000:00:07.2-usb-0:1:1.0-event-mouse' to '../event1' > main: run: 'socket:/org/freedesktop/hal/udev_event' > main: run: 'socket:/org/kernel/udev/monitor' > main: run: 'udev_run_hotplugd input' > main: run: 'udev_run_devd input' Mouse: > main: looking at device '/class/input/input2/event2' from subsystem 'input' > udev_rules_get_name: rule applied, 'event2' becomes 'input/event2' > run_program: 'usb_id -x' > run_program: '/lib/udev/usb_id' (stdout) 'ID_VENDOR=Logitech' > run_program: '/lib/udev/usb_id' (stdout) 'ID_MODEL=Logitech_USB_Keyboard' > run_program: '/lib/udev/usb_id' (stdout) 'ID_REVISION=1500' > run_program: '/lib/udev/usb_id' (stdout) > 'ID_SERIAL=Logitech_Logitech_USB_Keyboard' > run_program: '/lib/udev/usb_id' (stdout) 'ID_TYPE=hid' > run_program: '/lib/udev/usb_id' (stdout) 'ID_BUS=usb' > run_program: '/lib/udev/usb_id' returned with status 0 > udev_rules_get_name: add symlink > 'input/by-id/usb-Logitech_Logitech_USB_Keyboard-event-mouse' > run_program: 'path_id /class/input/input2/event2' > run_program: '/lib/udev/path_id' (stdout) > 'ID_PATH=pci-0000:00:07.2-usb-0:1:1.1' > run_program: '/lib/udev/path_id' returned with status 0 > udev_rules_get_name: add symlink > 'input/by-path/pci-0000:00:07.2-usb-0:1:1.1-event-mouse' > udev_device_event: device '/class/input/input2/event2' already known, remove > possible symlinks > udev_node_add: creating device node '/dev/input/event2', major = '13', minor > = '66', mode = '0660', uid = '0', gid = '0' > udev_node_add: creating symlink > '/dev/input/by-id/usb-Logitech_Logitech_USB_Keyboard-event-mouse' to > '../event2' > udev_node_add: creating symlink > '/dev/input/by-path/pci-0000:00:07.2-usb-0:1:1.1-event-mouse' to '../event2' > main: run: 'socket:/org/freedesktop/hal/udev_event' > main: run: 'socket:/org/kernel/udev/monitor' > main: run: 'udev_run_hotplugd input' > main: run: 'udev_run_devd input' I've saved the udevinfo output for these devices at http://achenar.rifetech.com/~atrus/logielite.txt FWIW, I've been unable to come up with *any* udev rule that successfully differentiates between the two of them, because of udev's apparant inability to match on more than one sysinfo section. (short of a script that checks all levels). If anyone can suggest a way do to so, I'd also greatly appreciate that, especially if the solution is related to the solution of this bug. -- Package-specific info: -- /etc/udev/rules.d/: /etc/udev/rules.d/: total 16 -rw-r--r-- 1 root root 680 2006-04-28 12:13 00_hpcam.rules -rw-r--r-- 1 root root 191 2006-04-24 23:26 00_mine.rules lrwxrwxrwx 1 root root 20 2005-06-15 18:35 020_permissions.rules -> ../permissions.rules lrwxrwxrwx 1 root root 19 2005-10-12 00:50 025_libgphoto2.rules -> ../libgphoto2.rules lrwxrwxrwx 1 root root 16 2006-04-22 22:47 025_libsane.rules -> ../libsane.rules lrwxrwxrwx 1 root root 20 2005-11-12 10:19 025_libticables.rules -> ../libticables.rules lrwxrwxrwx 1 root root 15 2006-03-18 11:00 025_lomoco.rules -> ../lomoco.rules lrwxrwxrwx 1 root root 16 2006-03-27 17:01 030_ifplugd.rules -> ../ifplugd.rules lrwxrwxrwx 1 root root 12 2006-03-08 17:24 050_hal-plugdev.rules -> ../hal.rules -rw-r--r-- 1 root root 82 2006-03-05 15:14 90-hal.rules lrwxrwxrwx 1 root root 19 2005-06-15 18:35 cd-aliases.rules -> ../cd-aliases.rules lrwxrwxrwx 1 root root 14 2005-06-15 18:35 udev.rules -> ../devfs.rules lrwxrwxrwx 1 root root 25 2006-03-27 17:00 z20_persistent-input.rules -> ../persistent-input.rules lrwxrwxrwx 1 root root 19 2005-08-18 11:04 z20_persistent.rules -> ../persistent.rules -rw-r--r-- 1 root root 334 2006-04-24 23:08 z25_persistent-net.rules lrwxrwxrwx 1 root root 33 2006-04-19 19:20 z45_persistent-net-generator.rules -> ../persistent-net-generator.rules lrwxrwxrwx 1 root root 12 2005-07-02 21:38 z50_run.rules -> ../run.rules lrwxrwxrwx 1 root root 16 2005-10-09 12:11 z55_hotplug.rules -> ../hotplug.rules lrwxrwxrwx 1 root root 19 2005-08-04 11:32 z60_alsa-utils.rules -> ../alsa-utils.rules lrwxrwxrwx 1 root root 15 2005-09-23 13:03 z60_hdparm.rules -> ../hdparm.rules lrwxrwxrwx 1 root root 17 2005-07-02 21:38 z70_hotplugd.rules -> ../hotplugd.rules -- /sys/: /sys/block/fd0/dev /sys/block/hda/dev /sys/block/hda/hda1/dev /sys/block/hda/hda2/dev /sys/block/hda/hda3/dev /sys/block/hda/hda4/dev /sys/block/hda/hda5/dev /sys/block/hda/hda6/dev /sys/block/hda/hda7/dev /sys/block/hda/hda8/dev /sys/block/hdc/dev /sys/block/hdd/dev /sys/class/drm/card0/dev /sys/class/graphics/fb0/dev /sys/class/input/input0/event0/dev /sys/class/input/input1/event1/dev /sys/class/input/input2/event2/dev /sys/class/input/input2/mouse0/dev /sys/class/input/input3/event3/dev /sys/class/input/input3/mouse1/dev /sys/class/input/input4/event4/dev /sys/class/input/input4/mouse2/dev /sys/class/input/mice/dev /sys/class/misc/agpgart/dev /sys/class/misc/device-mapper/dev /sys/class/misc/fuse/dev /sys/class/misc/hpet/dev /sys/class/misc/psaux/dev /sys/class/misc/rtc/dev /sys/class/sound/admmidi/dev /sys/class/sound/adsp/dev /sys/class/sound/amidi/dev /sys/class/sound/audio/dev /sys/class/sound/controlC0/dev /sys/class/sound/dmmidi/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/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/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.2/dev /sys/class/usb_device/usbdev1.3/dev /sys/class/usb_device/usbdev2.1/dev /sys/class/usb_device/usbdev3.1/dev /sys/class/usb_device/usbdev3.2/dev /sys/class/usb_device/usbdev3.3/dev /sys/class/usb_device/usbdev4.1/dev /sys/class/usb_device/usbdev5.1/dev /sys/class/usb/lp0/dev /sys/class/video4linux/vbi0/dev /sys/class/video4linux/video0/dev -- Kernel configuration: -- System Information: Debian Release: testing/unstable APT prefers experimental APT policy: (1000, 'experimental'), (500, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Versions of packages udev depends on: ii initscripts 2.86.ds1-14 Scripts for initializing and shutt hi libc6 2.3.6-7 GNU C Library: Shared libraries ii libselinux1 1.30-1 SELinux shared libraries ii libvolume-id0 0.091-1 libvolume_id shared library ii lsb-base 3.1-5 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 excluded -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

