linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: Re: udev craze: need /dev/bus/usb rationale
Date: Thu, 26 Jan 2006 01:39:45 +0000	[thread overview]
Message-ID: <20060126013945.GA1652@vrfy.org> (raw)
In-Reply-To: <Pine.GSO.4.60.0601252125160.15472@igloo.df.lth.se>

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_id\x12695893
> 
> 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&kid\x103432&bid#0486&dat\x121642
_______________________________________________
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

  reply	other threads:[~2006-01-26  1:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-25 20:37 udev craze: need /dev/bus/usb rationale Linus Walleij
2006-01-26  1:39 ` Kay Sievers [this message]
2006-01-26  8:12 ` Harald Hoyer
2006-01-26 12:14 ` Kay Sievers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060126013945.GA1652@vrfy.org \
    --to=kay.sievers@vrfy.org \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).