0


linux 下查看 USB 设备

文章目录

前言

在 sysfs 文件系统下,查看 USB 设备,看到一些乱七八糟的设备显示,它们都是什么呢?今天来介绍一下。

root@ATK-IMX6U:~# ls /sys/bus/usb/devices/1-0:1.0  1-1  1-1.1  1-1:1.0  1-1.1:1.0  1-1.1:1.1  1-1.3  1-1.3:1.0  1-1.3:1.1  usb1

目录内容详解

usb1

usb1 表示该 SOC 上接了 1 条 USB 总线,即 1 个 USB Controller。
PS:如果有多个 USB Controller,将会是 usb1、usb2、usb3。。。

1-0:1.0

而 1-0:1.0 表示什么呢?

  • 1:表示 1 号总线,或者说 1 号 Root Hub
  • 0:表示端口号
  • 1:表示配置号
  • 0:表示接口号

命名规则:Root Hub-port:configuration.interface

1-1.1:1.0

  • 1:表示 1 号总线,或者说 1 号 Root Hub
  • 1:表示 Hub 连在 Root Hub 上的端口号
  • 1:表示设备连在 Hub 上的端口号
  • 1:表示配置号
  • 0:表示接口号

结构图

在这里插入图片描述

root@ATK-IMX6U:~# ls /sys/bus/usb/devices/
1-0:1.0  // root-hub:1,port:0,config:1,interface:0

1-1     // root-hub:1,hub:1
1-1:1.0  // root-hub:1,hub:1,port:1,config:1,interface:0

1-1.1    // root-hub:1,hub:1,port:1
1-1.1:1.0 // root-hub:1,hub:1,port:1,config:1,interface:0
1-1.1:1.1 // root-hub:1,hub:1,port:1,config:1,interface:1

1-1.3    // root-hub:1,hub:1,port:3
1-1.3:1.0 // root-hub:1,hub:1,port:3,config:1,interface:0
1-1.3:1.1 // root-hub:1,hub:1,port:3,config:1,interface:1

usb1

设备信息

在每个 USB 设备目录下都有一些参数来展示该设备的属性信息

root@ATK-IMX6U:~# ls /sys/bus/usb/devices/1-1/1-1.1       avoid_reset_quirk    bDeviceProtocol  bMaxPower           configuration  devpath    idVendor     power      remove     urbnum
1-1:1.0     bcdDevice            bDeviceSubClass  bNumConfigurations  descriptors    driver     ltm_capable  product    speed      version
1-1.3       bConfigurationValue  bmAttributes     bNumInterfaces      dev            ep_00      maxchild     quirks     subsystem
authorized  bDeviceClass         bMaxPacketSize0  busnum              devnum         idProduct  port         removable  uevent

bDeviceClass

表示设备种类

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/bDeviceClass
09

09 表示该设备是一个 Hub,详细类型参考如下

/*
 * Device and/or Interface Class codes
 * as found in bDeviceClass or bInterfaceClass
 * and defined by www.usb.org documents
 */#defineUSB_CLASS_PER_INTERFACE0/* for DeviceClass */#defineUSB_CLASS_AUDIO1#defineUSB_CLASS_COMM2#defineUSB_CLASS_HID3#defineUSB_CLASS_PHYSICAL5#defineUSB_CLASS_STILL_IMAGE6#defineUSB_CLASS_PRINTER7#defineUSB_CLASS_MASS_STORAGE8#defineUSB_CLASS_HUB9#defineUSB_CLASS_CDC_DATA0x0a#defineUSB_CLASS_CSCID0x0b/* chip+ smart card */#defineUSB_CLASS_CONTENT_SEC0x0d/* content security */#defineUSB_CLASS_VIDEO0x0e#defineUSB_CLASS_WIRELESS_CONTROLLER0xe0#defineUSB_CLASS_MISC0xef#defineUSB_CLASS_APP_SPEC0xfe#defineUSB_CLASS_VENDOR_SPEC0xff

一个 USB Device 的类型为 0

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/bDeviceClass // 鼠标
00

version

USB 协议版本

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/version // USB2.0 的 Hub2.00
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/version // USB2.0 的设备(鼠标)2.00

busnum & devnum

