Linux: USB-Geräte auflisten

Linux-Befehle zum Auflisten von USB-Geräten

Du kannst USB-Geräte in Linux mit den folgenden Befehlen auflisten:

lsusb

lsusb ist der grundlegende Befehl zum Auflisten aller mit dem System verbundenen USB-Geräte. Es zeigt folgende Informationen an:

  • Bus und Gerät
  • Geräte-ID
  • Produkt- und Herstellername
  • Seriennummer (falls verfügbar)

usb-devices

usb-devices ist eine Alternative zum Befehl lsusb mit einer etwas detaillierteren Ausgabe. Es zeigt zusätzliche Felder wie:

  • Gerätebeschreibung
  • Geräteprotokoll
  • Geräteklasse

udevadm

udevadm kann verwendet werden, um Informationen über USB-Geräte über udev-Regeln abzufragen. Es ist ein flexibles Tool, das die Filterung und Verarbeitung der Geräteinformationen ermöglicht.

udevadm info --attribute-walk --name=/dev/<Gerätename>

Alternative Methoden

Neben diesen Befehlen gibt es alternative Methoden zum Auflisten von USB-Geräten:

  • dmesg: Dieser Befehl zeigt den Kernel-Boot- und Fehlerprotokoll an, das Informationen über erkannte USB-Geräte enthält.
  • Systemverwaltungstools: Einige Linux-Distributionen bieten Systemverwaltungstools, die eine grafische Oberfläche für die Anzeige von USB-Geräteinformationen bereitstellen.

Bedeutung der verschiedenen Ausgabefelder

Wenn du einen Befehl zum Auflisten von USB-Geräten ausführst, wird eine Tabelle mit verschiedenen Informationen ausgegeben. Jedes Feld enthält spezifische Details, die dir dabei helfen können, deine USB-Geräte zu identifizieren und zu verwalten.

Gerätebus und Gerätenummer

  • Gerätebus: Dieser Wert gibt an, an welchen Bus das Gerät angeschlossen ist. Üblicherweise handelt es sich dabei um "usb".
  • Gerätenummer: Dies ist die Gerätenummer, die vom Betriebssystem vergeben wird.

Gerät

  • Gerätepfad: Dies ist der Pfad zum USB-Gerät im Dateisystem. Weitere Informationen zum Gerät findest du, indem du diesen Pfad zu "/sys/bus/usb/devices/" hinzufügst.
  • Hersteller: Dieser Wert gibt den Hersteller des Geräts an.
  • Produkt: Dies ist der Produktname des Geräts.

Seriennummer

  • Seriennummer: Manche USB-Geräte verfügen über eine eindeutige Seriennummer. Dieses Feld zeigt die Seriennummer des Geräts an, falls vorhanden.

Konfiguration

  • Konfigurationswert: Jedes USB-Gerät hat einen Konfigurationswert, der seine aktuelle Konfiguration beschreibt.

Schnittstelle

  • Schnittstellennummer: USB-Geräte können mehrere Schnittstellen haben. Dieses Feld gibt die Nummer der Schnittstelle an.
  • Klasse: Dies ist die USB-Geräteklasse, die die Funktionalität des Geräts beschreibt.
  • Unterklasse: Dies ist die USB-Geräteunterklasse, die weitere Details zur Gerätefunktionalität bietet.
  • Protokoll: Dies ist das USB-Geräteprotokoll, das das Gerät verwendet, um mit dem Host-Computer zu kommunizieren.

Eigenschaften

  • Aktuelle Zugriffsrechte: Diese Spalte gibt die aktuellen Zugriffsrechte für das Gerät an.
  • Slot: Dies ist der Steckplatz, in den das Gerät eingesteckt ist.
  • Produkt-ID: Dies ist eine eindeutige ID, die das Gerät identifiziert.
  • Hersteller-ID: Dies ist eine eindeutige ID, die den Hersteller des Geräts identifiziert.
  • Revision: Dies ist die Revisionsnummer des Geräts.
  • Datei: Dies ist der Gerätedateiname im Dateisystem.

USB-Geräteinformationen filtern

Du kannst die verschiedenen Ausgabefelder des lsusb-Befehls verwenden, um die USB-Geräteliste nach bestimmten Kriterien zu filtern. Dies ist hilfreich, wenn du nur Informationen über bestimmte Gerätetypen abrufen möchtest.

Filtern nach Hersteller und Produkt-ID

Um nach der Hersteller- oder Produkt-ID zu filtern, verwende die Optionen -v und -d. Beispielsweise listet der folgende Befehl nur USB-Geräte mit der Hersteller-ID 046d und der Produkt-ID c52b auf:

lsusb -v -d 046d:c52b

Filtern nach Bus und Port

Du kannst auch nach dem Bus und Port des Geräts filtern. Dazu verwendest du die Optionen -s und -p. Beispielsweise listet der folgende Befehl nur USB-Geräte auf, die mit dem Bus 1 und dem Port 3 verbunden sind:

lsusb -s 1:3

