## Bitte hier die Versionen kommagetrennt eintragen, mit denen getestet wurde. [[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] Das Programm [man:lsusb:] (engl. '''l'''i'''s'''t '''USB''') liefert Informationen zu Hardwarekomponenten, die per [wikipedia:Universal_Serial_Bus: USB]-Schnittstelle angeschlossen sind. Per USB sind zahlreiche Geräte an einen PC angeschlossen, sowohl intern als auch extern. Primäre Bedeutung hat der Befehl `lsusb` um festzustellen, ob ein angeschlossenes Gerät vom Betriebssystem erkannt wird: Nur wenn es erkannt wird, kann es vom System auch angesteuert werden. Weiterhin dienen detaillierte Informationen zu Geräten des Öfteren zur Fehlerdiagnose bzw. zur richtigen Konfiguration oder zur Auswahl der passenden Softwarepakete. = Installation = Das Programm `lsusb` ist enthalten im Paket [packages:usbutils:]; dieses ist in Ubuntu standardmäßig enthalten. = Benutzung= Der Aufruf erfolgt im Terminal: {{{#!vorlage Befehl lsusb [Option] }}} Beispiel mit gekürzter Ausgabe: {{{ $ lsusb Bus 002 Device 020: ID 090c:2000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) USB DISK Bus 002 Device 003: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub Bus 001 Device 003: ID 0764:0601 Cyber Power System, Inc. PR1500LCDRT2U UPS Bus 001 Device 006: ID 26ce:01a2 ASRock LED Controller Bus 001 Device 005: ID 046a:b102 Cherry GmbH USB Wireless Device Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub }}} Man erkennt an der Ausgabe folgende Bereiche: * links: Angabe zum Bus * Mitte: Vendor-ID : Produkt-ID (genaue Revision eines Geräts) * rechts: namentliche Produktinformationen des Herstellers bzw. zum Hardwaretyp selbst == Optionen == ||<-2 rowclass="titel"> Optionen für das Ausgabeformat|| ||Format||Beschreibung|| || ``-v`` || ausführliche Ausgaben für alle Geräte || || ``-vv`` || noch ausführlichere Ausgabe || || ``-s [[bus]:][devnum]`` || Zeigt nur Geräte mit den angegebenen Geräte- und/oder Bus-Nummern (in Dezimalzahlen) || || ``-d [vendor]:[product]`` || Ausgabe von Geräten, deren vendor-ID (Hersteller) und product-ID (Produkt) übereinstimmt (in hexadezimaler Darstellung) || || ``-t`` || Ausgabe der Baumstruktur (tree) des USB-Systems || || ``-D device`` || Legt fest, welches Gerät lsusb untersucht || || ``-V`` || zeigt Programmversion an || || ``-h`` || Hilfeseite || == Beispiele == * Nähere Informationen zum o.g. USB-Stick anzeigen lassen: \\ {{{ $ lsusb -v -d 090c:2000 Bus 002 Device 022: ID 090c:2000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) USB DISK Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 3.10 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 9 idVendor 0x090c Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) idProduct 0x2000 … }}} (Beispielausgabe gekürzt.) * Alle USB-Geräte des Herstellers ASMedia (Vendor-ID `174c`) anzeigen lassen: \\ {{{ $ lsusb -d 174c: Bus 002 Device 003: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub Bus 001 Device 004: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub }}} * In der Regel kann man die Suche mit einem Filter verfeinern, z.B. [:grep:], wie auch in diesem [#Thermische-berlastung-eines-USB-Controllers Abschnitt] gezeigt. * Eine Übersicht aller USB-Controller im Gerät kann mit diesem Befehl ermittelt werden, wobei der Unterschied zwischen "root hub" und "normalen" hubs beachtet werden sollte: \\ {{{ $ lsusb | grep -i hub Bus 002 Device 003: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub Bus 002 Device 002: ID 2109:8110 VIA Labs, Inc. Hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 [mark]root hub[/mark] Bus 001 Device 004: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub Bus 001 Device 002: ID 2109:2811 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 [mark]root hub[/mark] }}} * Auflistung aller Geräte, die kein Hub sind: \\ {{{ ~$ lsusb | grep -v -i hub Bus 002 Device 029: ID 090c:2000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) USB DISK Bus 001 Device 003: ID 0764:0601 Cyber Power System, Inc. PR1500LCDRT2U UPS Bus 001 Device 011: ID 04a9:173d Canon, Inc. PIXMA MP550 Bus 001 Device 006: ID 26ce:01a2 ASRock LED Controller Bus 001 Device 005: ID 046a:b102 Cherry GmbH USB Wireless Device }}} = Probleme = Es kann bei der Fehlersuche vorkommen, dass ein per USB-Kabel angeschlossenes Gerät scheinbar nicht erkannt wird. Einige Möglichkeiten sind: * Gerät ist nicht eingeschaltet. * Kabel ist nicht richtig eingesteckt bzw. defekt (sehr selten: USB-Ladekabel von alten Mobiltelefonen haben evtl. nur 2 Adern zum Laden). * Ein Gerät überlastet den USB-Controller, worauf dieser sich abschaltet. Alle am HUB angeschlossenen Geräte werden dann möglicherweise nicht in der Übersicht angezeigt. Siehe folgenden [#Thermische-berlastung-eines-USB-Controllers Abschnitt]. * USB-Buchse ist defekt. * USB-Hub am Rechner oder das angeschlossene Gerät ist tatsächlich defekt. * Manche USB-Datenträger werden unter Ubuntu nicht erkannt, zuweilen hilft ein Umstecken auf einen anderen USB-Port am PC. * USB-Modem ist im Datenträgermodus (siehe [:USB_modeswitch:]) und wird daher nicht als Modem erkannt. == Thermische Überlastung eines USB-Controllers == Da immer mehr Geräte ihren Strom über die USB-Schnittstelle beziehen und mehrere Schnittstellen zu einem Host-Controller gehören können, ist es möglich, dass die maximale Leistung erreicht wird. Dann steht ggf. nicht genug Gesamtleistung seitens des Controllers zur Verfügung. Er wird abgeschaltet, um seine Zerstörung durch thermische Überlastung zu vermeiden. Einem USB-2-Bus stehen maximal 500 mA zur Versorgung aller angeschlossenen Geräte zu Verfügung, bei einem USB-3-Bus sind es 900 mA bei Verwendung des USB-B-Steckers und erheblich mehr bei USB-C-Steckern, siehe [#Links Stromversorgung mit USB]. Der folgende Befehl kann bei der Fehleranalyse helfen; er zeigt ''nur die theoretisch maximale'' Stromstärke an, nicht die ''momentane'' Stromstärke (wegen P =U*I ist damit auch die Leistung P direkt proportional zur angezeigten Stromstärke I in ''mA''): {{{#!vorlage Befehl sudo lsusb -v 2> /dev/null| egrep "( Device 0)|(MaxPower)" }}} Hat man mehrere USB-Geräte mit relativ großer Leistungsaufnahme angeschlossen, so sollte man diese entweder auf mehrere Controller verteilen oder mit einer externen Spannungsversorgung betreiben. Im Zweifelsfall hilft eine Messung der ''tatsächlich aufgenommenen'' Leistung mit einem USB-Leistungsmesser. = Links = * [:Hardware:] {Übersicht} Übersichtsseite * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht der [:Shell:]-Befehle * [man:lsusb:Manpage des Befehls] * [https://git.sr.ht/~martijnbraam/lsplug lsplug] {en} -- Alternative für lsusb, die mehr nützliche und weniger unnötige Informationen anzeigt. * [https://www.elektronik-kompendium.de/sites/com/2212141.htm Stromversorgung mit USB] {de} #tag: Hardware, USB