Wenn du USB-Geräte unter Linux nutzt, hast du vielleicht schon bemerkt, dass die automatisch zugewiesenen Gerätenamen wie /dev/ttyUSB0
oder /dev/sdb
bei jedem Anschluss variieren können. Um sicherzustellen, dass ein bestimmtes USB-Gerät immer denselben Namen erhält, kannst du udev-Regeln erstellen. In diesem Artikel erkläre ich dir Schritt für Schritt, wie du das machst.
Warum udev-Regeln?
Linux nutzt das udev
-Subsystem, um Geräte und ihre Zuordnung zu verwalten. Mit benutzerdefinierten udev-Regeln kannst du dafür sorgen, dass ein USB-Gerät anhand bestimmter Eigenschaften immer einen festen Gerätenamen erhält. Das ist besonders praktisch, wenn du oft mit mehreren USB-Geräten arbeitest.
Voraussetzungen
- Root-Rechte: Du brauchst Administratorrechte, um udev-Regeln zu erstellen oder zu bearbeiten.
- Grundlagen im Terminal: Basiskenntnisse im Umgang mit dem Terminal helfen dir bei den folgenden Schritten.
Schritt-für-Schritt-Anleitung
1. Gerätedetails herausfinden
Bevor du eine udev-Regel erstellen kannst, musst du die Eigenschaften deines USB-Geräts ermitteln. Verbinde das Gerät mit deinem System und finde den aktuellen Gerätenamen heraus. Das geht mit:
ls /dev
Suche nach einem Eintrag wie ttyUSB0
, sdb
oder ähnlichen Namen, die für dein USB-Gerät stehen.
Nun kannst du mit folgendem Befehl die Details deines Geräts anzeigen lassen:
udevadm info --query=all --name=/dev/<aktueller_gerätename>
Ersetze <aktueller_gerätename>
mit dem zuvor ermittelten Namen, z. B. ttyUSB0
.
Beispielausgabe:
E: ID_VENDOR=SanDisk
E: ID_MODEL=Ultra_Fit
E: ID_SERIAL=1234567890ABCDEF
E: ID_BUS=usb
Notiere dir die Werte wie ID_VENDOR
, ID_MODEL
und ID_SERIAL
, denn diese werden später in der udev-Regel verwendet.
Alternative: Gerätedetails mit attribute-walk
anzeigen
Wenn du weitere Attribute deines USB-Geräts einsehen möchtest, kannst du Folgendes nutzen:
udevadm info --attribute-walk --name=/dev/<aktueller_gerätename>
Dieser Befehl zeigt dir eine Baumstruktur mit allen verfügbaren Eigenschaften des Geräts.
2. udev-Regel erstellen
Jetzt kannst du die Regel erstellen, die deinem Gerät einen festen Namen zuweist. Dazu öffnest du eine neue Datei im Verzeichnis /etc/udev/rules.d/
:
sudo nano /etc/udev/rules.d/99-usb.rules
Füge folgende Regel ein, angepasst an die Eigenschaften deines Geräts:
SUBSYSTEM=="usb", ATTR{idVendor}=="0781", ATTR{idProduct}=="5591", ATTR{serial}=="1234567890ABCDEF", SYMLINK+="mein_usb_stick"
Erklärung der Regel:
SUBSYSTEM=="usb"
: Die Regel gilt nur für USB-Geräte.ATTR{idVendor}
: Die Hersteller-ID des Geräts (Hexadezimalwert).ATTR{idProduct}
: Die Produkt-ID des Geräts (Hexadezimalwert).ATTR{serial}
: Die Seriennummer des Geräts.SYMLINK+="mein_usb_stick"
: Erstellt einen symbolischen Link/dev/mein_usb_stick
.
3. Regeln anwenden und testen
Nachdem du die Regel gespeichert hast, musst du die udev-Regeln neu laden:
sudo udevadm control --reload
sudo udevadm trigger
Trenne das Gerät und stecke es wieder ein. Prüfe dann, ob der neue Name funktioniert:
ls -l /dev/mein_usb_stick
Wenn der symbolische Link erscheint, hast du alles richtig gemacht!
Erweiterte Optionen
Was tun, wenn keine Seriennummer vorhanden ist?
Falls dein Gerät keine Seriennummer hat, kannst du stattdessen andere Attribute wie KERNELS
oder DEVPATH
verwenden. Diese findest du ebenfalls mit dem attribute-walk
-Befehl.
Fehlerbehebung
Falls es nicht auf Anhieb funktioniert, hier einige Tipps:
- Regel greift nicht: Prüfe, ob die Datei korrekt benannt ist und im Verzeichnis
/etc/udev/rules.d/
liegt. - Falsche Attribute: Stelle sicher, dass die Attribute zu deinem Gerät passen.
- Log-Dateien checken: Nutze folgende Logs, um Fehler zu identifizieren:
journalctl -u systemd-udevd
Fazit
Mit udev-Regeln kannst du USB-Geräten unter Linux feste Namen zuweisen und so Ordnung in deine Geräteverwaltung bringen. Besonders bei Setups mit mehreren USB-Geräten macht das die Konfiguration deutlich einfacher. Probiere die Schritte selbst aus und genieße die neu gewonnene Kontrolle über deine USB-Geräte!