On 7/26/07, Dan Nicholson <[EMAIL PROTECTED]> wrote: > On 7/26/07, Matthew Burgess <[EMAIL PROTECTED]> wrote: > > > > On Thu, 26 Jul 2007 09:17:52 -0700, "Dan Nicholson" <[EMAIL PROTECTED]> > > wrote: > > > On 7/26/07, Dan Nicholson <[EMAIL PROTECTED]> wrote: > > >> The 2.6.22 kernel (maybe 2.6.21 too, didn't check) has an option > > >> CONFIG_USB_DEVICE_CLASS that's marked as deprecated. The help text > > >> states that it is unnecessary if the following udev rule is used: > > >> > > >> SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", \ > > >> NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}" > > >> > > >> I checked the SuSE rules in udev-111, and this is in addition to the > > >> existing usb_device rule: > > >> > > >> SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'X=%k; X=$${X#usbdev}; > > >> B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", NAME="%c" > > >> > > >> Does anyone have a problem if I add that to our rules? > > > > > > Actually, it seems that they're the same rule, but the kernel no > > > longer supplies the usb_device subsystem is removed in 2.6.22. Here's > > > a relevant bug: > > > > > > https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=248916#c10 > > > > > > So, the new rule can replace the old one depending on whether > > > CONFIG_USB_DEVICE_CLASS is set. I think both rules should be there so > > > that our rules stay compatible whether this setting is Y or N. Also, > > > leaving the older rule there means you get /dev/bus/usb nodes if you > > > run an older kernel. > > > > I'm not sure we need both rules. If CONFIG_USB_DEVICE_CLASS=n, the new > > rule will take effect. If CONFIG_USB_DEVICE_CLASS=y, whichever of the > > NAME= rules is hit first will take effect, if my understanding of Udev rule > > evaluation is correct. Therefore, if the new rule is placed above the > > existing one, the existing one then becomes entirely redundant. > > This is where I'm a little unsure. I believe if > CONFIG_USB_DEVICE_CLASS=y, then there won't be anything that matches > SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device". In that case, the new > rule would be useless. But I'm not sure about that since I'm not > actually running 2.6.22 (in the process of rebasing my .config).
I built a kernel with and without CONFIG_USB_DEVICE_CLASS=y, and the rule works in both situations. It works fine with both. The only difference if you have it set to y is that you get /dev/usbdev?.? nodes (in addition to the endpoint _ep?? ones) and /sys/class/usb_device paths. Now to fix up the equivalent rule on the libusb page in BLFS. -- Dan -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page