62 votes

Modification des permissions sur le port série

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

Cela a permis à l'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 listé avec la permission 166. Quelqu'un (qui n'est plus dans la région pour m'aider) a changé les permissions en 666, ce qui a permis à tout de fonctionner parfaitement.

Cependant, il est revenu en arrière 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. Pas de message d'erreur, mais pas de changement de permission non plus.

Comment puis-je le changer, et comment puis-je faire en sorte qu'il change de façon permanente.

Je m'excuse si cette question est trop simpliste ou peu claire, je suis un noob ubuntu, et je ne serais pas contre un retour d'information !

95voto

Rinzwind Points 270388

Le problème avec les permissions pour /dev/ttyACM0 peut être résolu de manière permanente en s'ajoutant à la dialout groupe.

Vous pouvez le faire avec :

  1. sudo usermod -a -G dialout $USER

  2. Déconnectez-vous, puis reconnectez-vous pour que les changements de groupe prennent effet.

21voto

Grey Panther Points 288

Je n'ai pas pu obtenir Suggestion de Rinzwind pour fonctionner, 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 sur le site de l Wiki d'aide Ubuntu .

sudo adduser terrik dialout

Cette commande est également utile pour lister 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

15voto

NonStandardModel Points 3050

Une autre possibilité est de créer un fichier de règles dans /etc/udev/rules.d/ répertoire. J'ai eu un problème similaire et j'ai créé 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é à la socket ttyACM des droits de lecture/écriture. Si vous souhaitez que seul un périphérique spécifique obtienne des droits de lecture/écriture, vous devez également cocher la case suivante idVendor y idProduct . Vous pouvez les trouver en exécutant lsusb deux fois, une fois sans votre appareil connecté et une fois lorsqu'il est connecté, puis observez la ligne supplémentaire dans la sortie. Vous y verrez quelque chose comme Bus 003 Device 005: ID ffff:0005 . Dans ce cas idVendor = ffff y idProduct = 0005 . Le vôtre sera différent. Que vous modifiez le fichier de règles pour :

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

Maintenant, seul cet appareil obtient les permissions. Lire la suite pour en savoir plus sur l'écriture des règles udev.

12voto

gbmhunter Points 221

Je n'ai pas pu obtenir La réponse de Terrik mais je pourrais le faire si je faisais ce léger ajustement au chemin pour ttyACM0 .

sudo chmod 666 /dev/ttyACM0

Je voudrais poster un commentaire mais je n'ai pas encore les privilèges pour cela...

2voto

sanityinc Points 9156

Essayez d'aller dans Système / Utilisateurs et groupes et de cocher la case de votre nom d'utilisateur dans le groupe TTY.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X