Universal Serial Bus ou USB a été conçu pour normaliser la connexion des périphériques informatiques tels que les claviers, les dispositifs de pointage, les imprimantes, les appareils photo numériques, les lecteurs multimédias portables, les lecteurs de disque et les adaptateurs réseau" - Source :Wikipedia
Depuis qu'il est devenu un standard de l'industrie, il est maintenant difficile de voir un ordinateur sans port USB. L'utilisation du disque flash USB le rend plus populaire. Sous Linux, nous avons lsusb pour lister les périphériques USB et leurs propriétés.
Qu'est-ce que lsusb
Depuis sa page de manuel, lsusb est défini comme :
Un utilitaire pour afficher des informations sur les bus USB du système et les périphériques qui y sont connectés.
Comment exécuter lsusb
Pour exécuter lsusb, vous pouvez taper lsusb directement depuis la console.
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 17ef:4811 Lenovo Integrated Webcam [R5U877]
Bus 008 Device 002: ID 0a5c:217f Broadcom Corp. Bluetooth Controller
lsusb vous montrera les pilotes et le périphérique qui sont connectés en interne sur votre système.
Voici comment lire la sortie. Je récupère la dernière ligne de la sortie ci-dessus :
Bus 008 Périphérique 002 :ID 0a5c:217f Broadcom Corp. Contrôleur Bluetooth
- Autobus 008 : signifie où l'appareil est attaché
- Appareil 002 : signifie qu'il s'agit du deuxième appareil connecté
- Identifiant : désigne le numéro d'identification de cet appareil
- Contrôleur Bluetooth Broadcom Corp. : signifie son nom de fabricant et le nom de l'appareil
Nous constatons également que nous avons également des pilotes de concentrateur racine USB 2.0 et des pilotes de concentrateur racine USB 1.1 attachés à notre système.
Ceci est également affiché à l'aide de la commande dmesg. En voici un exemple.
$ dmesg |grep -i usb
[ 0.353138] usbcore: registered new interface driver usbfs
[ 0.353150] usbcore: registered new interface driver hub
[ 0.353182] usbcore: registered new device driver usb
[ 0.730026] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.730116] ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1
[ 0.748019] ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00
[ 0.748169] hub 1-0:1.0: USB hub found
[ 0.748336] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2
[ 0.768019] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[ 0.768147] hub 2-0:1.0: USB hub found
[ 0.768236] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.768251] uhci_hcd: USB Universal Host Controller Interface driver
Comment répertorier les détails USB
Utilisez -v
paramètre pour le faire. En voici un exemple.
$ lsusb -v
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Trouver combien de périphériques USB sont connectés
Pour le trouver, utilisez cette commande
$ find /dev/bus
Ensuite, vous aurez une sortie comme celle-ci :
/dev/bus
/dev/bus/usb
/dev/bus/usb/008
/dev/bus/usb/008/002
/dev/bus/usb/008/001
/dev/bus/usb/007
/dev/bus/usb/007/001
/dev/bus/usb/006
/dev/bus/usb/006/001
/dev/bus/usb/005
/dev/bus/usb/005/001
/dev/bus/usb/004
/dev/bus/usb/004/001
/dev/bus/usb/003
/dev/bus/usb/003/001
/dev/bus/usb/002
/dev/bus/usb/002/004
/dev/bus/usb/002/003
/dev/bus/usb/002/001
/dev/bus/usb/001
/dev/bus/usb/001/001
Utilisation de la commande lsusb combinée avec -D
paramètre, vous pouvez imprimer le détail d'un appareil spécifique. Voici un exemple de périphérique Bluetooth Broadcom.
$ lsusb -D /dev/bus/usb/008/002
Device: ID 0a5c:217f Broadcom Corp. Bluetooth Controller
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a5c Broadcom Corp.
idProduct 0x217f Bluetooth Controller
bcdDevice 3.60
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
Trouvez votre stockage de masse
Depuis lsusb -v
donnez-nous une information très détaillée, vous risquez de manquer quelque chose à lire. Nous pouvons nous concentrer sur des informations spécifiques à l'aide de la commande grep. Voici quelques exemples.
Le stockage de masse aura un nom et un ID de fournisseur. Nous pouvons l'utiliser comme point de départ.
$ lsusb -v |grep -Ei '(idVendor|Mass\ Storage)'
idVendor 0x1005 Apacer Technology, Inc.
bInterfaceClass 8 Mass Storage
Vous pouvez voir que nous avons un stockage de masse USB attaché sur notre système d'Apacer Technology, Inc.
Dumper la hiérarchie des périphériques USB physiques sous forme d'arborescence
Utilisez -t
paramètre pour remplir cet objectif.
$ lsusb -t
/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
|__ Port 1: Dev 4, If 0, Class=stor., Driver=usb-storage, 480M
|__ Port 6: Dev 3, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 6: Dev 3, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
Le nombre 12M et 480M indiquent la vitesse du taux de transfert du type USB.
- 12M signifie 12Mbit/s qui est un type USB 1.0/1.1
- 480M signifie 480Mbit/s qui est un type USB 2.0
Si vous avez trouvé 5.0G, cela signifie que vous avez le type USB 3.0. Il a un taux de transfert de 5,0 Gbit/s. Linux reconnaît le détail des périphériques USB à partir de '/var/lib/usbutils/usb.ids' . Vous pouvez visiter Linux-USB.org pour obtenir la liste la plus récente des ID USB ou un guide pratique du bus série universel.
C'est tout ce qui concerne la commande lsusb au quotidien. Vous pouvez utiliser la commande lsusb pour effectuer une activité de diagnostic sur vos périphériques USB sur votre système. Comme d'habitude, vous pouvez explorer plus de détails en lisant la page de manuel de lsusb. Tapez simplement man lsusb pour voir sa page de manuel.