number of /dev/usb nodes

Chuck Robey chuckr at
Sun Jun 8 17:02:08 UTC 2008

Hash: SHA1

Bernd Walter wrote:
> On Sun, Jun 08, 2008 at 10:16:26AM -0400, Chuck Robey wrote:
>> Hash: SHA1
>> Bernd Walter wrote:
>>> On Sat, Jun 07, 2008 at 01:18:41PM -0400, Chuck Robey wrote:
>>>> Hash: SHA1
>>>> I can't seem to find how many /dev/usbN bus devices there can be.  I'm writing
>>>> some code that scans them all looking for anything that has my device, but I
>>>> while I know to start at usb0, just how high do I go?  There seem to be 128
>>>> device minors, is that the number?  (from dev/usb/usb.h)
>>> There shouldn't be a limit anymore.
>>> I can't see any definition of 128 in usb.h that limits the number of
>>> busses.
>>> The major/minor differenciation is long time ago.
>>> You must be looking at old code.
>> I was trying to find a good way to do scanning, whjen I create the files like
>> /dev/usb0, how far to go in my loop?  Does the lowest available device always
>> get created?  That would imply that as soon as I began to get "No such device"
>> errors, I could stop iterating.  If the rules for picking device filenames are
>> pretty loose, then I could (for instance) stop scanning, say, 4 numbers past the
>> first "No such device" returnee.
> This wouldn't work if a USB controller is remove - e.g. a pulling a
> cardbus card.
>> Any idea on this?  I didn't see this i nthe code, but I just need some sane
>> limit on what filenames to scan about in.  I look for item info, and if the usb
>> vendor and prodict look friendly, I just snag the filename involved, and use
>> that.  Like, a scan of the usb1 bus might yield me a uhid0 which might be my
>> meat, whereupon I coulld drop the usb1 open, and replace it with a uhid0 open.
>> There's more than 1 place that my devices could show, depending on the user's
>> kernel devices.  I just want to have some sane limit on how many usb buses I
>> open for my scanning.
> I never had to deal with this, since writing a USB driver is simple and
> as a driver you get informed for each new device.
> No need to scan the busses yourself.
> But I would say that the most reliable way is to just scan /dev/ for
> usb...

Assumptions .... I never said I was writing a FreeBSD driver... I am writing
what Xorg calls an input driver (Xinput).  I could rely on the config file, I
thought I would try to use a scan in case I can't find the dev the user passes
me.  I see no reason to write a FreeBSD driver when I can do everything I need
within the uhid driver (at least so far, in my test prog).

There IS one caveat:  I've posted to the FreeBSD-USB list that there is a part
of the libusbhid that I can't yet get working.  Writing a FreeBSD driver would
allow me to use other available data marshalling code, like what's in the ums
driver.  If I can't interest anyone to comment about the libusbhid, I might be
forced down that path, but I don't want to.
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla -


More information about the freebsd-hackers mailing list