Esto ocurre porque el IDE no tiene suficientes permisos para acceder al dispositivo Arduino.
Permisos
Podemos mirar el dispositivo Arduino ejecutando
ls -l /dev/ttyACM*
en un terminal. La salida se parece principalmente a esto:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
El ‘0’ al final de ‘ACM’ puede ser diferente, y pueden aparecer varias entradas, pero las partes en las que tenemos que centrarnos son la cadena de letras y guiones delante, y los dos nombres root
y dialout
.
El primer nombre root
es el propietario del dispositivo, y dialout
es el grupo de propietarios del dispositivo.
Las letras y guiones delante, empezando por la ‘c’, representan los permisos del dispositivo por usuario: – El primer triplete rw-
significa que el propietario (root
) puede leer y escribir en este dispositivo – El segundo triplete rw-
significa que los miembros del grupo propietario (dialout
) pueden leer y escribir en este dispositivo – El tercer triplete ---
significa que los demás usuarios no tienen ningún permiso (lo que significa que nadie más puede leer y escribir en el dispositivo)
En resumen, nadie excepto root
y los miembros de dialout
pueden hacer nada con el Arduino; como no estamos ejecutando el IDE como root
o como miembro de dialout
, el IDE no puede acceder al Arduino por falta de permisos.
Añadirse al grupo de marcado
¡Pero espera! Antes, cuando estábamos lanzando el IDE, ¡nos añadimos al grupo dialout
!
Entonces, ¿por qué el IDE sigue sin tener permiso para acceder al Arduino?
Los cambios que hace el prompt no se aplican hasta que cerramos la sesión y volvemos a entrar, así que tenemos que guardar nuestro trabajo, cerrar la sesión y volver a entrar.
Después de volver a iniciar la sesión y lanzar el IDE de Arduino, la opción de puerto serie debería estar disponible; cambiar eso, y deberíamos ser capaces de cargar el código en el Arduino.