[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: udev question



Sam Halliday <fommil@yahoo.ie> writes:

> i would very much like to have a symlink set up by udev (/dev/input/mousemain or
> similar) which points to the /dev/input/mouseX unless it has been removed, in
> which case it should be pointed to /dev/input/mouse1.
>
> unfortunately the /dev/input/mouseX devices all remain when the usb mouse is
> unplugged and reconnected.

First you need to get SYSFS information and then plug it in. 
Let me use my mouse as an example.

My usb mouse shows up as /dev/input/mouse2

Doing a "udevinfo -n input/mouse2 -q path", gives me
/class/input/mouse2

Now, using the sys path, I can check for the sys variables, doing
"udevinfo -p /class/input/mouse2 -a"

Looking through the information, I see this:
  looking at the device chain at '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1':
    BUS="usb"
    ID="1-1"
    SYSFS{bConfigurationValue}="1"
    SYSFS{bDeviceClass}="00"
    SYSFS{bDeviceProtocol}="00"
    SYSFS{bDeviceSubClass}="00"
    SYSFS{bMaxPower}=" 98mA"
    SYSFS{bNumConfigurations}="1"
    SYSFS{bNumInterfaces}=" 1"
    SYSFS{bcdDevice}="1320"
    SYSFS{bmAttributes}="a0"
    SYSFS{detach_state}="0"
    SYSFS{devnum}="3"
    SYSFS{idProduct}="c012"
    SYSFS{idVendor}="046d"
    SYSFS{manufacturer}="Logitech"
    SYSFS{maxchild}="0"
    SYSFS{product}="USB-PS/2 Optical Mouse"
    SYSFS{speed}="1.5"
    SYSFS{version}=" 2.00"

Now, pick up to SYSFS variables that would make the udev rule uniq, for
instance idProduct and product.

So, construct the udev rule:
BUS="usb", SYSFS{idProduct}="c012", SYSFS{product}="USB-PS/2 Optical Mouse", NAME="input/%k", SYMLINK="usbmouse"

Basically, this means, for USB device with idProduct "this" and product
"that", create a node called input/%k (where %k is the kernel name for
the device), and a symlink called usbmouse (everything is relative to /dev).

Save this in a file like 05-mouse.rules, and store it in
/etc/udev/rules.d

Now, no matter what the kernel tells udev the mouse is named, udev will
create a symlink pointing to it.

-- 
John L. Fjellstad
web: http://www.fjellstad.org/          Quis custodiet ipsos custodes



Reply to: