Gleiche USB-Geräte auseinanderhalten?

14/09/2008 - 17:03 von Marian Aldenhövel | Report spam
Hallo,

Ich möchte mehrere seriell angebundene Geràte an eine Linux-Maschine
anschließen. Dazu habe ich USB<->seriell Wandler mit einem Chip von FTDI
vorliegen, die gut funktionieren.

Wenn ich nun mehrere davon anschließe, ist die Reihenfolge in denen die als
/dev/ttyUSBx erscheinen irgendwie definiert oder zufàllig?

Es geht mir weniger um's hotpluggen, das System wird fest auf- und eingebaut,
als um die Zuordnung beim Boot.

Eine implizite Definition, wie "wenn sie an den selben Ports hàngen, dann
kommen sie auch in derselben Reihenfolge" würde mir reichen. Dann probier' ich
es aus und gebe die Anschlüsse bei der Installation halt vor.

Ciao, MM
Marian Aldenhövel, Rosenhain 23, 53123 Bonn
http://www.marian-aldenhoevel.de
"Success is the happy feeling you get between the time you
do something and the time you tell a woman what you did."
 

Lesen sie die antworten

#1 Heike C. Zimmerer
14/09/2008 - 18:14 | Warnen spam
Marian Aldenhövel writes:

Ich möchte mehrere seriell angebundene Geràte an eine Linux-Maschine
anschließen. Dazu habe ich USB<->seriell Wandler mit einem Chip von
FTDI vorliegen, die gut funktionieren.

Wenn ich nun mehrere davon anschließe, ist die Reihenfolge in denen
die als /dev/ttyUSBx erscheinen irgendwie definiert oder zufàllig?



Die Reihenfolge ist nicht garantiert. Aber es gibt Abhilfe. Ich habe
z.B. folgende Regeln (hier in /etc/udev/rules.d/97-hcz, Du solltest eine
àhnlich genannte Datei, die mit einer höheren 2stelligen Zahl startet,
dort erstellen):

### USB<->seriell
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{serial}=="ftDDMR0L", SYMLINK+="ttyHSB"
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{serial}=="FTDG89J1", SYMLINK+="ttyFAX"
[..]

Sie erzeugen für denselben Konverter (erkannt an seiner Seriennummer)
immer denselben Symlink (/dev/ttyFAX oder /dev/ttyHSB).

Die Seriennummer (und auch andere Unterscheidungsmerkmale, z.B. die
Postion auf dem USB) erhàltst Du mit

udevinfo --attribute-walk --name /dev/ttyUSB0 | less

Da udevinfo den ganzen USB-Baum aufwàrts alle Knoten anzeigt, solltest
Du darauf achten, dass der Block, in dem das ATTRS{serial} steht, zum
Konverter und nicht z.B. zu einem Hub gehört (der erste (=oberste)
Eintrag sollte hinhauen).

Solltest Du das Pech haben, zwei Chinakracher zu besitzen, die dieselben
Seriennummern aufweisen, lass' den Output von udevinfo in 2 Dateien und
mache einen diff darüber, um Unterscheidungsmerkmale zu finden.
Eintràge der Art KERNELS=="4-8.2.3" (oder so) bezeichnen die Position
auf dem Bus und sind ganz gut zu gebrauchen, solange immer gleich
gesteckt wird.

Ähnliche fragen