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
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:
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 .
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.
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.