beautypg.com

APC UPS control system User Manual

Page 210

background image

THE /proc/bus/usb/drivers FILE:
-------------------------------
Each of the USB device drivers linked into your kernel (statically,
or dynamically using "modprobe") is listed in the "drivers" file.
Here’s an example from one system:

usbdevfs
hub

0- 15: usblp

usbnet
serial
usb-storage
pegasus

If you see this file, "usbdevfs" and "hub" will always be listed,
since those are part of the "usbcore" framework.

Drivers that use the USB major number (180) to provide character devices
will include a range of minor numbers, as shown above for the "usblp"
(actually "printer.o") module.

USB device drivers can of course use any

major number, but it’s easy to use the USB range since there’s explicit
support for subdividing it in the USB device driver framework.

THE /proc/bus/usb/devices FILE:
-------------------------------
In /proc/bus/usb/devices, each device’s output has multiple
lines of ASCII output.
I made it ASCII instead of binary on purpose, so that someone
can obtain some useful data from it without the use of an
auxiliary program.

However, with an auxiliary program, the numbers

in the first 4 columns of each "T:" line (topology info:
Lev, Prnt, Port, Cnt) can be used to build a USB topology diagram.

Each line is tagged with a one-character ID for that line:

T = Topology (etc.)
B = Bandwidth (applies only to USB host controllers, which are

virtualized as root hubs)

D = Device descriptor info.
P = Product ID info. (from Device descriptor, but they won’t fit

together on one line)

S = String descriptors.
C = Configuration descriptor info. (* = active configuration)
I = Interface descriptor info.
E = Endpoint descriptor info.

=======================================================================

/proc/bus/usb/devices output format:

Legend:

209