Permissoes para porta serial negada

System wide configuration file is "/home/taliban/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
User configuration file is "/home/taliban/.avrduderc"
avrdude: warning at /home/taliban/.avrduderc:5: programmer arduino overwrites previous definition /home/taliban/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf:361.

     Using Port                    : /dev/ttyACM0
     Using Programmer              : avr109
     Overriding Baud Rate          : 57600

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

avrdude done. Thank you.

Upload error: Error: 2 UNKNOWN: uploading error: uploading error: exit status 1

ja tentei ceder as permissoes com chmod mas nao da certo, alguem pode me ajudar ?

Olá,

Qual a distribuição Linux que usas? Colocaste o teu utilizador no grupo do dispositivo?

Se ainda não, então, para dar acesso ao teu utilizador ao porto série verifica a que grupo o dispositivo pertence com o comando:

ls -l /dev/ttyACM*

Dependendo da distribuição, pode surgir:

crw-rw---- 1 root dialout 188, 0 Aug  3 00:01 /dev/ttyACM0

ou

crw-rw---- 1 root uucp 188, 0 Aug  3 00:01 /dev/ttyACM0

Depois é só adicionar o teu utilizador ao grupo do dispositivo: dialout ou uucp, conforme o que tiver surgido no output do comando anterior. Exemplo de adição do utilizador ao grupo:

sudo usermod -aG dialout <username>

ou

sudo usermod -aG uucp <username>

Verifica se o teu utilizador ficou nesse grupo listando os grupos do utilizador com o comando:

groups

eu uso garuda linux, derivado do arch, essa e a saida de ls -l, crw-rw---- 166,0 root 2 ago 21:58  /dev/ttyACM0.
ja tentei adcionar ao dialout, mas nessa distro nao tem, entao eu usava sudo chmod 666 ttyACM*, antes funcionava, mas agora toda vez que reinicio volta ao padrao como se nao chegasse a salvar o comando dado antes

Ao responderes, quando colocas código ou output usa o botão </> (Preformatted text) ou CTrl+E. Facilita a vida a quem lê a mensagem e a quem responde :wink: .

O teu comando ls não está a mostrar a que grupo pertence o ficheiro (neste caso, o dispositivo). Deves ter um atalho (alias) para o ls definido algures que suprime a visualização do grupo. Dependendo da shell que usas esse atalho pode estar definido num dos ficheiros:

Bash – ~/.bashrc
ZSH – ~/.zshrc
Fish – ~/.config/fish/config.fish

Se fosse eu removeria esse atalho para permitir que o ls mostre o grupo!

Se essa distribuição é baseada no Arch Linux então provavelmente os ficheiros ttyACM* pertencem ao grupo uucp. Eu uso o Arch Linux, adicionei o meu username a esse grupo e passei a ter acesso a esses dispositivos sem mudar para root.

Adiciona o teu username ao grupo uucp:

sudo usermod -aG uucp username

ahhhh, eu fiz como ce falou, consegui certinho tambem, mas eu ainda fui fucar mais um pouco, e diz de outro jeito tambem, fui em /dev/ e mudei as permissoes dos tty*, e tambem deu certo.

agradeco a todos pelo tempo que dedicaram ao me ajudarem.