NEWS
/dev/tty... vs /dev/serial/by-id
-
@asgothian sagte in /dev/tty... vs /dev/serial/by-id:
Und nein, das mit dem by-id ist davor genausowenig gefeit wie die direkten Link Targets.
Das stimmt ja nun nicht. Wenn entschieden wird, das ein Chipsatz statt auf /dev/ttyUSBx besser auf /dev/ttyACM aufgehobe ist, dann wird das im Treiber und/oder in der udev-Regel so angepasst. Könnte z. B. bei einer neuen Version von systemd passieren. Der 'by-id'-Link zeigt dann aber automagisch auf die andere Geräte-Datei, ganz ohne mein Zutun.
Das setzt nur voraus, das man einmalig bei der Einrichtung auch diesen Link angibt. -
@thomas-braun sagte in /dev/tty... vs /dev/serial/by-id:
Der 'by-id'-Link zeigt dann aber automagisch auf die andere Geräte-Datei, ganz ohne mein Zutun.
so lange bis entschieden wird das die Struktur der /dev/..../by_id vielleicht doch besser anders aufgebaut werden sollte. Auch da ist eine Konfiguration / regel / software hinter. Da haben sich Leute was bei gedacht. So wie auch bei der USB / AMA / ACM einodnung. Wer sagt mir das die Meinungen da so bleiben ?
Und im Ernst - mir ist bisher noch kein USB Gerät von USB zu AMA zu ACM gesprungen. (Edit : Klarstellung - bei Beibehalten der gleichen Distro)
A.
-
@asgothian Flexibilität, Fluch und Segen.
-
@jey-cee sagte in /dev/tty... vs /dev/serial/by-id:
@asgothian Flexibilität, Fluch und Segen.
Exakt.
-
@thomas-braun sagte in /dev/tty... vs /dev/serial/by-id:
Mir sind das zu viele WENNs.
Ein einmal sauber eingerichteter Link 'by-id' landet IMMER zu 100% auf dem definierten Gerät.Wenn ich auf /dev/ttyXYZ gehe, dann kann da mit unterschiedlicher Wahrscheinlichkeit auch ein anderes Gerät liegen. Das hat der Nutzer nämlich nicht in der Hand, das entscheidet udev/der Kernel.
Dem kann ich zu 100% zustimmen. Insbesondere dem 1. Teil: Dir sind das zu viele Wenns.
Das reicht mir aber nicht die Behauptung aufzustellen das diese Einstellung die richtige ist die alle benutzen sollen
A.
-
@asgothian sagte in /dev/tty... vs /dev/serial/by-id:
Da haben sich Leute was bei gedacht.
Ja, und das Ergebnis ist vorhersagbar. Im Gegensatz zur direkten Geräte-Datei, die kann mal hier und mal da landen.
Deswegen hat man ja auch vor einiger Zeit diese sehr sperrigen 'predictable network interfaces' eingeführt.
Die sind nämlich genauso stabil und vorhersehbar wie die by-id-Links.
Das ganze ist für Endanwender aber zugegeben auch zunächst komplizierter als einfach /dev/eth0 anzusprechen (Und davon auszugehen, dass die Netzwerkkarte schon da liegen wird, hat sie ja sonst auch immer).
Der Auslöser für diese Umstellung waren aber ganz ähnliche Überlegungen. Man will eine stabile, ganz eindeutige Adressierung der Geräte haben.Kannst du hier sehr ausführlich erklärt nachlesen:
https://systemd.io/PREDICTABLE_INTERFACE_NAMES/
Lässt sich 1:1 auf die seriellen USB-Interfaces anwenden. Die Problematik ist die gleiche.Aus dem obigen Link:
Does this have any drawbacks? Yes, it does. Previously it was practically guaranteed that hosts equipped with a single ethernet card only had a single eth0 interface. With this new scheme in place, an administrator now has to check first what the local interface name is before they can invoke commands on it, where previously they had a good chance that eth0 was the right name.
Ersetze eth0 durch ttyUSBx dann passt es. Eine 'good chance that ttyUSB0 was the right name' reicht nicht aus, man will ja genau das bestimmte Gerät treffen. Und das geht nur über dessen ID.
-
@asgothian sagte in /dev/tty... vs /dev/serial/by-id:
Und im Ernst - mir ist bisher noch kein USB Gerät von USB zu AMA zu ACM gesprungen. (Edit : Klarstellung - bei Beibehalten der gleichen Distro)
jetzt sag ich doch was dazu, gerade nach dem edit:
lang ist's her, da hatte ich keine Ahnung von /by-id/ & co, und nur 1 USB Gerät. selbst da lief es manchmal nach Neustart nicht, erst nach erneutem Neustart.
seit ich /by-id/ kenne nutze ich es, und weder bei der Umstellung von USB0 nach AMA0 usw. habe ich nie Probleme gehabt, und auch beim Umzug von verschiedenen Hardware nicht.
Mittlerweile nutze ich einen aktiven Hub mit 4 USB Geräten und kann die Hardware und die Distro wechseln und brauche nur den Hub umzustecken -
Im weiteren verweise ich nur noch auf die Anleitung von zigbee2mqtt, wie man das richtig konfiguriert.
Da haben die sich mit Sicherheit nämlich auch was bei gedacht, das so "umständlich" über 'by-id' anzulegen:https://www.zigbee2mqtt.io/guide/configuration/adapter-settings.html#basic-configuration
-
Also ich denke, das der Standard schon eher die persistente Benennung von Interfaces/Hardwares etc. sein sollte.
Die Experten haben eher Ahnung wo sie suchen sollen, falls sich da mal eine Interface ID ändert.
Die meisten User hier, haben aber davon keine Ahnung, warum das selbe Gerät plötzlich USB1 und nicht mehr wie immer USB0 heißt. Dann kann man denen sicherlich von irgendwelchen Race Conditions im Kernel erzählen, weil sie evtl eine Software/Treiber installiert haben, die da einen Einfluss hat. Ihr werdert das aber auch nicht für den User analysieren. Helfen tuts dem User ebenfalls nicht. Schlauer werden sie dadurch nur bedingt.Viele hier sind von Linux schon überfordert und sind froh, das sie einigermaßen die Befehle abgetippt bekommen, die sie irgendwo finden. Ich glaube das habt ihr alle fast täglich hier schon erlebt.
-
@oliverio sagte in /dev/tty... vs /dev/serial/by-id:
Die Experten haben eher Ahnung wo sie suchen sollen, falls sich da mal eine Interface ID ändert.
Der Punkt ist: Die Experten müssen erst gar nicht in solchen Fällen suchen, weil sie nämlich gleich die persistenten Links verwenden und somit auch nie in diese 'Falle' tappen.