Configuração inicial - permissão negada para a porta usb - ubuntu 14.04


18

Acabei de conectar meu arduino e a luz está acesa, mas o teste de piscada falhou ao carregar. aqui está o meu erro:

Arduino: 1.6.7 (Linux), Placa: "Arduino / Genuino Uno"

O Sketch usa 1.030 bytes (3%) do espaço de armazenamento do programa. O máximo é 32.256 bytes. As variáveis ​​globais usam 9 bytes (0%) de memória dinâmica, deixando 2.039 bytes para variáveis ​​locais. O máximo é 2.048 bytes. avrdude: ser_open (): não é possível abrir o dispositivo "/ dev / ttyUSB0": Permissão negada ioctl ("TIOCMGET"): ioctl inadequado para o dispositivo Problema ao carregar na placa. Consulte http://www.arduino.cc/en/Guide/Trou Troubleshooting# upload para sugestões.

Este relatório teria mais informações com "Mostrar saída detalhada durante a compilação" ativada em Arquivo> Preferências.

usb  ubuntu 


2
@ IgnacioVazquez-Abrams - você pode transformar isso em uma resposta? Estamos tentando obter nossa porcentagem respondida. :) Talvez com um pouco de copiar e colar, por isso não é apenas link.
Nick Gammon

Eu fiz todas as etapas e funcionou na primeira vez. Agora tento fazer o upload do meu segundo programa e recebo esta mensagem 'avrdude: ser_open (): não é possível abrir o dispositivo "/ dev / ttyUSB0": permissão negada' fiz isso: roquet @ roquet-HP-ENVY-x360-m6 -Conversível: ~ $ sudo adduser roquet dialout A roquet' is already a member of discagem do usuário '. roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ sudo chmod a + rw / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ ls -l / dev / ttyUSB * crw -rw-rw- 1 discagem raiz 188, 0 jan 20 13:12 / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ mas ainda recebe a 'permissão denie
Roque Zabalet

Respostas:


25

A partir da documentação :

Abra o Terminal e digite:

ls -l /dev/ttyACM*

você receberá algo como:

crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0

O "0" no final do ACM pode ser um número diferente ou várias entradas podem ser retornadas. Os dados que precisamos são "discagem" (é o proprietário do grupo do arquivo).

Agora só precisamos adicionar nosso usuário ao grupo:

sudo usermod -a -G dialout $USER

então:

sudo chmod a+rw /dev/ttyACM0

Você precisará sair e fazer login novamente para que essa alteração entre em vigor.

Observe que as instruções anteriores são antigas do Ubuntu. Nas distribuições modernas que usam o ConsoleKit, crie o arquivo que /etc/udev/rules.d/01-ttyusb.rulescontém o seguinte, recarregue as regras do udev e reconecte o dispositivo Arduino:

SUBSYSTEMS=="usb-serial", TAG+="uaccess"

Ótima resposta. Em instalações mais recentes, você não precisa recarregar as regras do udev. O Udev observará o /etc/udev/rules.d quanto a alterações. Você precisa recarregar o arduino.
ppareit

@ppareit o que conta como "instalações mais recentes"? Isso não funciona para mim no Ubuntu 16.04 com ou sem recarregar as regras (via sudo udevadm control --reload).
Destino 26/12

1
Eu acho que não funcionou porque a placa é identificada como pertencente ao subsistema "tty" em vez de "usb-serial". De qualquer forma, a criação da seguinte regra do udev funcionou para mim: SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm"onde são retirados (fornecedor) e (produto) lsusbe (serial) da saída de udevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1.
Destino 26/12

Pelo menos com o Ubuntu 16.04, não vi esse problema no Mint 18.1. Fico feliz em saber que você encontrou uma solução!
ppareit

ACERTOU EM CHEIO!!!! UPVOTED. Eu tenho uma distribuição 17.04 e a 1ª solução não foi persistente!
gil tony

3

Tudo que você precisa fazer é adicionar-se ao grupo de discagem, conforme descrito na resposta de Ignacio Vazquez-Abrams. Isso é feito no terminal digitando:

sudo usermod -a -G dialout $USER

Você não precisa usar chmod. Isso fornece acesso de leitura / gravação a todos os usuários e não apenas aos membros do grupo. Antes de tentar se conectar, no entanto, você deve sair e fazer login novamente . Após o login, você será reconhecido como membro do grupo de discagem e poderá abrir o dispositivo.


1

No Ubuntu 18.04, a única maneira de encontrar a instalação do IDE do Arduino imediatamente, foi usando as etapas de documentação descritas aqui:

https://www.arduino.cc/en/Guide/Linux/

Não é necessário alterar grupos nem permissões.


0

Nada acima me ajudou. Quando eu instalo do arquivo, do site oficial, ele nem inicia. Instalei o Arduino IDE da "loja de aplicativos linux" e estava funcionando, mas tenho um problema como o nosso amigo de cima. Então eu desinstalei e instalei via terminal sudo apt install arduinoe agora está funcionando. Felicidades.


-1

Ou apenas use o comando chown.

sudo chown <username> /dev/ttyACM*

Isso funcionou para mim


1
Esta pergunta já foi feita muitas vezes neste site, e a mesma resposta foi dada por outro usuário. Citarei Chris Stratton sobre este assunto: Essa é uma péssima idéia, especialmente em um linux típico configurado dinamicamente com udev ou nós de gerenciamento / dev similares, que você precisará fazer sempre que conectar o dispositivo. Adicione seu usuário ao grupo apropriado, que é uma correção duradoura.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.