- | |-- bInterfaceClass
- | |-- bInterfaceNumber
- | |-- bInterfaceProtocol
- | |-- bInterfaceSubClass
- | |-- bNumEndpoints
- | |-- detach_state
- | |-- iInterface
- | `-- power
- | `-- state
- |-- bConfigurationValue
- |-- bDeviceClass
- |-- bDeviceProtocol
- |-- bDeviceSubClass
- |-- bMaxPower
- |-- bNumConfigurations
- |-- bNumInterfaces
- |-- bcdDevice
- |-- bmAttributes
- |-- detach_state
- |-- devnum
- |-- idProduct
- |-- idVendor
- |-- maxchild
- |-- power
- | `-- state
- |-- speed
- `-- version
结构 usb_device 在树中被表示在:
/sys/devices/pci0000:00/0000:00:09.0/usb2/2-1
而鼠标的 USB 接口 - USB 鼠标设备驱动被绑定到的接口 - 位于目录:
/sys/devices/pci0000:00/0000:00:09.0/usb2/2-1/2-1:1.0 为帮助理解这个长设备路径的含义, 我们描述内核如何标识 USB 设备.
第一个 USB 设备是一个根集线器. 这是 USB 控制器, 常常包含在一个 PCI 设备中. 控 制器的命名是由于它控制整个连接到它上面的 USB 总线. 控制器是一个 PCI 总线和 USB 总线之间的桥, 同时是总线上的第一个设备.
所有的根集线器被 USB 核心安排了一个唯一的号. 在我们的例子里, 根集线器称为 usb2, 因为它是注册到 USB 核心的第 2 个根集线器. 可包含在单个系统中在任何时间的根集线 器的数目没有限制.
每个在 USB 总线上的设备采用根集线器的号作为它的名子的第一个数字. 紧跟着的是 - 字符和设备插入的端口号. 由于我们例子中的设备插在第一个端口, 一个 1 被添加到名 子. 因此给主 USB 鼠标设备的名子是 2-1. 因为这个 USB 设备包含一个接口, 那使得树 中的另一个设备被添加到 sysfs 路径. 到此点, USB 接口的命名方法是设备名: 在我们的
来源: http://www.bubuko.com/infodetail-3116658.html