web-dev-qa-db-fra.com

Comment faire fonctionner ma règle udev

Mon périphérique USB ne cesse de changer de numéro sous son nom /dev/ttyUSB?.

J'ai vu this et this , et j'ai essayé de faire la même chose sans succès.

gauthier@sobel:/etc/udev/rules.d $ udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB1)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/ttyUSB1/tty/ttyUSB1':
    KERNEL=="ttyUSB1"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/ttyUSB1':
    KERNELS=="ttyUSB1"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="ftdi_sio"
    ATTRS{port_number}=="0"
    ATTRS{latency_timer}=="1"
[...]

Ensuite, j'ai créé un fichier /etc/udev/rules.d/50-udev.rules (il n'existait pas) et je l'ai mis à l'intérieur:

SUBSYSTEM=="usb-serial", KERNEL=="ttyUSB?", SYMLINK+="ttyUSBserial"

Mais n'a pas obtenu le lien symbolique, même après udevadm trigger:

gauthier@sobel:/etc/udev/rules.d $ ls /dev|grep USB
ttyUSB1

Comment créer un nom d'appareil qui ne change pas? Qu'est-ce que je fais mal avec ma règle?

1
Gauthier

Si j'avais bien lu, j'aurais remarqué les différences entre les attributs de l'appareil (KERNEL, SOBSYSTEM) et ceux de l'appareil parent (KERNEL ** S **, SOBSYSTEM ** S **).

Ajouter le 'S's dans la règle a fonctionné!

En chemin, j'ai également remarqué qu'udev avait créé un lien symbolique persistant dans/dev/serial/by-id/usb- *, grâce à ses règles dans /lib/udev/rules.d/60-persistent-serial.rules, que je pourrais utiliser à la place.

2
Gauthier

oh, j’ai également suivi votre parcours et je ne parviens pas à faire fonctionner un lien symbolique même après avoir ajouté "S" après. Il m'a fallu des siècles pour constater que vous deviez utiliser les règles de l'appareil lui-même (sans 'S'), ou un SINGLE parent ... J'ai référencé 2 niveaux de parents donc je n'ai pas réussi à créer le lien symbolique .. Juste pour partager avec d'autres gars qui se trouvaient avoir un cas similaire avec moi.

1
ryandali