GNU/Linux >> Znalost Linux >  >> Linux

Rozpoznejte více zařízení v systému Linux pomocí tohoto úložiště USB ID

Na trhu jsou tisíce USB zařízení – klávesnice, skenery, tiskárny, myši a nespočet dalších, která všechna fungují na Linuxu. Podrobnosti o jejich dodavateli jsou uloženy v úložišti USB ID.

lsusb

Linuxový lsusb příkaz uvádí informace o zařízeních USB připojených k systému, ale někdy jsou informace neúplné. Nedávno jsem si například všiml, že značka jednoho z mých USB zařízení nebyla rozpoznána. zařízení bylo funkční, ale uvedení podrobností o mých připojených zařízeních USB neposkytlo žádné identifikační údaje. Zde je výstup z mého lsusb příkaz:

$ 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

Jak můžete vidět v posledním sloupci, existuje jedno zařízení bez popisu výrobce. Abych zjistil, o jaké zařízení jde, musel bych provést hlubší kontrolu stromu zařízení USB. Naštěstí lsusb příkaz má více možností. Jedním z nich je -D device , abyste získali podrobnosti o jednotlivých zařízeních, jak vysvětluje manuálová stránka:

"Neskenujte adresář /dev/bus/usb, místo toho zobrazte pouze informace o zařízení, jehož soubor zařízení je dán. Soubor zařízení by měl být něco jako /dev/bus/usb/001/001. Tato možnost zobrazí podrobné informace, např. v volba; k tomu musíte být root."

Nemyslel jsem si, že je snadno zřejmé, jak předat cestu k zařízení příkazu lsusb, ale po pečlivém přečtení manuálové stránky a počátečního výstupu jsem byl schopen určit, jak jej zkonstruovat. Zařízení USB jsou umístěna v souborovém systému UDEV. Cesta k jejich zařízení začíná v adresáři zařízení USB /dev/bus/usb/ . Zbytek cesty tvoří ID sběrnice a ID zařízení zařízení. Moje nepopisné zařízení je Bus 001, Device 002, což se překládá na 001/002 a doplňuje cestu /dev/bus/usb/001/002 . Nyní mohu předat tuto cestu lsusb . Také přejdu na more protože tam je často dost informací:

$ 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:

Bohužel to neposkytlo podrobnosti, které jsem doufal, že najdu. Dvě pole, která se objeví v úvodním výstupu, idVendor a idProduct , jsou obě prázdné. Existuje určitá nápověda, protože skenování trochu dolů odhalí slovo Myš . AHA! Takže toto zařízení je moje myš.

Úložiště USB ID

To mě přimělo přemýšlet, jak mohu tato pole vyplnit nejen pro sebe, ale také pro ostatní uživatele Linuxu. Ukázalo se, že na to již existuje projekt s otevřeným zdrojovým kódem:úložiště USB ID. Je to veřejné úložiště všech známých ID používaných v zařízeních USB. Používá se také v různých programech, včetně USB Utilities, k zobrazení názvů zařízení čitelných člověkem.

Úložiště pro konkrétní zařízení můžete procházet buď z webu, nebo stažením databáze. Uživatelé mohou také odesílat nová data. To je to, co jsem udělal pro svou myš, která chyběla.

Aktualizujte svá ID USB

Databáze USB ID je uložena v souboru s názvem usb.ids . Toto umístění se může lišit v závislosti na distribuci Linuxu.

Na Ubuntu 18.04 je tento soubor umístěn v /var/lib/usbutils . Pro aktualizaci databáze použijte příkaz update-usbids , který musíte spustit s právy root nebo pomocí sudo :

$ sudo update-usbids

Pokud je k dispozici nový soubor, bude stažen. Aktuální soubor bude zálohován a nahrazen novým:

$ 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

Nejnovější verze Fedora Linux ukládají databázový soubor do /usr/share/hwdata . Také neexistuje žádný aktualizační skript. Místo toho je databáze udržována v balíčku s názvem 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.

Nyní můj seznam zařízení USB zobrazuje název vedle tohoto dříve nepojmenovaného zařízení. Porovnejte to s výstupem výše:

$ 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

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Můžete si všimnout, že popisy ostatních zařízení se mění, protože úložiště je pravidelně aktualizováno o nová zařízení a podrobnosti o těch stávajících.

Odeslat nová data

Existují dva způsoby, jak odeslat nová data:pomocí webového rozhraní nebo odesláním speciálně naformátovaného souboru záplaty e-mailem. Než jsem začal, přečetl jsem si pokyny k odeslání. Nejprve jsem si musel zaregistrovat účet a poté jsem potřeboval pomocí systému zadávání projektu zadat ID a jméno mé myši. Postup je stejný pro přidání libovolného zařízení USB.

Použili jste úložiště USB ID? Pokud ano, podělte se o svou reakci v komentářích.


Linux
  1. 4 Užitečný způsob, jak zjistit název připojeného zařízení USB v systému Linux

  2. Jak zašifrovat oddíl pomocí DM-Crypt LUKS na Linuxu

  3. Linux – Jak znovu připojit logicky odpojené USB zařízení?

  1. Čtení vstupního USB datového proudu na linuxu

  2. Ovládání USB napájecího zdroje (on/off) s Linuxem

  3. Náš vestavěný linuxový systém nerozpozná zařízení USB, pokud je zapojeno před zapnutím. Návrhy?

  1. S touto grafickou kalkulačkou pro Linux je matematika zábavná

  2. Udržujte více linuxových distribucí na USB pomocí tohoto open source nástroje

  3. Upravujte video v systému Linux pomocí této aplikace Python