Wer einen Raspberry Pi für die Smart-Home-Steuerung einsetzt, kennt das Problem vermutlich: Es hängen schnell mehrere USB-Geräte am Rechner, deren interne tty-Adresse sich nach dem Aus- und wieder Einstecken einfach ändern kann. Ist das USB-Gerät dann lediglich statisch z.B. per /dev/ttyUSB0 eingebunden, sind die Probleme vorprogrammiert. Gleiches Problem tritt auch bei über USB angeschlossenen Nodes mit Meshtastic auf.
Wie sich dieses zeitraubende Problem mit nur wenigen Befehlen in den Griff bekommen lässt und zudem die Übersichtlichkeit gesteigert werden kann, ist Inhalt des nachfolgenden Blogpost.
Unter Linux man die USB-Schnittstellen (wie /dev/ttyUSB0) durch udev-Regeln feste Namen in Form von symbolischen Links (Symlinks) zuweisen. Da sich die Standard-Kernelnamen bei jedem Neustart oder Umstecken ändern können, ermöglicht dies eine dauerhafte Adressierung Ihrer Geräte.
1. Geräteinformationen auslesen
Identifiziere zunächst die eindeutigen Merkmale des USB-Geräts (z. B. Vendor-ID, Product-ID oder Seriennummer). Schließe das Gerät an und führe folgenden Befehl aus (ersetze ttyUSB0 ggf. durch den aktuellen Namen):
udevadm info -a -n /dev/ttyUSB0
Notiere dir die Werte für idVendor, idProduct und idealerweise die serial.
2. udev-Regel erstellen
Erstelle eine neue Regeldatei im Verzeichnis /etc/udev/rules.d/. Der Dateiname muss auf .rules enden.
sudo nano /etc/udev/rules.d/99-usb-namen.rules
Füge eine Zeile nach folgendem Muster ein:
SUBSYSTEM=="tty", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", ATTRS{serial}=="zzzz", SYMLINK+="mein_geraet"
Verwende Code mit Vorsicht.
- xxxx / yyyy: Die ausgelesenen IDs.
- zzzz: Die Seriennummer (wichtig, falls man zwei identische Adapter verwendet).
- mein_geraet: Der gewünschte feste Name. Das Gerät ist dann unter
/dev/mein_geraeterreichbar.
3. Regeln aktivieren
Lade die udev-Regeln neu, um die Änderungen ohne Neustart zu übernehmen:
sudo udevadm control --reload-rules
sudo udevadm trigger