总线号 & 设备号

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/busnum1
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/busnum1

Hub 及其下挂的鼠标设备,总线号都是 1

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/devnum2
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/devnum3

Hub 的设备号为 2,鼠标的设备号为 3

dev

主设备号:次设备号

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/dev189:1
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/dev189:2

和 /dev/bus/usb/ 下设备一致

root@ATK-IMX6U:~# ls /dev/bus/usb/001/ -lh
total 0
crw-rw-r-- 1 root root 189, 0 Jun  510:08 001
crw-rw-r-- 1 root root 189, 1 Jun  510:08 002
crw-rw-r-- 1 root root 189, 2 Jun  510:08 003
crw-rw-r-- 1 root root 189, 3 Jun  510:08 004

bMaxPower

设备最大电流


root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/bMaxPower
100mA
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/bMaxPower
300mA

idVendor & idProduct

厂商 ID & 产品 ID

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/idVendor
05e3
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/idProduct
0608

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/idVendor
046d
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/idProduct
c084

这和 lsusb 显示一致

root@ATK-IMX6U:~# lsusb
Bus 001 Device 004: ID 258a:1006 // 键盘
Bus 001 Device 003: ID 046d:c084 // 鼠标
Bus 001 Device 002: ID 05e3:0608 // Hub
Bus 001 Device 001: ID 1d6b:0002

product

产品名称

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/product // USB2.0 Hub
USB2.0 Hub
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/product // 罗技 G102 鼠标
G102 Prodigy Gaming Mouse

manufacturer

厂商

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/manufacturer
Logitech

bcdDevice

固件版本号
同一个产品,升级之后(比如固件修改,新增功能),可以通过修改固件版本号来进行区别。

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/bcdDevice8536
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/bcdDevice
0703

speed

速率

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/speed480
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/speed12

uevent

sysfs usb 设备的 uevent 是一个事件通知机制,表示当该 usb 设备在系统上被插入或拔出时,内核会发送一个事件通知给用户空间的系统进程,告知设备的状态变化。这个事件通知会包含一些关于设备的属性信息,例如设的厂商ID、产品ID、序列号等等,方便用户空间的应用程序进行设备管理和配置。

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/ueventMAJOR=189    // 主设备号
MINOR=1        // 次设备号
DEVNAME=bus/usb/001/002 // bus usb 总线号001 设备号002,和 lsusb 显示一致
DEVTYPE=usb_device        // USB 设备
DRIVER=usb                // 设备使用的驱动程序
PRODUCT=5e3/608/8536    // 厂商ID/产品ID/固件版本号
TYPE=9/0/1 
BUSNUM=001                // 总线号
DEVNUM=002                // 设备号

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/ueventMAJOR=189MINOR=2DEVNAME=bus/usb/001/003
DEVTYPE=usb_device
DRIVER=usb
PRODUCT=46d/c084/703
TYPE=0/0/0
BUSNUM=001
DEVNUM=003

bmAttributes

大小为一字节,不同的位,表示不同的特性。

  • bit7 是保留的,必须为1。
  • bit6 表示供电方式:1 设备自供电;0 设备是总线供电的。
  • bit5 表示是否支持远程唤醒:1 支持远程唤醒;0 不支持远程唤醒。
  • bit0~4 是保留的,默认为0。
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/bmAttributes // 1110 0000,设备自供电,支持远程唤醒
e0
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/bmAttributes // 1010 0000,设备是由总线供电的,支持远程唤醒
a0

drivers_autoprobe

drivers_autoprobe 是一个 sysfs 属性,用于在新插入 USB 设备时触发自动探测 USB 驱动程序。当将此属性设置为 1 时,内核将尝试自动加载适当的驱动程序,以便为任何新连接的 USB 设备进行配置。这可以节省手动 USB 设备所需的时间和精力。

root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1/subsystem/drivers_autoprobe1
root@ATK-IMX6U:~# cat /sys/bus/usb/devices/1-1.1/subsystem/drivers_autoprobe1
标签: linux 服务器 运维

本文转载自: https://blog.csdn.net/lyndon_li/article/details/131278050
版权归原作者 Li-Yongjun 所有, 如有侵权,请联系我们删除。

“linux 下查看 USB 设备”的评论:

还没有评论