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

Re: udev and Logitech mouse applet



On October 16, 2005 18:12, Frank Hart wrote:
> I use the following udev rule to let the Logitech applet change the dpi
> from 400 to 800:
>
> BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c025",
> PROGRAM="/usr/bin/lmctl -8 --sms"
>
> This worked with udev 0.068. After I installed 0.070 I have to do a
> 'udevstart' after booting and then the rule is applied. Has this
> something to do with hotplugs removal?

The problem seems to be that udev runs lmctl before the usbfs entry 
corresponding to your mouse has been created under /proc/bus/usb. The 
removal of hotplug probably changed the timings of the whole process of 
module loading/device node or usbfs entry creation etc., resulting in this 
problem. I just dealt with this issue when packaging kdebase 3.4.3 for 
experimental, as kcontrol has a module that can set parameters for Logitech 
mice.

I worked around the issue by borrowing an idea from libsane, namely adding a 
loop that checks for the existence of the /proc/bus/usb entry before making 
the necessary changes. Have a look at /etc/udev/logitechmouse.rules 
and /etc/hotplug/usb/logitechmouse in the kcontrol package from 
experimental if you'd like.

This problem also breaks coldplugging for cameras operated through 
libgphoto, possibly scanners and libsane (#334068), and likely other 
packages that manipulate usbfs entries as well. If I understand correctly, 
2.6.14 will introduce real device nodes under /dev/bus/usb that will serve 
as a replacement for usbfs, once udev and libusb are patched accordingly. 
Since udev is smart, I'm told, about waiting for the existence of device 
nodes before attempting to apply the changes requested by its rules, this 
whole problem should disappear at that point, though it will require that 
packages alter their udev rules yet again, and assume that udev is being 
run in conjunction with a 2.6.14+ kernel.

Cheers,
Christopher Martin

Attachment: pgpDgpKj6GL3o.pgp
Description: PGP signature


Reply to: