lsusb – wiki.archlinux.de (2024)

Mittels des Tools lsusb kann man sich alle am Computer per USB angeschlossenen Geräte anzeigen lassen. Genauer genommen handelt es sich um ein Informationstool, mittels dessen das USB-System analysiert und durchsucht werden kann. Mittels verschiedener Parameter kann die Ausgabe angepasst werden.

Installation

Das Programm lsusb ist teil des Paketes usbutils, welches sich im „core“-Repository befindet. Dieses Paket kann mittels Pacman installiert werden.

pacman -S usbutils

Um alle Funktionen (insbesondere die erweiterten Informationen zu Bus-Abschnitten und Geräten) verwenden zu können, sind root-Rechte erforderlich. Für den „täglichen Standard-Gebrauch“ ist dies nicht nötig.

Einsatzzweck

Für die Anzeige durch lsusb ist es nicht wichtig, ob die Hardware von Linux erkannt wird. So lange die Hardware sich über USB am System anmeldet, können entsprechende Informationen angezeigt werden. lsusb eignet sich daher also sehr gut, um im Zuge einer Fehleranalyse die generelle Funktionsfähigkeit von Hardware zu überprüfen.

Wenn USB-Hardware duch lsusb nicht angezeigt werden kann, ist es wahrscheinlich, dass die Hardware nicht funktioniert, sich in einem Funktionsmodus befindet, in dem USB deaktiviert ist, oder das USB-System nicht funktioniert.

Beispiele

Nachfolgende Beispiele verdeutlichen die Verwendung von lsusb. Einige der Aufrufe bedürfen root-Rechten, da direkt auf die Hardware zugegriffen wird, was mit User-Rechten nicht uneingeschränkt möglich ist.

Standard-Aufruf/Erläuterung

Mittels der einfachen Eingabe von lsusb wird das USB-System durchsucht, und es werden Informationen über die gefundenen Geräte ausgegeben.

$ lsusbBus 001 Device 003: ID 2040:7070 Hauppauge Nova-T Stick 3Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser MouseBus 005 Device 002: ID 04b4:00ff Cypress Semiconductor Corp. Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 004 Device 002: ID 046d:08b2 Logitech, Inc. QuickCam Pro 4000Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 002 Device 002: ID 0644:0200 TEAC Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Die Standard-Ausgabe gliedert sich in drei Bereiche, der Bus-Bereich (Bus 001 Device 003) bestimmt die „physische“ Position der Hardware. Pro Bus können mehrere Devices vorhanden sein. Die Ausgabe unterscheidet sich je Mainboard. Die Anzahl der Busse und Devices stimmt oft nicht mit den tatsächlich vorhandenen USB-Anschlüssen überein, da lsusb auch interne Verbindungen mit auflistet.

Der ID-Abschnitt (ID 2040:7070) bestimmt eindeutig, um welche Art von Hardware es sich handelt. Jeder Anbieter hat eine Vendor-ID (vor dem Doppelpunkt) und jedes Gerät hat eine Product-ID (nach dem Doppelpunkt). Anhand dieser beiden Angaben kann man ein Gerät identifizieren.

Der Namensteil (Hauppauge Nova-T Stick 3) kann vom Anbieter völlig frei gewählt werden (weiter Informationen siehe Abschnitt Zuordnungs-Datei). In Verbindung mit der Bus-Angabe und der ID kann man so ein bestimmtes Gerät an einem bestimmten USB-Anschluss eindeutig identifizieren.

Suche nach Geräte-IDs

Will man sich nur die Geräte eines bestimmten Herstellers anzeigen lassen, und kennt man dessen Vendor-ID bedient man sich des Parameters -d.

lsusb -d 046d:Bus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser MouseBus 004 Device 002: ID 046d:08b2 Logitech, Inc. QuickCam Pro 4000

Da 046d die Vendor-ID von Logitech ist, werden nun nur noch alle Logitech-Geräte aufgelistet. Will man die Suche noch weiter spezifizieren, kann man zusätzlich zur Vendor-ID auch die Product-ID angeben.

$ lsusb -d 046d:c043Bus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser Mouse

Es wird nun nur noch die Zeile der am Rechner angeschlossenen Maus „Logitech MX400 Laser“ angezeigt. Nur der Vollständigkeit halber: Die Suche nur nach der Product-ID, dann mit vorangestelltem Doppelpunkt, funktioniert genau so.

Suche nach der Position im Bus

Will man sich Informationen darüber anzeigen lassen, welche Geräte an einem bestimmten Bus angeschlossen sind, bedient man sich des Parameters -s.

$ lsusb -s 005:Bus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser MouseBus 005 Device 002: ID 04b4:00ff Cypress Semiconductor Corp. Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Es werden nun nur noch alle Geräte ausgegeben, die am Bus 005 angeschlossen sind. Will man dies noch weiter spezifizieren, kann man zusätzlich auch noch die Device-Nummer angeben.

$ lsusb -s 005:003Bus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser Mouse

