USB Device on Linux

Identificați mai multe dispozitive cu USB ID Repository

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

ThinkRoot99

Numele meu este Cristian Moldovan și sunt utilizator de Linux de peste 10 ani.Am făcut parte din mai multe echipe open source din România: Fundația Ceata, Linux Mint România, Rogentos Linux Group. Între 2014 și 2018 am fost propietarul și editorul site-ului de știri despre linux, gnulinux.ro și actual proprietar al rootlinux.ro

View all posts by ThinkRoot99 →

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *