You are not logged in.

#1 2006-02-19 00:23:31

phydeaux
Member
Registered: 2005-06-13
Posts: 68

New udev mixing up /dev/input/events

It would seem that the new udev is wreaking the same havoc on my input devices as it did on my nics.  With the parallel loading its potluck which device is on event0, event1, etc. I'm using the evdev driver in xorg for my mouse so xorg gets a little upset when its not on event2.  Other then checking which device is where and updating my xorg.conf each time I startx I'd like to set up some undev rules to cover this.  The only problem is I'm not quite sure how to get this done.  Can anyone give me any examples of how to go about this?

Here's some infomation that may or may not be usefull: (note: the mouse decieded to be event2 this time around)

[phydeaux@Phychan ~]$ cat /proc/bus/input/devices 
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input0
H: Handlers=kbd event0 
B: EV=120013
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7

I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/class/input/input1
H: Handlers=kbd event1 
B: EV=40001
B: SND=6

I: Bus=0003 Vendor=045e Product=0023 Version=0121
N: Name="Microsoft Microsoft Trackball Optical®"
P: Phys=usb-0000:00:07.2-1/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse0 event2 
B: EV=7
B: KEY=1f0000 0 0 0 0 0 0 0 0
B: REL=103
[phydeaux@Phychan ~]$ udevinfo -a -p /sys/class/input/event2 

udevinfo starts with the device the node belongs to and then walks up the
device chain, to print for every device found, all possibly useful attributes
in the udev key format.
Only attributes within one device section may be used together in one rule,
to match the device for which the node will be created.

  looking at device '/class/input/input2/event2':
    KERNEL=="event2"
    SUBSYSTEM=="input"
    SYSFS{dev}=="13:66"

  looking at device '/class/input/input2':
    ID=="input2"
    BUS=="input"
    DRIVER==""
    SYSFS{uniq}==""
    SYSFS{phys}=="usb-0000:00:07.2-1/input0"

  looking at device '/devices/pci0000:00/0000:00:07.2/usb1/1-1/1-1:1.0':
    ID=="1-1:1.0"
    BUS=="usb"
    DRIVER=="usbhid"
    SYSFS{modalias}=="usb:v045Ep0023d0121dc00dsc00dp00ic03isc01ip02"
    SYSFS{bInterfaceProtocol}=="02"
    SYSFS{bInterfaceSubClass}=="01"
    SYSFS{bInterfaceClass}=="03"
    SYSFS{bNumEndpoints}=="01"
    SYSFS{bAlternateSetting}==" 0"
    SYSFS{bInterfaceNumber}=="00"

  looking at device '/devices/pci0000:00/0000:00:07.2/usb1/1-1':
    ID=="1-1"
    BUS=="usb"
    DRIVER=="usb"
    SYSFS{configuration}==""
    SYSFS{manufacturer}=="Microsoft"
    SYSFS{maxchild}=="0"
    SYSFS{version}==" 1.10"
    SYSFS{devnum}=="2"
    SYSFS{speed}=="1.5"
    SYSFS{bMaxPacketSize0}=="8"
    SYSFS{bNumConfigurations}=="1"
    SYSFS{bDeviceProtocol}=="00"
    SYSFS{bDeviceSubClass}=="00"
    SYSFS{bDeviceClass}=="00"
    SYSFS{bcdDevice}=="0121"
    SYSFS{idProduct}=="0023"
    SYSFS{idVendor}=="045e"
    SYSFS{bMaxPower}=="100mA"
    SYSFS{bmAttributes}=="a0"
    SYSFS{bConfigurationValue}=="1"
    SYSFS{bNumInterfaces}==" 1"

  looking at device '/devices/pci0000:00/0000:00:07.2/usb1':
    ID=="usb1"
    BUS=="usb"
    DRIVER=="usb"
    SYSFS{configuration}==""
    SYSFS{serial}=="0000:00:07.2"
    SYSFS{product}=="UHCI Host Controller"
    SYSFS{manufacturer}=="Linux 2.6.15-ck4-ARCH uhci_hcd"
    SYSFS{maxchild}=="2"
    SYSFS{version}==" 1.10"
    SYSFS{devnum}=="1"
    SYSFS{speed}=="12"
    SYSFS{bMaxPacketSize0}=="64"
    SYSFS{bNumConfigurations}=="1"
    SYSFS{bDeviceProtocol}=="00"
    SYSFS{bDeviceSubClass}=="00"
    SYSFS{bDeviceClass}=="09"
    SYSFS{bcdDevice}=="0206"
    SYSFS{idProduct}=="0000"
    SYSFS{idVendor}=="0000"
    SYSFS{bMaxPower}=="  0mA"
    SYSFS{bmAttributes}=="e0"
    SYSFS{bConfigurationValue}=="1"
    SYSFS{bNumInterfaces}==" 1"

  looking at device '/devices/pci0000:00/0000:00:07.2':
    ID=="0000:00:07.2"
    BUS=="pci"
    DRIVER=="uhci_hcd"
    SYSFS{modalias}=="pci:v00001106d00003038sv00000925sd00001234bc0Csc03i00"
    SYSFS{local_cpus}=="f"
    SYSFS{irq}=="10"
    SYSFS{class}=="0x0c0300"
    SYSFS{subsystem_device}=="0x1234"
    SYSFS{subsystem_vendor}=="0x0925"
    SYSFS{device}=="0x3038"
    SYSFS{vendor}=="0x1106"

  looking at device '/devices/pci0000:00':
    ID=="pci0000:00"
    BUS==""
    DRIVER==""

Offline

#2 2006-02-19 02:46:59

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: New udev mixing up /dev/input/events

I thought mice were /dev/input/mice and/or /dev/input/mouseX

iphitus

Offline

#3 2006-02-19 03:29:11

iBertus
Member
From: Greenville, NC
Registered: 2004-11-04
Posts: 2,228

Re: New udev mixing up /dev/input/events

Yeah, I would also like some udev rules to cover event devices. I've never been able to distinguish between them  using sysfs.

Offline

#4 2006-02-20 03:25:39

phydeaux
Member
Registered: 2005-06-13
Posts: 68

Re: New udev mixing up /dev/input/events

iphitus wrote:

I thought mice were /dev/input/mice and/or /dev/input/mouseX

iphitus

They are if you use the xorg mouse driver.  I've been using the evdev driver on the mouse because the extra buttons and scroll wheel work flawlessly with out haveing to run xmodmap and play with the z axis mappings.

andy

Offline

#5 2006-02-21 02:33:35

phydeaux
Member
Registered: 2005-06-13
Posts: 68

Re: New udev mixing up /dev/input/events

A little bit of googling and alot of reading up on how to write udev rules and I've got it figured out.

KERNEL=="event*", SYSFS{manufacturer}=="Microsoft", SYSFS{idProduct}=="0023", NAME="input/mstrackball"

This line into a custom udev rules file gives it a consistant name and keeps thing working.  I hope the udev developers do something about this, its becoming quite annoying.

andy

Offline

Board footer

Powered by FluxBB