Jetzt wird nur noch die Zeile des Gerätes ausgegeben, das als drittes Gerät an Bus 005 angeschlossen wurde. Auch hier gilt wieder: Die Suche kann auch nur nach Device-Nummern, wieder mit vorangestelltem Doppelpunkt, vorgenommen werden.

Ausgabe anhand einer Gerätedatei

Statt den Bus zu durchsuchen, kann man lsusb mittels des Parameters -D auch anweisen, eine bestimmte Gerätedatei als Quelle für die Ausgabe zu verwenden.

$ lsusb -D /dev/bus/usb/005/003Device: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser Mouse[weitere Informationen]can't get device qualifier: Operation not permittedcan't get debug descriptor: Operation not permittedcannot read device status, Operation not permitted (1)

Da hier direkt auf Gerätedateien zugegriffen wird, und über diese direkt auf die Hardware, können mit User-Rechten nicht alle Informationen ausgelesen werden.

Erweiterte Ausgabe

Die erweiterte Ausgabe mittels des Parameters -v entspricht der Ausgabe nach der Gerätedatei mittels des Parameters -D. Auch bei der erweiterten Ausgabe mittels -v werden für die Ausgabe aller Informationen root-Rechte benötigt.

Es ist ratsam, -v mit einem Filter-Parameter zu kombinieren, da sonst für alle Geräte ausführliche Informationen ausgegeben werden, was die Ausgabe sehr unübersichtlich und umfangreich macht.

# lsusb -v -s 005:003Bus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser MouseDevice Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x046d Logitech, Inc. idProduct 0xc043 MX320/MX400 Laser Mouse bcdDevice 27.10 iManufacturer 1 Logitech iProduct 2 USB-PS/2 Optical Mouse iSerial 0 bNumConfigurations 1[weitere Informationen]Device Status: 0x0000 (Bus Powered)

Je nach abgefragtem Gerät variieren die angezeigten Informationen.

# lsusb -v -s 004:002[…] idVendor 0x046d Logitech, Inc. idProduct 0x08b2 QuickCam Pro 4000[…] AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Microphone bAssocTerminal 0 bNrChannels 1 wChannelConfig 0x0000 iChannelNames 0 iTerminal 0 […]

Die als zweites Gerät an Bus 004 angeschlossene Hardware verfügt also über ein Mikrofon, das per USB ansteuerbar ist. Wenn man die Hardware nicht kennt, kann man mittels der erweiterten Ausgabe Informationen über dessen Funktionen erlangen.

Zuordungs-Datei

Unter Arch befinden sich alle Informationen über die Product- und Vendor-IDs in der Datei /usr/share/hwdata/usb.ids. In dieser Datei werden nach einem recht einfachen Schema, welches im Kopfbereich der Datei erläutert wird, alle IDs aufgelistet. Änderungen an der Datei wirken sich auf die Ausgabe von lsusb aus.

$ lsusb -s 005:003Bus 005 Device 003: ID 046d:c043 Logitech, Inc. blubb

Hier wurde der Produktnamen-String in der Datei auf „blubb“ geändert. Nach Wiederherstellung des Originalzustandes, zeigt lsusb das Gerät wieder richtig an.

$ lsusb -s 005:003Bus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser Mouse

Da die Produktnamen-Strings nur beschreibende Funktion haben hat eine Änderung des Strings keinen Einfluss auf die Funktionsweise des Gerätes. Allerdings wird der String überall angezeigt, sollte also das Gerät schon richtig beschreiben. Fehlerhafte Beschreibungen sollten dem Maintainer der Datei gemeldet werden.

Script usb-devices

Das Paket usbutils wird mit einem Script usb-devices ausgeliefert, welches Informationen über alle aktiven USB-Geräte in kompakter, leicht parsbarer Form anzeigt. Die Anzeige ist identisch des Inhaltes der Datei usb/devices innerhalb eines Mountpoints von usbfs, oder innerhalb eines Mountpoints von debugfs.

Anstatt einfach den Inhalt der Datei auszugeben, ermittelt usb-devices die Daten selbständig. Da weder usbfs, noch debugfs gemountet sein müssen, hat man mittels usb-devices neben lsusb eine einfache Möglichkeit, um an Informationen über USB-Geräte zu gelangen, ohne, dass man einen usbfs-, oder debugfs-Mountpoint anlegen muss.

Siehe auch

  • Mounten und fstab – Mounten von Dateisystemen (usbfs)

Weblinks

lsusb – wiki.archlinux.de (2024)

References

Top Articles
Latest Posts
Article information

Author: Ms. Lucile Johns

Last Updated:

Views: 6184

Rating: 4 / 5 (61 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Ms. Lucile Johns

Birthday: 1999-11-16

Address: Suite 237 56046 Walsh Coves, West Enid, VT 46557

Phone: +59115435987187

Job: Education Supervisor

Hobby: Genealogy, Stone skipping, Skydiving, Nordic skating, Couponing, Coloring, Gardening

Introduction: My name is Ms. Lucile Johns, I am a successful, friendly, friendly, homely, adventurous, handsome, delightful person who loves writing and wants to share my knowledge and understanding with you.