Există mii de dispozitive USB pe piață – tastaturi, scannere, imprimante, mouse-uri și multe altele – care funcționează toate cu Linux. Detaliile furnizorului acestora sunt stocate în USB ID Repository.
Comanda lsusb
Comanda lsusb listează informații despre dispozitivele USB conectate la un sistem, dar uneori informațiile sunt incomplete.
De exemplu, unul dintre dispozitivele USB nu era recunoscut. Dispozitivul era funcțional, dar listarea detaliilor dispozitivului USB conectat nu erau afișate. Iată rezultatul comenzii lsusb:
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 046d:082c Logitech, Inc.
Bus 001 Device 003: ID 0951:16d2 Kingston Technology
Bus 001 Device 002: ID 18f8:1486
Bus 001 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
După cum puteți vedea în ultima coloană, există un dispozitiv care nu are nici o descriere a producătorului.
Pentru a determina care este dispozitivul, ar trebui să faceți o examinare mai amănunțită a configurației dispozitivului USB.
Din fericire, comanda lsusb are mai multe opțiuni. Una dintre ele este -D (device), pentru a obține detalii pentru fiecare dispozitiv în parte, după cum explică pagina de manual:
Nu scanați directorul /dev/bus/usb, în schimb afișați doar informații despre dispozitivul al cărui fișier de dispozitiv este dat. Fișierul de dispozitiv ar trebui să fie ceva de genul /deb/bus/usb/001/001. Această opțiune afișează informații detaliate ca și opțiunea v; trebuie să fiți root pentru a face acest lucru.
Este destul de ușor de aflat calea dispozitivului USB și de adăugat la comanda lsusb, mai ales dacă citiți cu atenție pagina de manual, astfel veți reuși că construiți comanda.
Dispozitivele USB se află în sistemul de fișiere UDEV. Calea lor de acces la dispozitive începe cu directorul de dispozitive USB /deb/bus/usb/.
Restul căii este alcătuit din Bus ID și Device ID ale dispozitivului. Dispozitivul fără descriere este Bus 001, Device 002, ceea ce se traduce prin 001/002 și completează calea /dev/bus/usb/001/002.
Acum puteți trece această cale către lsub. De asemenea, veți direcționa comanda către more, deoarece există adesea destul de multe informații acolo.
$ lsusb -D /dev/bus/usb/001/002 |more
Device: ID 18f8:1486
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x18f8
idProduct 0x1486
bcdDevice 1.00
iManufacturer 0
iProduct 1
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 59
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
Din nefericire, acest lucru nu a oferit detaliile care ne interesau. Cele două câmpuri care apar în rezultatul inițial, idVendor și idProduct, sunt ambele goale.
Există un ajutor, deoarece dacă vă uitați puțin mai jos apare cuvântul Mouse. Deci, acest dispozitiv este al unui mouse.
USB ID Repository
Aici este paartea interesantă și cum puteți face pentru a completa aceste câmpuri. Se pare că există un proiect open source pentru acest lucru: USB ID Repository.
Acesta este un depozit public al tuturor ID-urilor cunoscute și utilizate de dipozitivele USB. Este, de asemenea, utilizat în diverse programe, inclusiv de USB Utilities, pentru a afișa numele dispozitivelor.

Puteți răsfoi depozitul pentru anumte dispozitive fie de pe site-ul web, fie descărcând baza de date. Utilizatorii sunt invitați să trimită date noi.
Actualizați ID-urile USB
Baza de date cu ID-uri USB este stocată într-un fișier numit usb.ids. Această locație poate varia în funcție de distribuția Linux.
Pe Ubuntu 18.04, acest fișier se află în /var/lib/usbutils. Pentru a actualiza baza de date, utilizați comanda update-usbids, pe care trebuie să o executați cu privilegii de root sau cu sudo.
$ sudo update-usbids
În cazul în care este disponibil un nou fișier, acesta va fi descărcat.Fișierul actual va fi salvat și înlocuit cu cel nou.
$ ls -la
total 1148
drwxr-xr-x 2 root root 4096 Jan 15 00:34 .
drwxr-xr-x 85 root root 4096 Nov 7 08:05 ..
-rw-r--r-- 1 root root 614379 Jan 9 15:34 usb.ids
-rw-r--r-- 1 root root 551472 Jan 15 00:34 usb.ids.old
Versiunile recente ale Fedora stochează fișierul bazei de date în /usr/share/hwdata. De asemenea, nu există un script de actualizare. În schimb, baza de date este menținută într-un pachet numit hwdata.
# dnf info hwdata
Installed Packages
Name : hwdata
Version : 0.332
Release : 1.fc31
Architecture : noarch
Size : 7.5 M
Source : hwdata-0.332-1.fc31.src.rpm
Repository : @System
From repo : updates
Summary : Hardware identification and configuration data
URL : https://github.com/vcrhonek/hwdata
License : GPLv2+
Description : hwdata contains various hardware identification and configuration data,
: such as the pci.ids and usb.ids databases.
Acum, în lista de dispozitive USB apare un nume lângă acest dispozitiv care nu avea nici un nume anterior. Comparați acest lucru cu rezultatul de mai sus.
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 046d:082c Logitech, Inc. HD Webcam C615
Bus 001 Device 003: ID 0951:16d2 Kingston Technology
Bus 001 Device 014: ID 18f8:1486 [Maxxter]
Bus 001 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub