Forum: PC Hard- und Software FTDI mit udev auf eigenen Namen in /dev legen


von Michael J. (jogibaer)


Lesenswert?

Hallo,

da man durchaus den Durchblick verlieren kann, wollte ich jedem FTDI
Adapter (Chip) in /dev einen eigenen Namen geben,

Also in /etc/udev/rules.d/10-ftdi.rules folgendes eingetragen:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6001", 
GROUP="dialout", MODE="0777", 
ATTRS{serial}=="A1WV5UVG",SYMLINK+="USBISP-A"

Danach /etc/init.d/udev restart

und ...
wird immer noch unter /dev/ttyUSB0 eingebunden.

Ich habe schon einige Seiten zu diesem Thema durch und auch diverse 
Konfigurationen ausprobiert, aber keine funktioniert -> immer ttyUSB0
Die korrekten Daten idVendor usw. sind auch eingetragen.

Hat jemand mal eine Beispielkonfiguration die mit

Debian Buster, Kernel 4.17.0-1-amd64 funktioniert?

PS:
Das seltsame ist, daß es früher (älteres System) mal funktioniert hat.
Dann mal Linux neu aufgespielt und die Regel für FTDI erstmal nicht 
eingerichtet.
Nur jetzt funktioniert die Regel nicht mehr.


Jogibär

: Bearbeitet durch User
von Clemens L. (c_l)


Lesenswert?

Überprüfe mit "udevadm monitor -u -p", ob die Werte richtig sind.

Michael J. schrieb:
> Danach /etc/init.d/udev restart

Adapter neu eingestöpselt?

von g457 (Gast)


Lesenswert?

> wird immer noch unter /dev/ttyUSB0 eingebunden

Natürlich. Und wenn die Regel korrekt ist erzeugst Du einen Symlink 
namens 'USBISP-A'.

von Michael J. (jogibaer)


Lesenswert?

Hallo,

der Tipp von Clemens (udevadm monitor -u -p") hat die Ursache geklärt.

Ich war es von früher gewohnt, daß in Syslog beim einstöpseln mit der 
richtigen Regel die Ausgabe /dev/USBISP-A erscheint.
Es erscheint aber jetzt anscheinend immer nur die Angabe /dev/ttyUSB0.
Wenn die Regel stimmt, dann wir zusätzlich der Link /dev/USBISP-A 
angelegt.
Darüber gibt es keine Meldung.

Sonst habe ich immer unter /dev nachgeschaut, ob die Regel funktioniert;
mich nachher auf die Ausgabe im Syslog verlassen.
Daher war ich fälschlicherweise der Meinung, daß die Regel nicht
erkannt wurde.

Danke nochmals an Alle!

Jogibär

: Bearbeitet durch User
von Michael J. (jogibaer)


Lesenswert?

Hallo,

ich muß das Thema noch mal aufmachen.
Ich habe immer sporadisch das Problem, daß mir der Zugriff auf den Link
verweigert wird. Darum habe ich mal gesucht, woran das liegen kann.

udev Regel:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6001", 
GROUP="dialout", MODE="0666", 
ATTRS{serial}=="ADYHAQ83",SYMLINK+="USBISP-B"

Teil wird eingestöpselt:

(/dev)
ls ttyUSB0 ;  ls USBISP-B
crw-rw-rw-+ 1 root plugdev 188, 0 Mai 20 21:27 ttyUSB0
lrwxrwxrwx 1 root root 15 Mai 20 21:27 USBISP-B -> bus/usb/001/028

Link von USBISP-B geht zu bus/usb/001/028

Gerät und Link sind da, Zugriff über ttyUSB0 funktioniert; über den Link
USBISP-B erzeugt z.B. avrdude:

"avrdude: ser_open(): can't set attributes for device "/dev/USBISP-B": 
Inappropriate ioctl for device"

Beim Zugriff über QT serialport das selbe (nur zum testen).

Gerät wieder ausgestöpselt, dann
rmmod ftdi_sio
rmmod usbserial,
Gerät wieder eingestöpselt:

ls ttyUSB0 ;  ls USBISP-B
crw-rw-rw-+ 1 root plugdev 188, 0 Mai 20 21:36 ttyUSB0
lrwxrwxrwx 1 root root 7 Mai 20 21:36 USBISP-B -> ttyUSB0

Jetzt geht der Link von USBISP-B direkt zu ttyUSB0, und der Zugriff 
funktioniert über ttyUSB0 und USBISP-B

Wie bekomme ich dieses Verhalten weg?
Ich will nicht jedesmal die Kernelmodule vor dem anstöpseln händisch 
rauswerfen.
Ich vermute, die werden beim einstecken von dem Gerät neu geladen und 
dann
funktioniert auch der Link; nur wenn diese vor dem einstöpseln schon 
geladen sind, funktioniert der Link nicht (kein Zugriff).

Man kann bestimmt über udev beim anstöpseln ein Script zum rauswerfen
der Kernelmodule ausführen, aber ich möchte erstmal den Grund für dieses 
Verhalten finden.

Hat jemand mal eine Idee?

Danke Euch
Jogibär

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.