From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Thu, 26 Jan 2006 01:39:45 +0000 Subject: Re: udev craze: need /dev/bus/usb rationale Message-Id: <20060126013945.GA1652@vrfy.org> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org On Wed, Jan 25, 2006 at 09:37:09PM +0100, Linus Walleij wrote: > Having fun making packages for Fedora we have run into a coordination > issue between udev and libusb. > > As you know libusb programs (like SANE custom USB backends or my own pet > libnjb) use raw device nodes with no kernel drivers attached to them. A > suitable udev rule found in this mail: > > http://sourceforge.net/mailarchive/message.php?msg_id695893 > > looks like this: > > SUBSYSTEM="usb_device", PROGRAM="/bin/sh -c 'X=%k X=$${X#usbdev} > B=$${X%%%%.*} > D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK="%c" > > has been applied to most distributions set of default rules. (Well Debian > and Fedora atleast, I guess SuSE too.) I use: SUBSYSTEM="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; \ printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MOD E="0644" > This rule creates a dynamic device hierarchy belowe /dev/bus/usb similar > to the good 'ol /proc/bus/usb and everyone is happy. Libusb was patched > to support this device hierarchy. But wait. We found an inconsistency: > that script will create hex-named nodes: > > /dev/bus/usb/01AB1/01BCF Huh, my shell does not do this weird hex stuff and the numbers seems pretty high for a USB bus :). It's may be caused by the "X"? The rule above does the leading zeros, like /proc was, which is nicer too. > However libusb has this code in linux.c row 336 or so: > > if (!strchr("0123456789", entry->d_name[strlen(entry->d_name) - 1])) > > Of course it could be fixed with a patch: > > if (!strchr("0123456789ABCDEF", entry->d_name[strlen(entry->d_name) - 1])) > > But we need a clear rationale: > > * How shall /dev/bus/usb subdirs and device files be named? > > * If they shall be all decimal figures, change all rules accordingly and > libusb will work fine as it is. > > * If they shall be hex, make the above suggested change to libusb. No, they should not change and be the same as they have been in /proc. Thanks, Kay ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642 _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel