Symlink bzw. Alias für USB Geräte anlegen - Ein eigener Namen für jedes Gerät

Im Zuge meines Serverwechsels, bin ich häufiger auf die Problematik gestoßen, dass ich meine USB Devices nicht auseinanderhalten konnte bzw. diese durch einen Neustart einen anderen Namen bekommen haben. Gerade wenn man diese mounten will, ist dies aber durchaus störend. Daher habe ich versucht hierfür eine Lösung zu finden. Dabei bin ich auf die Möglichkeit gestoßen, den Devices anhand eindeutiger Merkmale einen eigenen Namen zuzuweisen. Dies geschieht über „udev“ und dort hinterlegten Symlinks. Es ist gar nicht so schwierig aber bringt einen enormen Nutzen. Schon alleine für die Lesbarkeit ist es Gold Wert.
Fangen wir an……..
Ich gehe davon aus, dass ihr eure USB Devices kennt und wisst welchen ihr einen eigenen Symlink verpassen wollt. Sollte dies nicht der Fall sein, dann könnt ihr wie folgt vorgehen. Ruft bitte eure USB Devices auf.

 

root@pve:~# lsusb
Bus 002 Device 012: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adapter Project
Bus 002 Device 010: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 009: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Jetzt zieht doch einfach mal das USB Devices ab, welches ihr nutzen wollt und nicht zuordnen könnt. Wenn ihr danach nochmal den Befehl aufruft und vergleicht, habt ihr schon mal ein Devices identifiziert. Nur der Vollständigkeit halber hier meine Ausgabe nach Abzug eines Sticks.
root@pve:~# lsusb
Bus 002 Device 010: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 009: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Wie ihr seht, ist bei mir der gesuchte Stick unter der folgenden Bezeichnung geführt.
Bus 002 Device 012: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adapter Project
Die benötigten Daten haben wir schon in dieser einen Zeile. Es handelt sich um die VendorID: 03eb und die ProductID: 204b. Diese Daten müssen jetzt in eine Rules Datei für udev eingetragen werden.
nano /etc/udev/rules.d/99-usb.rules
Hier platzieren wir nun folgende Zeile. Wobei das entscheidende Attribut der Wert hinter „SYMLINK“ ist. Hier muss der Name eingetragen werden, unter welchem das USB Device dann später im System zu finden ist!
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idProduct}=="204b", ATTRS{idVendor}=="03eb", SYMLINK+="cul868", MODE="0660", GROUP="dialout"
Wir speichern die Datei und triggern direkt udev einmal.
udevadm trigger
Jetzt gibt es bei mir das Device „/dev/cul868“. Dieser Name wird sowohl nach einem Neustart so bleiben als auch beim ab- und wieder anstecken des Sticks am Server. In allen weiteren Tools oder falls man den Stick durchreichen muss/will, reicht jetzt auf /dev/cul868 zu referenzieren.
Ich hoffe dieser kleine Trick hilft euch und ihr musstet hoffentlich nicht zu viel Zeit bei der Suche nach eine Lösung für dieses doch recht häufige Problem aufwenden.
Wie immer handelt es sich um mein Beispiel. Passt also alles an eure Voraussetzungen an.
Ich hoffe euch hat der Artikel gefallen. Solltet ihr Fehler gefunden haben, generelle Fragen haben, oder wollt ihr einfach noch zusätzliche Informationen, dann schreibt mir bitte in die Kommentare. Ich versuche diese zeitnah zu beantworten.
Danke fürs lesen…..
Euer cedigger

Schreibe einen Kommentar