Configuración por primera vez: permiso denegado a puerto usb- ubuntu 14.04

18

Acabo de enchufar mi arduino y la luz está encendida, pero la prueba de parpadeo no se pudo cargar. Aquí está mi error:

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

Sketch utiliza 1.030 bytes (3%) del espacio de almacenamiento del programa. El máximo es 32,256 bytes. Las variables globales usan 9 bytes (0%) de memoria dinámica, dejando 2,039 bytes para las variables locales. El máximo es de 2.048 bytes. avrdude: ser_open (): no se puede abrir el dispositivo "/ dev / ttyUSB0": Permiso denegado ioctl ("TIOCMGET"): ioctl inapropiado para el dispositivo Problema al subir a la placa. Consulte http://www.arduino.cc/en/Guide/Troubleshooting#upload para obtener sugerencias.

Este informe tendría más información con "Mostrar resultados detallados durante la compilación" habilitado en Archivo> Preferencias.


fuente
arduino.cc/en/Guide/Linux#toc9
Ignacio Vazquez-Abrams
2
@ IgnacioVazquez-Abrams: ¿puede convertir eso en una respuesta? Estamos tratando de que nuestro porcentaje sea respondido. :) Tal vez con un poco de copiar y pegar, por lo que no es solo enlace.
Nick Gammon
Hice todos los pasos y funcionó la primera vez. Ahora trato de cargar mi segundo programa y aparece este mensaje 'avrdude: ser_open (): no se puede abrir el dispositivo "/ dev / ttyUSB0": Permiso denegado' hice esto: roquet @ roquet-HP-ENVY-x360-m6 -Convertible: ~ $ sudo adduser roquet dialout El usuario 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 discado raíz 188, 0 20 de enero 13:12 / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ pero aún así obtener el 'permiso denegado
Roque Zabalet

Respuestas:

26

De la documentación :

Abra la Terminal y escriba:

ls -l /dev/ttyACM*

obtendrás algo como:

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

El "0" al final de ACM puede ser un número diferente o se pueden devolver varias entradas. Los datos que necesitamos son "marcado" (es el propietario del grupo del archivo).

Ahora solo necesitamos agregar a nuestro usuario al grupo:

sudo usermod -a -G dialout $USER

luego:

sudo chmod a+rw /dev/ttyACM0

Deberá cerrar sesión e iniciar sesión nuevamente para que este cambio surta efecto.

Tenga en cuenta que lo anterior son viejas instrucciones de Ubuntu. En las distribuciones modernas que usan ConsoleKit, cree el archivo que /etc/udev/rules.d/01-ttyusb.rulescontiene lo siguiente y luego vuelva a cargar las reglas de udev y vuelva a conectar el dispositivo Arduino:

SUBSYSTEMS=="usb-serial", TAG+="uaccess"
Ignacio Vazquez-Abrams
fuente
Gran respuesta. En las instalaciones más nuevas no tiene que volver a cargar las reglas de udev. Udev observará /etc/udev/rules.d para ver los cambios. Tienes que volver a enchufar el arduino.
ppareit
@ppareit ¿qué cuenta como "nuevas instalaciones"? Esto no funciona para mí en Ubuntu 16.04 con o sin recargar las reglas (vía sudo udevadm control --reload).
Desty
1
Creo que no funcionó porque la placa se identifica como perteneciente al subsistema "tty" en lugar de "usb-serial". De todos modos, la creación de la siguiente regla de udev funcionó para mí en su lugar:, de SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm"dónde (proveedor) y (producto) se toman lsusby (serial) se toma de la salida de udevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1.
Desty
Al menos con Ubuntu 16.04, no vi este problema en Mint 18.1. ¡Me alegra saber que has encontrado una solución!
ppareit
¡¡¡¡JUSTO EN EL CLAVO!!!! VOTADO ¡Tengo una distribución de 17.04 y la primera solución no fue persistente!
Tony Gil
3

Todo lo que necesita hacer es agregarse al grupo de marcado como se describe en la respuesta de Ignacio Vázquez-Abrams. Esto se hace en la terminal escribiendo:

sudo usermod -a -G dialout $USER

No necesitas usar chmod. Esto proporciona acceso de lectura / escritura a todos los usuarios y no solo a los miembros del grupo. Sin embargo, antes de intentar conectarse, debe cerrar sesión y volver a iniciarla . Una vez que vuelva a iniciar sesión, será reconocido como miembro del grupo de marcación y podrá abrir el dispositivo.

Luke Newmeyer
fuente
1

En Ubuntu 18.04, la única forma en que encontré que la instalación de Arduino IDE funcionaba directamente, fue usando los pasos de documentación descritos aquí:

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

No se requieren grupos cambiantes ni permisos.

Cagy79
fuente
0

Nada de lo anterior me ha ayudado. Cuando lo he instalado desde el archivo, desde el sitio oficial, ni siquiera se inicia. Luego instalé Arduino IDE desde la "tienda de aplicaciones de Linux" y estaba trabajando pero tengo un problema como nuestro amigo desde arriba. Así que lo desinstalé e instalé a través de la terminal sudo apt install arduinoy ahora está funcionando. Salud.

misha666
fuente
-1

O simplemente use el comando chown.

sudo chown <username> /dev/ttyACM*

Esto funciono para mi

Harry
fuente
1
Esta pregunta se ha hecho muchas veces en este sitio, y la misma respuesta ha sido dada por otro usuario. Citaré a Chris Stratton en este tema: esta es una mala idea, en particular en un linux típico configurado dinámicamente con udev o nodos de administración / desarrollo similares, tendrá que hacerlo cada vez que conecte el dispositivo. Agregue su usuario al grupo apropiado, lo cual es una solución duradera.