@r-l ich hatte das selbst nicht geprüft, jedoch scheint die Antwort in die richtige Richtung zu zeigen. Ich poste das einfach hier weiter:
Das Problem, dass angeschlossene Geräte über USB auf einem Raspberry Pi mit Venus OS nach einem Neustart andere Bezeichnungen erhalten, kann tatsächlich ziemlich störend sein, insbesondere wenn es um konsistente Gerätekonfigurationen und -verwaltung geht. Dies geschieht, weil die Zuweisung der Gerätebezeichnungen (ttyUSB0
, ttyUSB1
, etc.) durch das Betriebssystem bei jedem Boot-Vorgang dynamisch erfolgt, basierend auf der Reihenfolge, in der die Geräte erkannt werden.
Eine Möglichkeit, dieses Problem zu adressieren, ist die Verwendung von UDEV-Regeln, um persistente Namen für USB-Geräte zu erstellen. Hier sind Schritte, wie du das einrichten kannst:
Schritt 1: Identifiziere die Geräte
Zuerst musst du die eindeutigen Identifikatoren deiner Geräte herausfinden. Dies kannst du tun, indem du die Details der angeschlossenen USB-Geräte mit dem Befehl lsusb
anschaust und dann weitere Details mit udevadm
abrufst:
lsusb
udevadm info -a -n /dev/ttyUSB0
Suche nach eindeutigen Attributen wie idVendor
, idProduct
, und serial
.
Schritt 2: Erstelle UDEV-Regeln
Erstelle eine UDEV-Regel, um jedem Gerät basierend auf seinen eindeutigen Eigenschaften einen festen Namen zu geben. Erstelle dafür eine Datei in /etc/udev/rules.d/
, z.B. 99-usb-serial.rules
, und füge Regeln hinzu, die wie folgt aussehen könnten:
SUBSYSTEM=="tty", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="YYYY", ATTRS{serial}=="ZZZZ", SYMLINK+="battery1"
Ersetze XXXX
, YYYY
, und ZZZZ
mit den tatsächlichen Werten für dein Gerät. SYMLINK+="battery1"
erstellt einen symbolischen Link /dev/battery1
, der immer auf das spezifische Gerät zeigt, unabhängig davon, wie es von ttyUSB
nummeriert wird.
Schritt 3: Ändere deine Konfigurationsdatei
Nachdem du persistente Namen für deine Geräte erstellt hast, musst du die Konfigurationsdatei für deine Anwendung ändern, um diese Namen zu verwenden:
{
"excludedServices": ["com.victronenergy.battery.battery1"],
"cvlMode": "max_always"
}
Ersetze "ttyUSB3"
durch den persistenten Namen, den du über UDEV Regeln definiert hast, z.B. "battery1"
.
Schritt 4: Lade UDEV-Regeln neu
Nachdem du die UDEV-Regeln erstellt hast, lade sie neu, um sie zu aktivieren:
sudo udevadm control --reload-rules
sudo udevadm trigger
Schritt 5: Teste die Konfiguration
Starte dein System neu und überprüfe, ob die Geräte korrekt mit den neuen Namen erkannt werden. Du kannst dies überprüfen, indem du nachsiehst, ob die symbolischen Links korrekt in /dev/
erstellt wurden.
Durch diese Änderungen sollten deine USB-Geräte nun konsistente Namen über Neustarts hinweg erhalten, was die Verwaltung und Konfiguration erheblich vereinfacht.