number of /dev/usb nodes

Bernd Walter ticso at
Sun Jun 8 15:50:28 UTC 2008

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

B.Walter <bernd at>
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.

More information about the freebsd-hackers mailing list