Prima configurazione - permesso negato alla porta USB - Ubuntu 14.04


18

Ho appena collegato il mio arduino e la luce è accesa, ma il test del lampeggiamento non è riuscito a caricarsi. ecco il mio errore:

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

Sketch utilizza 1.030 byte (3%) di spazio di archiviazione del programma. Il massimo è 32.256 byte. Le variabili globali utilizzano 9 byte (0%) di memoria dinamica, lasciando 2.039 byte per le variabili locali. Il numero massimo è di 2.048 byte. avrdude: ser_open (): impossibile aprire il dispositivo "/ dev / ttyUSB0": autorizzazione negata ioctl ("TIOCMGET"): ioctl inappropriato per il dispositivo Problema nel caricamento sulla scheda. Vedi http://www.arduino.cc/en/Guide/Tro troubleshooting # upload per suggerimenti.

Questo rapporto avrebbe maggiori informazioni con "Mostra output dettagliato durante la compilazione" abilitato in File> Preferenze.

usb  ubuntu 


2
@ IgnacioVazquez-Abrams - puoi trasformarlo in una risposta? Stiamo cercando di ottenere una risposta alla nostra percentuale. :) Forse con un po 'di copia e incolla, quindi non è solo link.
Nick Gammon

Ho fatto tutti i passaggi e ha funzionato la prima volta. Ora provo a caricare il mio secondo programma e ricevo questo messaggio 'avrdude: ser_open (): impossibile aprire il dispositivo "/ dev / ttyUSB0": autorizzazione negata' ho fatto questo: roquet @ roquet-HP-ENVY-x360-m6 -Convertible: ~ $ sudo adduser roquet dialout L'utente 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 radice dialout 188, 0 gen 20 13:12 / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ ma ottieni ancora il permesso di negazione
Roque Zabalet

Risposte:


26

Dalla documentazione :

Apri Terminale e digita:

ls -l /dev/ttyACM*

otterrai qualcosa come:

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

Lo "0" alla fine di ACM potrebbe essere un numero diverso oppure potrebbero essere restituite più voci. I dati di cui abbiamo bisogno sono "dialout" (è il proprietario del gruppo del file).

Ora non ci resta che aggiungere il nostro utente al gruppo:

sudo usermod -a -G dialout $USER

poi:

sudo chmod a+rw /dev/ttyACM0

Sarà necessario disconnettersi e riconnettersi per rendere effettiva questa modifica.

Nota che le precedenti sono le vecchie istruzioni di Ubuntu. Nelle distribuzioni moderne che utilizzano ConsoleKit creare il file /etc/udev/rules.d/01-ttyusb.rulescontenente quanto segue, quindi ricaricare le regole udev e ricollegare il dispositivo Arduino:

SUBSYSTEMS=="usb-serial", TAG+="uaccess"

Bella risposta. Nelle installazioni più recenti non è necessario ricaricare le regole udev. Udev guarderà /etc/udev/rules.d per le modifiche. Devi ricollocare Arduino.
ppareit,

@ppareit ciò che conta come "installazioni più recenti"? Questo non funziona per me su Ubuntu 16.04 con o senza ricaricare le regole (via sudo udevadm control --reload).
Desty il

1
Penso che non abbia funzionato perché la scheda è identificata come appartenente al sottosistema "tty" anziché "usb-serial". Ad ogni modo, la creazione della seguente regola udev ha funzionato per me:, SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm"dove (fornitore) e (prodotto) sono presi da lsusb(seriale) e sono presi dall'output di udevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1.
Desty il

Almeno con Ubuntu 16.04, non ho visto questo problema su Mint 18.1. Sono contento di sapere che hai trovato una soluzione!
ppareit,

AZZECCATO!!!! Upvoted. Ho una distro 17.04 e la prima soluzione non era persistente!
tony gil,

3

Tutto quello che devi fare è aggiungerti al gruppo di dialout come descritto nella risposta di Ignacio Vazquez-Abrams. Questo viene fatto nel terminale digitando:

sudo usermod -a -G dialout $USER

Non è necessario per l'uso chmod. Ciò consente l'accesso in lettura / scrittura a tutti gli utenti e non solo ai membri del gruppo. Prima di tentare di connettersi, tuttavia, è necessario disconnettersi e riconnettersi . Una volta effettuato l'accesso, sarai riconosciuto come membro del gruppo dialout e sarai in grado di aprire il dispositivo.


1

Su Ubuntu 18.04, l'unico modo in cui ho trovato l'installazione IDE di Arduino per funzionare immediatamente è stato usare i passaggi della documentazione descritti qui:

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

Non sono richiesti gruppi di modifica né autorizzazioni.


0

Niente sopra mi ha aiutato. Quando ho installato dal file, dal sito ufficiale, non si avvia nemmeno. Quindi ho installato Arduino IDE da "linux app store" e funzionava ma ho un problema come il nostro amico dall'alto. Quindi l'ho disinstallato e installato tramite terminale sudo apt install arduinoe ora funziona. Saluti.


-1

O semplicemente usa il comando chown.

sudo chown <username> /dev/ttyACM*

Questo ha funzionato per me


1
Questa domanda è stata posta molte volte in questo sito e la stessa risposta è stata data da un altro utente. Citerò Chris Stratton su questo subjedt: questa è una cattiva idea, in particolare su un tipico linux configurato dinamicamente con udev o nodi simili di gestione / sviluppo che dovrai fare ogni volta che colleghi il dispositivo. Aggiungi invece il tuo utente al gruppo appropriato, che è una soluzione duratura.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.