Lsusb: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) K Änderungen von Dirk (Diskussion) wurden auf die letzte Version von 84.168.214.133 zurückgesetzt Markierung: Zurücksetzung |
|
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |
(kein Unterschied)
|
Aktuelle Version vom 16. Oktober 2023, 12:20 Uhr
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.
$ lsusb Bus 001 Device 003: ID 2040:7070 Hauppauge Nova-T Stick 3 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser Mouse Bus 005 Device 002: ID 04b4:00ff Cypress Semiconductor Corp. Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 002: ID 046d:08b2 Logitech, Inc. QuickCam Pro 4000 Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 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 Mouse Bus 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:c043 Bus 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 Mouse Bus 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:003 Bus 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/003 Device: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser Mouse [weitere Informationen] can't get device qualifier: Operation not permitted can't get debug descriptor: Operation not permitted cannot 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:003 Bus 005 Device 003: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser Mouse Device 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:003 Bus 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:003 Bus 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.