Détection de périphérique USB Linux
Afficher les périphériques USB sous Linux
La commande la plus couramment utilisée est lsusb
, mais lsusb ne peut afficher que les informations sur le périphérique USB simple actuel. Pour afficher des informations détaillées sur le périphérique USB, il est préférable d'utiliser le mécanisme debugfs sous Linux.
- montage de débogage :
mount -t debugfs none /sys/kernel/debug/
- Afficher les informations sur le périphérique USB via les débogages
cat /sys/kernel/debug/usb/devices
Explication des informations sur l'appareil
Via /sys/kernel/debug/usb/devices
le nœud de périphérique, vous pouvez voir les informations détaillées du périphérique USB actuel, comme suit :
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh=16
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 4.18
S: Manufacturer=Linux 4.18.0-240.el8.x86_64 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:00:14.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=480 MxCh= 4
D: Ver= 2.10 Cls=09(hub ) Sub=00 Prot=02 MxPS=64 #Cfgs= 1
P: Vendor=05e3 ProdID=0610 Rev=93.07
S: Manufacturer=GenesysLogic
S: Product=USB2.1 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=01 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub ) Sub=00 Prot=02 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=02 Dev#= 3 Spd=480 MxCh= 5
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=046b ProdID=ff01 Rev= 1.00
S: Manufacturer=American Megatrends Inc.
S: Product=Virtual Hub
S: SerialNumber=serial
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
T: Bus=01 Lev=02 Prnt=03 Port=03 Cnt=01 Dev#= 4 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=046b ProdID=ff10 Rev= 1.00
S: Manufacturer=American Megatrends Inc.
S: Product=Virtual Keyboard and Mouse
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
Pour les informations de sortie ci-dessus, l'explication spécifique est la suivante :
- T = structure de topologie de bus (topologie) (Lev, Prnt, Port, Cnt, etc.), qui fait référence à la méthode de connexion entre le périphérique USB et l'hôte.
Les informations de données après T sont expliquées comme suit :
Format de représentation général : (voir ci-dessous pour une utilisation spécifique)
d = nombre décimal
x = nombre hexadécimal
s = chaîne
Informations de topologie (Topologie)
T: Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd
| | | | | | | | |__最⼤⼦设备
| | | | | | | |__设备速度(Mbps)
| | | | | | |__设备编号
| | | | | |__这层的设备数
| | | | |__此设备的⽗连接器/端⼝
| | | |__⽗设备号
| | |__此总线在拓扑结构中的层次
| |__总线编号
|__拓扑信息标志
- B = bande passante (contrôleur hôte USB uniquement).
Informations sur la bande passante (bande passante)
B: Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd
| | | |__同步请求编号
| | |__中断请求号
| |__分配给此总线的总带宽
|__带宽信息标志
- D = Informations sur la description de l'appareil.
Informations sur la description de l'appareil (Appareil)
D: Ver=x.xx Cls=xx(sssss) Sub=xx Prot=xx MxPS=dd #Cfgs=dd
| | | | | | |__配置编号
| | | | | |______缺省终端点的最⼤包尺⼨
| | | | |__设备协议
| | | |__设备⼦类型
| | |__设备类型
| |__设备USB版本
|__设备信息标志编号#1
- P = informations d'identification du produit.
Informations d'identification du produit (Produit)
P: Vendor=xxxx ProdID=xxxx Rev=xx.xx
| | | |__产品修订号
| | |__产品标识编码
| |__制造商标识编码
|__设备信息标志编号#2
- S = descripteur de chaîne (chaîne).
Informations de description de chaîne (String)
S: Manufacturer=ssss
| |__设备上读出的制造商信息
|__串描述信息
S: Product=ssss
| |__设备上读出的产品描述信息,对于USB主控制器此字段为"USB *HCI Root Hub"
|__串描述信息
S: SerialNumber=ssss
| |__设备上读出的序列号,对于USB主控制器它是⼀个⽣成的字符串,表⽰设备标识
|__串描述信息
- C = Description de la configuration (* indique la configuration active).
Informations de description de la configuration (Config)
C: #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA
| | | | |__最⼤电流(mA)
| | | |__属性
| | |__配置编号
| |__接⼝数
|__配置信息标志
- I = Informations de description de l'interface (Interface).
Informations de description d'interface (peuvent être multiples) (Interface)
I: If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss
| | | | | | | |__驱动名
| | | | | | |__接⼝协议
| | | | | |__接⼝⼦类
| | | | |__接⼝类
| | | |__端点数
| | |__可变设置编号
| |__接⼝编号
|__接⼝信息标志
- E = Informations de description du point de terminaison.
Informations de description du point de terminaison (Endpoint)
E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms
| | | | |__间隔
| | | |__终端点最⼤包尺⼨
| | |__属性(终端点类型)
| |__终端点地址(I=In,O=Out)
|__终端点信息标志