Verwendung von regulären Ausdrücken (Regex)

Für eine noch präzisere Filterung kannst du reguläre Ausdrücke in den Befehlen -v und -d verwenden. Beispielsweise listet der folgende Befehl nur USB-Geräte auf, deren Produktnamen das Wort "Maus" enthalten:

lsusb -v | grep -i "mouse"

Filtern nach Geräteklasse und Subklasse

Du kannst auch nach der Geräteklasse und -subklasse filtern. Hierfür verwendest du die Optionen -C und -S. Beispielsweise listet der folgende Befehl nur USB-Geräte der Klasse "Audio" und der Subklasse "Audio-Kontrolleinheit" auf:

lsusb -C 01 -S 01

Weitere Filteroptionen

Es stehen noch weitere Filteroptionen zur Verfügung, mit denen du die USB-Geräteliste verfeinern kannst. Dazu gehören:

  • -b zum Filtern nach Busnummer
  • -D zum Filtern nach Gerätedeskriptoren
  • -k zum Filtern nach Kerneltreiber
  • -i zum Filtern nach Info-Eintrag

Bekannte Probleme und Fehlerbehebung bei der USB-Geräteliste

Beim Auflisten von USB-Geräten in Linux kannst du auf verschiedene Probleme und Fehler stoßen. Im Folgenden findest du eine Liste der häufigsten Probleme und mögliche Lösungen:

Leere Ausgabe

Wenn keine USB-Geräte angeschlossen sind oder du nicht über die notwendigen Berechtigungen verfügst, erhältst du möglicherweise eine leere Ausgabe.

Lösung:

  • Stelle sicher, dass ein USB-Gerät an den Computer angeschlossen ist.
  • Führe den Befehl als root (sudo) aus, um die notwendigen Berechtigungen zu erhalten.

Nicht erkannte Geräte

Einige USB-Geräte, insbesondere proprietäre Geräte, werden möglicherweise von Linux nicht erkannt.

Lösung:

  • Verwende den Befehl lsusb -v mit dem Flag -v (Verbose), um detailliertere Informationen über jedes Gerät zu erhalten.
  • Besuche die Website des Geräteherstellers, um Treiber oder Firmware-Updates zu finden, die die Kompatibilität verbessern können.
  • Erwäge die Verwendung eines USB-Hubs, der explizit für die Unterstützung des Geräts entwickelt wurde.

Fehlende Informationen

In einigen Fällen werden möglicherweise nicht alle Informationen über ein USB-Gerät angezeigt.

Lösung:

  • Verwende den Befehl udevadm info -a -p /sys/class/usb/usb*/ mit dem Flag -a (All), um alle verfügbaren Informationen über ein bestimmtes Gerät anzuzeigen.
  • Verwende den Befehl usb-devices aus dem usbutils-Paket, um eine kompakte und tabellarische Liste der USB-Geräte anzuzeigen.
  • Erwäge die Verwendung grafischer Tools wie Usbview oder Gufw für eine benutzerfreundlichere Oberfläche zur Anzeige von USB-Geräteinformationen.

Alternative Methoden zum Auflisten von USB-Geräten

Neben den in den vorherigen Abschnitten vorgestellten Befehlszeilenbefehlen gibt es auch alternative Methoden, um USB-Geräte in Linux aufzulisten. Diese Methoden bieten möglicherweise zusätzliche Funktionen oder eine andere Perspektive auf die angezeigten Geräteinformationen.

Grafische Benutzeroberfläche (GUI)

  • GNOME-Geräte: Diese Anwendung ist in vielen GNOME-basierten Distributionen wie Ubuntu und Fedora vorinstalliert. Sie bietet eine intuitive grafische Oberfläche zur Verwaltung und Anzeige von USB-Geräten.
  • KDE-Partitionsmanager: Diese Anwendung ist in KDE-basierten Distributionen wie Kubuntu und openSUSE enthalten. Sie bietet eine detaillierte Ansicht von USB-Geräten, einschließlich ihrer Partitionen und Dateisysteme.

Systemwerkzeuge

  • lsusb: Dieses Tool listet alle an das System angeschlossenen USB-Geräte auf und bietet grundlegende Informationen wie den Gerätetyp und die Busnummer.
  • udevadm info: Dieser Befehl liefert detaillierte Informationen über ein bestimmtes USB-Gerät, einschließlich seiner Attribute, Treiber und Gerätepfad.
  • usb-devices: Dieses Tool listet alle USB-Geräte auf und bietet erweiterte Informationen wie den USB-Standard und die Geräteklasse.

