web-dev-qa-db-fra.com

Les règles UDEV pour FTDI ne fonctionnent pas complètement

Je sais que cette question a été posée à plusieurs reprises mais je ne peux pas la faire fonctionner. J'ai un convertisseur série-usb FTDI. J'ai généré 10-fhss-usb.rules dans /etc/udev/rules.d/:

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTTA5DMA", SYMLINK+="fhss", GROUP="dialout", MODE="0777", RUN+="echo USB CONNECTED!"

J'ai également ajouté mon utilisateur au groupe dialout:

Sudo usermod -a -G dialout $ USER

et groups $USER renvoie:

jvgomez : jvgomez adm dialout Sudo plugdev lpadmin sambashare

(Le groupe plugdev a été créé à la suite d'un autre message) Maintenant, lorsque je connecte le périphérique USB sous ls -al, je peux voir:

$ ls -al /dev/fhss
lrwxrwxrwx 1 root root 7 Jun  4 17:13 /dev/fhss -> ttyUSB0

$ ls -al /dev/ttyUSB0 
crw-rw-r-- 1 root dialout 188, 0 Jun  4 17:13 /dev/ttyUSB0

Le message echo USB CONNECTED! ne s'affiche jamais. Et quand j'utilise screen /dev/fhss/, il dit immédiatement [screen is terminating]. Pour que cela fonctionne, je dois toujours exécuter chmod

$ Sudo chmod a+rwx /dev/fhss 

Et maintenant:

$ ls -al /dev/ttyUSB0 
crwxrwxrwx 1 root dialout 188, 0 Jun  4 17:13 /dev/ttyUSB0

1) Qu'est-ce qui me manque? Je dois encore exécuter chmod, ce que j'essaie d'éviter. 2) Quelle est la différence entre SUBSYSTEM=="tty" et SUBSYSTEM=="usb"?

Toute aide est la bienvenue!

EDIT: ajouter NAME = "my_device" comme proposé dans la règle Usb udev ne fonctionnait jamais pour moi ne changeait rien.

3
Javi V

Pour faire fonctionner une discussion FTDI sur Ubuntu:

Ouvrez le fichier/etc/group avec les droits root:

Sudo nano /etc/group

Après cela, recherchez tty:x5: et dialout:x20:

Ajoutez votre utilisateur à ces groupes en tapant votre nom d'utilisateur devant chaque ligne:

tty:x5:<user>

dialout:x20:<user>

Vous pouvez également utiliser les deux commandes suivantes pour éviter la recherche du fichier:

Sudo usermod -aG tty <user>
Sudo usermod -aG dialout <user>

<user>, est votre nom d'utilisateur.

Enfin, redémarrez votre ordinateur.

Si vous souhaitez utiliser les règles udev, connectez le module FTDI, puis exécutez:

lsusb

Cela montrera le vendorID et le productID. Par exemple:

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Où 8087 est le vendorID et 0024 le productID.

Ensuite, créez une règle comme celle-ci:

ATTRS{idVendor}="8087", ATTRS{idProduct}="0024", MODE="0660", GROUP="dialout"
2
GTRONICK

J'utilise une puce FT232RL en mode Bit Bang et j'ai rencontré les mêmes problèmes d'autorisation. Les règles suggérées ci-dessus n'ont pas fonctionné pour moi pour des raisons que je ne comprends pas. Cependant, avec quelques modifications, je l'ai fait fonctionner.

Espérons que cela puisse aider quelqu'un:

$ lsusb:

Bus 001 Device 023: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Comme ci-dessus, j'ai ajouté l'utilisateur à dialout et tty: $ Sudo usermod -aG dialout $USER $ Sudo usermod -aG tty $USER

Mais la ligne dans /etc/udev/rules.d/99-libftdi.rules, est différente:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS={idProduct}=="6001", OWNER="user", MODE="0777", GROUP="dialout"

Il se pourrait que la différence cruciale soit SUBSYSTEM=="usb".

2
kalleknast