Si desde el IDE de Arduino tienes problemas con tu usuario para acceder al puerto USB donde está conectada tu placa Arduino, tal vez sea porque tu usuario no tenga los permisos adecuados.

arduino ide usb

Para solucionar el problema debemos darle los permisos a los grupos: dialout y uucp. El grupo dialout es necesario para los dispositivos que se conectan por /dev/ttyACMX (Arduino UNO, por ejemplo). Y el grupo uucp es para los dispositivos que utilizan /dev/ttyUSBX (normalmente por placas del estilo Arduino nano, mini,...).

Le podemos dar a nuestro usuario ambos permisos y listo!!!, así no nos preocupamos mas. Una forma sería:

sudo usermod -a -G dialout usuario
sudo usermod -a -G uucp usuario

Ahora necesitaremos dar acceso a nuestro usuario al fichero de bloqueos. Es un directorio se crea en tiempo de arranque según las especificaciones del fichero /usr/lib/tmpfiles.d/legacy.conf y únicamente se tiene acceso mediante root, por lo que deberemos modificarlo para especificar el grupo lock y luego dar permisos a nuestro usuario.

Podemos ver los permisos que suele tener:

ls -ld /run/lock
drwxrwxrwt 3 root root 80 abr  1 19:08 /run/lock

Ahora modificamos el fichero de configuración legacy.conf de la siguiente forma:

Siendo root copiamos a /etc/tmpfiles.d/ el fichero legacy.conf y editamos esa copia:

cp /usr/lib/tmpfiles.d/legacy.conf /etc/tmpfiles.d/
nano /etc/tmpfiles.d/legacy.conf

Cambiando la linea donde se define el usuario y grupo del directorio /run/lock:

#d /run/lock/lockdev 0775 root root -
d /run/lock/lockdev 0775 root lock -

Ahora le asignamos a nuestro usuario el grupo lock:

sudo usermod -a -G lock usuario

Si nos dice que no existe el grupo lock, lo podemos crear previamente así:

addgroup lock

Reiniciamos y si todo ha ido bien, deberíamos pasar de esto:

ls -ld /run/lock
drwxrwxrwt 3 root root 80 abr  1 19:08 /run/lock

a esto:

ls -ld /run/lock
drwxrwxrwt 3 root lock 80 abr  1 21:08 /run/lock