Comandes LinuxInformació del sistema LinuxLinux

La comanda lsusb a Linux: llistar els dispositius USB



La comanda lsusb llista els dispositius USB connectats a l’equip: teclats, ratolins, discos externs, memòries, adaptadors wifi o Bluetooth, càmeres… i també els concentradors (hubs) interns. Per a cada dispositiu mostra el bus on és, el número que li ha assignat el sistema i els identificadors del fabricant i del producte. És molt útil per comprovar si el sistema ha detectat un aparell que acabes de connectar. Forma part del paquet usbutils.

Sintaxi

lsusb [opcions]

Per veure la llista no cal ser root. Només el mode detallat (-v) necessita sudo per llegir alguns descriptors; sense permisos, avisa amb Couldn't open device, some information will be missing.

Opcions més útils

OpcióQuè fa
-t, --treeMostra els dispositius en arbre: a quin port i a quin hub estan connectats, el controlador i la velocitat
-tvL’arbre, amb el nom i l’identificador de cada dispositiu
-v, --verboseTots els descriptors del dispositiu (classe, consum, interfícies…)
-d fabricant:[producte]Només els dispositius amb aquests identificadors (en hexadecimal)
-s [bus]:[dispositiu]Només el dispositiu amb aquest bus i número (en decimal)
-D /dev/bus/usb/BBB/DDDExamina directament aquest fitxer de dispositiu

Com es llegeix la sortida

En un portàtil:

$ lsusb
Bus 001 Device 005: ID 04f2:b57a Chicony Electronics Co., Ltd
Bus 001 Device 004: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 04f3:3012 Elan Microelectronics Corp.
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • Bus 001: el bus USB (cada controlador en té un o més).
  • Device 005: el número que el sistema assigna al dispositiu en aquell bus. Canvia cada vegada que el desconnectes i el tornes a connectar.
  • ID 046d:c31c: identificador del fabricant (046d, Logitech) i del producte (c31c). Aquest sí que és fix i és el que has de buscar per saber si un aparell és compatible amb Linux.
  • Descripció: el nom del fabricant i del model, tret de la base de dades usb.ids. Pot ser genèrica (com Intel Corp.) o faltar si el dispositiu no hi és.

Els Linux Foundation 2.0/3.0 root hub no són aparells físics: representen els controladors USB de l’equip (un per a USB 2.0 i un per a USB 3.x).

Exemples

Veure on està connectat cada dispositiu

En un Raspberry Pi 4 amb un disc SATA connectat per USB 3.0:

$ lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 002: Dev 002, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

Aquí hi ha dues dades molt útils:

  • Driver=: el controlador del nucli que gestiona el dispositiu. Si un aparell no en té, el sistema el veu però no el sap fer servir.
  • La velocitat: 480M és USB 2.0, 5000M és USB 3.0 (5 Gbit/s), 10000M és USB 3.1/3.2 de 10 Gbit/s, i 12M o 1.5M són USB 1.x (teclats i ratolins). Si un disc extern va lent i surt a 480M, segurament està connectat a un port USB 2.0 o amb un cable que no és USB 3.

Amb -tv (versions recents d’usbutils) hi afegeix el nom de cada dispositiu:

$ lsusb -tv
...
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 002: Dev 002, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
        ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ...

Filtrar un dispositiu

Per identificador (el que no canvia):

$ lsusb -d 174c:55aa
Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ...

Per bus i número:

lsusb -s 002:002

Tots els detalls

sudo lsusb -v -d 046d:c31c

Mostra la versió d’USB (bcdUSB), el fabricant i el número de sèrie que declara el dispositiu, el consum màxim (MaxPower), la classe de cada interfície (HID, Mass Storage, Audio…) i molt més. Com que la sortida és llarga, filtra-la amb grep o passa-la per less.

Detectar què acabes de connectar

Un truc senzill: executa lsusb, connecta l’aparell i torna-la a executar. La línia nova és el teu dispositiu. Per veure en directe què passa en connectar-lo (controlador carregat, nom del dispositiu /dev/sdX d’un disc, errors…), fes servir els missatges del nucli:

sudo dmesg -w

Compte amb…

  • Un aparell no surt a lsusb: el problema és físic (cable, port, alimentació) o del mateix aparell; el sistema ni tan sols el veu.
  • Surt a lsusb però no funciona: el sistema el detecta però no hi ha controlador o li falta firmware. Mira lsusb -t (si té Driver=) i dmesg.
  • Descripció buida o antiga: la base de dades usb.ids ve del paquet del mateix nom; actualitzar el sistema l’actualitza.

Comandes relacionades

  • lspci: dispositius del bus PCI, inclosos els controladors USB.
  • lshw: inventari complet del maquinari.
  • blkid: identificar les particions d’un disc o una memòria USB.
  • dmidecode: dades de la placa base i la BIOS.