Carregar esboços simples parece funcionar quando executo o programa Arduino como root ( sudo
). Eu gostaria de executá-lo como um usuário comum. Alguém já enfrentou o mesmo problema antes e o corrigiu?
Aqui está o que eu obtive de lsusb
:
$ lsusb
Bus 002 Device 022: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
E o programa Arduino o identifica como /dev/ttyACM0
. Aqui estão suas permissões:
$ ls -l /dev/ttyACM0
crw-rw---T 1 root dialout 166, 0 Mar 14 22:03 /dev/ttyACM0
Aqui está a saída de id
groups=1000(abhiram),20(dialout),24(cdrom),25(floppy),29(audio),
30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),112(netdev)
Quando carrego um esboço dos exemplos, como usuário comum, encontro este erro:
avrdude:stk500_recv(): programmer not responding
Todas as sugestões são bem-vindas.
arduino-uno
arduino-ide
linux
feverDream
fonte
fonte
Preferences
menu.dmesg
arquivo de dispositivo registrado./dev/ttyACM0: USB ACM device
. Então, isso não me parece um problema. Por outro lado, os logs de compilação e upload (precisavam habilitá-los nas Preferências), parecem promissores. Eu só não consigo copiá-los a partir do programa arduino :( (pode ser que eles estão escrevendo a um algum lugar do arquivo?).Respostas:
A solução mais fácil é se adicionar ao
dialout
grupo.Primeiro, anote a saída de
id
. Salve-o em um arquivo (não no/tmp
que é limpo em uma reinicialização). Se você observar a saída, notará que seu usuário está inscrito em vários grupos e esses grupos representam privilégios extras no sistema. Por padrão, o seu Arduino é atribuído ao grupodialout
porque se registra como uma interface serial e, antigamente, eles costumavam ser usados para ... discar usando um modem.Para se adicionar ao
dialout
grupo, emita o seguinte comando:Não esqueça a
-a
bandeira (para anexar grupos em vez de substituir) ou você terá problemas totalmente diferentes. Essa é a razão para fazer uma cópia daid
saída em um arquivo. Portanto, caso você estrague tudo, pelo menos você sabe como seu usuário estava configurado antes.Em seguida, efetue logout e logon e deverá funcionar a partir desse ponto.
Opcionalmente, você pode verificar a saída em
id
relação à saída que você salvou anteriormente.fonte
dialout
grupo, mas o problema ainda parece persistir. Modifiquei minha pergunta com a saída doid
comandocat /dev/ttyACM0
? Isso gera um erro?cat
o faço .O conselho muitas vezes repetido de "simplesmente
sudo usermod -aG dialout <username>
nunca funcionou para mim, e eu finalmente descobri o porquê. Na minha máquina,/dev/ttyUSB0
é do gruposerial
e nãodialout
, então adicionar meu nome de usuáriodialout
não fez nada.Finalmente:
sudo usermod -aG <group-name> <username>
consertei para mim.Embaraçosamente, isso também é mencionado explicitamente aqui em "SET THE PERMISSION". Suspiro.
fonte
Isso acontece comigo. No meu caso, eu atualizei a versão do arduino e parece que o arquivo de preferências estava causando o problema. Apenas exclua o arquivo ~ / .arduino / preferências.txt (com o Arduino IDE fechado).
Passos:
execute isto:
rm ~ / .arduino / preferências.txt
Iniciar o IDE do Arduino
Isso funcionou para mim, espero que funcione para outra pessoa. Estou usando o Linux Mint 17 e atualizei do Arduino 1.05 para o Arduino 1.06 extraindo o IDE do Arduino. Não estou usando o que está no repositório. (Obviamente, depois de adicionar seu usuário ao grupo correspondente, conforme mencionado por outros, mas se isso não ajudar você a tentar isso)
fonte