Drittanbietertools

  • USBTreeView: Dieses kostenlose Tool bietet eine hierarchische Baumansicht von USB-Geräten und ihren Anschlüssen. Es verfügt über zusätzliche Funktionen wie die Möglichkeit, Geräte zu entfernen und Informationen zu deren Treibern anzuzeigen.
  • Device Manager: Diese kommerzielle Software von Belarc bietet eine umfassende Ansicht aller Hardwaregeräte, einschließlich USB-Geräten. Sie stellt detaillierte Informationen, Systemberichte und die Möglichkeit zur Geräteverwaltung bereit.
  • USBDeview: Dieses kostenlose Tool von Nirsoft listet USB-Geräte zusammen mit ihrer Verwendungshäufigkeit und anderen nützlichen Informationen auf. Es ermöglicht dir auch, Geräte zu deinstallieren und deren Treiber zu verwalten.

Automatisierung der USB-Geräteauflistung mit Skripten

Die Verwendung von Skripten kann das Auflisten von USB-Geräten auf deinem Linux-System automatisieren und den Prozess noch effizienter gestalten. Hier sind ein paar Möglichkeiten, wie du das angehen kannst:

Verwendung von Shell-Skripten

Du kannst ein einfaches Shell-Skript wie das folgende erstellen (usb_devices.sh):

#!/bin/bash

# Listet alle USB-Geräte auf
usb_devices=$(lsusb)

# Ausgabe in eine Datei schreiben
echo "$usb_devices" > usb_devices.txt

Führe das Skript mit dem folgenden Befehl aus:

./usb_devices.sh

Es erstellt eine Datei namens usb_devices.txt mit der Liste der USB-Geräte.

Verwendung von Python-Skripten

Python bietet eine einfach zu bedienende Möglichkeit zum Schreiben von Skripten für die USB-Geräteauflistung. Hier ist ein Beispielskript (usb_devices.py):

import usb.core
import usb.util

# Listet alle USB-Geräte auf
devices = usb.core.find(find_all=True)

# Ausgabe in eine Datei schreiben
with open('usb_devices.txt', 'w') as f:
    for device in devices:
        f.write(f"{device}\n")

Führe das Skript mit dem folgenden Befehl aus:

python usb_devices.py

Es erstellt eine Datei namens usb_devices.txt mit der Liste der USB-Geräte.

Vorteile der Skriptautomatisierung

  • Automatisierung: Skripte können USB-Geräteauflistungen automatisch ausführen, ohne dass manuelle Eingriffe erforderlich sind.
  • Konsistenz: Skripte stellen eine konsistente Methode zum Auflisten von USB-Geräten bereit, selbst wenn sich der Benutzer oder das System ändert.
  • Fehlerreduzierung: Skripte helfen, menschliche Fehler zu reduzieren, die bei der manuellen USB-Geräteauflistung auftreten können.
  • Flexibilität: Skripte können an bestimmte Anforderungen angepasst werden, z. B. Filterung der Ausgabe oder Ausführung regelmäßiger Überprüfungen.

Erweiterte Optionen und Flags für die USB-Geräteauflistung

Neben den grundlegenden Befehlen bieten verschiedene Tools und Flags erweiterte Optionen zum Anpassen und Filtern der Ausgabe der USB-Geräteliste.

Optionen für lsusb:

  • -v: Ermöglicht es dir, ausführlichere Informationen zu den USB-Geräten anzuzeigen, einschließlich Hersteller-, Produkt- und Seriennummer.
  • -d: Gibt die Gerätebaum-ID der USB-Geräte aus. Dies ist nützlich zum Identifizieren und Verfolgen bestimmter Geräte.
  • -D: Blendet die Headerzeile in der Ausgabe aus und eignet sich für die Verwendung in Skripten.
  • -t: Zeigt den USB-Gerätebaum in tabellarischer Form an.

Flags für udevadm info:

  • -a: Zeigt alle Eigenschaften des USB-Geräts an, nicht nur die Standardeigenschaften.
  • -p: Gibt eine XPath-Abfrage an, um bestimmte Eigenschaften zu filtern. Beispielsweise kannst du -p 'info/serial' verwenden, um nur die Seriennummer des Geräts anzuzeigen.
  • -e: Exportiert die Geräteinformationen im XML-Format, das für die erweiterte Verarbeitung und Analyse verwendet werden kann.

Flags für usb-devices:

Wenn du usb-devices (Teil des usbutils-Pakets) verwendest, stehen dir folgende erweiterte Flags zur Verfügung:

  • –vendorid: Filtert die Liste nach Geräten mit einer bestimmten Hersteller-ID.
  • –productid: Filtert die Liste nach Geräten mit einer bestimmten Produkt-ID.
  • –busid: Filtert die Liste nach Geräten, die an einen bestimmten USB-Bus angeschlossen sind.
  • –serial: Filtert die Liste nach Geräten mit einer bestimmten Seriennummer.

Alternative Tools:

Neben den oben genannten Befehlen gibt es auch alternative Tools, die erweiterte Optionen für die USB-Geräteauflistung bieten:

  • usb-view: Bietet eine grafische Benutzeroberfläche zum Anzeigen von USB-Geräteinformationen und ermöglicht das Filtern und Sortieren von Daten.
  • usbmon: Erfasst USB-Verkehr und kann verwendet werden, um detaillierte Informationen über USB-Geräte und ihre Kommunikation zu sammeln.