web-dev-qa-db-fra.com

Modification des autorisations sur le port série

J'utilise Arduino IDE sous Ubuntu et j'ai des problèmes avec le port série. Cela a fonctionné dans le passé, mais pour des raisons qui peuvent paraître inutiles, j’ai ressenti le besoin de changer la propriété de certains fichiers, de la propriété racine à la propriété de mes utilisateurs.

Cela a permis au IDE de fonctionner correctement, mais j'ai perdu la possibilité d'utiliser le port série correct. Dans le dossier dev, le port dont j'ai besoin est répertorié comme autorisation 166. Quelqu'un (qui n'est plus dans la région pour m'aider) a échangé les autorisations en 666, ce qui a permis à tout cela de fonctionner à merveille.

Cependant, il est revenu dès que j'ai redémarré mon ordinateur, et si j'essaie maintenant d'utiliser la commande:

Sudo chmod 666 ttyACM0

rien ne se passe. Aucun message d'erreur, mais aucune autorisation ne change non plus.

Comment puis-je le changer, et comment puis-je le faire pour changer de façon permanente.

Je m'excuse si cette question est trop simpliste ou peu claire, je suis un noob d'ubuntu et je ne voudrais pas me laisser aller à des commentaires!

52
Terrik

Le problème avec les autorisations pour /dev/ttyACM0 peut être résolu en permanence en vous ajoutant au groupe dialout. Vous devrez vous déconnecter puis vous reconnecter avant que le changement de groupe ne soit reconnu.

Vous pouvez le faire avec Sudo usermod -a -G dialout $USER

75
Rinzwind

Je ne pouvais pas obtenir suggestion de Rinzwind au travail, car il se plaignait que le compte d'utilisateur existe déjà. Au lieu de cela, j'ai utilisé cette commande pour ajouter un utilisateur existant (terrik) à un groupe existant (dialout), comme décrit dans le Wiki de l'aide Ubunt .

Sudo adduser terrik dialout

Cette commande est également utile pour répertorier vos groupes actuels, bien que, comme le dit Rinzwind, vous devez vous déconnecter et vous connecter avant que le port série ne commence à vous laisser entrer.

groups terrik
20
Don Kirkby

Je ne pouvais pas obtenir réponse de Terrik , mais je pourrais le faire si je faisais ce léger ajustement du chemin pour ttyACM0.

Sudo chmod 666 /dev/ttyACM0

Publierait comme commentaire mais je n'ai pas encore les privilèges pour ça ...

10
gbmhunter

Une autre possibilité consiste à créer un fichier de règles dans le répertoire /etc/udev/rules.d/. J'ai eu un problème similaire et j'ai créé le fichier 50-myusb.rules dans le répertoire ci-dessus avec ce contenu:

KERNEL=="ttyACM[0-9]*",MODE="0666"

Notez que cela donnera à tout périphérique connecté aux autorisations de lecture/écriture du socket ttyACM. Si vous n'avez besoin que de périphériques spécifiques pour obtenir des autorisations de lecture/écriture, vous devez également vérifier les noms idVendor et idProduct. Vous pouvez les trouver en exécutant la commande lsusb deux fois, une fois sans connecter votre périphérique et une fois quand il est connecté, puis observez la ligne supplémentaire dans la sortie. Là, vous verrez quelque chose comme Bus 003 Device 005: ID ffff:0005. Dans ce cas, idVendor = ffff et idProduct = 0005. Le vôtre sera différent. Alors vous modifiez le fichier de règles pour:

ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"

Désormais, seul ce périphérique obtient les autorisations. Lire ceci pour en savoir plus sur l'écriture de règles udev.

8
NonStandardModel

Essayez d’entrer dans Système/Utilisateurs et Groupes et cochez la case correspondant à votre nom d’utilisateur dans le groupe TTY.

2
user247020