Première configuration - autorisation refusée au port USB - Ubuntu 14.04

18

Je viens de brancher mon arduino et le voyant est allumé, mais le test de clignotement n'a pas pu être téléchargé. voici mon erreur:

Arduino: 1.6.7 (Linux), Carte: "Arduino / Genuino Uno"

Sketch utilise 1 030 octets (3%) d'espace de stockage de programme. Le maximum est de 32 256 octets. Les variables globales utilisent 9 octets (0%) de mémoire dynamique, laissant 2 039 octets pour les variables locales. Le maximum est de 2 048 octets. avrdude: ser_open (): impossible d'ouvrir le périphérique "/ dev / ttyUSB0": autorisation refusée ioctl ("TIOCMGET"): ioctl inapproprié pour le périphérique Problème de téléchargement sur la carte. Voir http://www.arduino.cc/en/Guide/Troubleshooting#upload pour des suggestions.

Ce rapport aurait plus d'informations avec "Afficher la sortie détaillée pendant la compilation" activé dans Fichier> Préférences.


la source
arduino.cc/en/Guide/Linux#toc9
Ignacio Vazquez-Abrams
2
@ IgnacioVazquez-Abrams - pouvez-vous transformer cela en une réponse? Nous essayons d'obtenir une réponse à notre pourcentage. :) Peut-être avec un peu de copier-coller, donc ce n'est pas seulement un lien.
Nick Gammon
J'ai fait toutes les étapes et cela a fonctionné la première fois. Maintenant, j'essaie de télécharger mon deuxième programme et j'obtiens ce message 'avrdude: ser_open (): impossible d'ouvrir le périphérique "/ dev / ttyUSB0": Autorisation refusée' j'ai fait ceci: roquet @ roquet-HP-ENVY-x360-m6 -Convertible: ~ $ sudo adduser roquet dialout L'utilisateur roquet' is already a member of dialout '. roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ sudo chmod a + rw / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ ls -l / dev / ttyUSB * crw -rw-rw- 1 root dialout 188, 0 jan 20 13:12 / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ mais toujours obtenir le 'permission denie
Roque Zabalet

Réponses:

26

De la documentation :

Ouvrez Terminal et saisissez:

ls -l /dev/ttyACM*

vous obtiendrez quelque chose comme:

crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0

Le "0" à la fin d'ACM peut être un nombre différent ou plusieurs entrées peuvent être renvoyées. Les données dont nous avons besoin sont "dialout" (est le propriétaire du groupe du fichier).

Il nous suffit maintenant d'ajouter notre utilisateur au groupe:

sudo usermod -a -G dialout $USER

ensuite:

sudo chmod a+rw /dev/ttyACM0

Vous devrez vous déconnecter et vous reconnecter pour que cette modification prenne effet.

Notez que ce qui précède est d'anciennes instructions Ubuntu. Sur les distributions modernes qui utilisent ConsoleKit, créez le fichier /etc/udev/rules.d/01-ttyusb.rulescontenant les éléments suivants, puis rechargez les règles udev et rebranchez le périphérique Arduino:

SUBSYSTEMS=="usb-serial", TAG+="uaccess"
Ignacio Vazquez-Abrams
la source
Très bonne réponse. Sur les installations plus récentes, vous n'avez pas à recharger les règles udev. Udev surveillera /etc/udev/rules.d pour les changements. Vous devez rebrancher l'arduino.
préparer
@ppareit qu'est-ce qui compte comme "installations plus récentes"? Cela ne fonctionne pas pour moi sur Ubuntu 16.04 avec ou sans rechargement des règles (via sudo udevadm control --reload).
Desty
1
Je pense que cela n'a pas fonctionné car la carte est identifiée comme appartenant au sous-système "tty" plutôt qu'à "usb-serial". Quoi qu'il en soit, la création de la règle udev suivante a fonctionné pour moi à la place:, SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm"où (fournisseur) et (produit) sont extraits lsusbet (série) est extrait de la sortie de udevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1.
Desty
Au moins avec Ubuntu 16.04, je n'ai pas vu ce problème sur Mint 18.1. Heureux d'apprendre que vous avez trouvé une solution!
préparer le
J'Y SUIS ARRIVÉ!!!! MIS À JOUR. J'ai une distribution 17.04 et la 1ère solution n'était pas persistante!
tony gil
3

Tout ce que vous avez à faire est de vous ajouter au groupe de composition comme décrit dans la réponse d'Ignacio Vazquez-Abrams. Cela se fait dans le terminal en tapant:

sudo usermod -a -G dialout $USER

Vous n'avez pas besoin d'utiliser chmod. Cela donne un accès en lecture / écriture à tous les utilisateurs et pas seulement aux membres du groupe. Cependant, avant de tenter de vous connecter, vous devez vous déconnecter et vous reconnecter . Une fois reconnecté, vous serez reconnu comme membre du groupe de numérotation et pourrez ouvrir l'appareil.

Luke Newmeyer
la source
1

Sur Ubuntu 18.04, la seule façon dont j'ai trouvé que l'installation Arduino IDE fonctionnait directement était d'utiliser les étapes de documentation décrites ici:

https://www.arduino.cc/en/Guide/Linux/

Aucun changement de groupe ni autorisation requis.

Cagy79
la source
0

Rien ci-dessus ne m'a aidé. Lorsque j'ai installé à partir d'un fichier, à partir du site officiel, il ne démarre même pas. Ensuite, j'ai installé Arduino IDE à partir de "Linux App Store" et je travaillais, mais j'ai un problème comme notre ami d'en haut. Je l'ai donc désinstallé et installé via un terminal sudo apt install arduinoet maintenant cela fonctionne. À votre santé.

misha666
la source
-1

Ou utilisez simplement la commande chown.

sudo chown <username> /dev/ttyACM*

Cela a fonctionné pour moi

Harry
la source
1
Cette question a été posée à plusieurs reprises sur ce site, et la même réponse a été donnée par un autre utilisateur. Je citerai Chris Stratton sur ce sujet: c'est une mauvaise idée, en particulier sur un linux configuré dynamiquement typique avec udev ou des nœuds de gestion / développement similaires, vous devrez le faire chaque fois que vous connectez l'appareil. Ajoutez plutôt votre utilisateur au groupe approprié, ce qui est une solution durable.