Alterando permissões na porta serial

41

Estou usando o Arduino IDE no Ubuntu e estou tendo problemas com a porta serial. Isso funcionou no passado, mas por motivos que podem ser desnecessários, senti a necessidade de alterar a propriedade de alguns dos arquivos da propriedade raiz para a propriedade de meus usuários.

Isso fez o IDE funcionar corretamente, mas perdi a capacidade de usar a porta serial correta. Na pasta dev, a porta que eu preciso está listada como permissão 166. Alguém (que não está mais na área para me ajudar) trocou as permissões para 666, o que fez tudo funcionar gloriosamente.

No entanto, ele foi revertido assim que reiniciei meu computador, e agora tento usar o comando:

sudo chmod 666 ttyACM0

nada acontece. Nenhuma mensagem de erro, mas nenhuma permissão muda.

Como posso alterá-lo e como posso alterá-lo permanentemente?

Peço desculpas se esta pergunta for excessivamente simplista ou incerta, eu sou um noob do Ubuntu, e eu não iria recusar feedback!

    
por Terrik 21.08.2011 / 19:23

5 respostas

66

O problema com as permissões para /dev/ttyACM0 pode ser resolvido permanentemente adicionando-se ao grupo dialout . Você terá que fazer logout e, em seguida, efetuar login novamente antes que a alteração do grupo seja reconhecida.

Você pode fazer isso com sudo usermod -a -G dialout $USER

    
por Rinzwind 21.08.2011 / 19:46
19

Eu não consegui a sugestão de Rinzwind para funcionar, porque ele reclamou que a conta do usuário já existe. Em vez disso, usei esse comando para adicionar um usuário existente ( terrik ) a um grupo existente ( dialout ), conforme descrito no Wiki de Ajuda do Ubuntu .

sudo adduser terrik dialout

Também é útil este comando para listar seus grupos atuais, embora, como diz Rinzwind, você tenha que efetuar logout e login antes que a porta serial comece a deixá-lo entrar.

groups terrik
    
por Don Kirkby 04.06.2012 / 23:33
9

Eu não consegui a resposta de Terrik funcionando, mas eu poderia fazer esse pequeno ajuste no caminho para ttyACM0 .

sudo chmod 666 /dev/ttyACM0

Publicaria como um comentário, mas ainda não tenho privilégios para isso ...

    
por gbmhunter 06.01.2014 / 23:37
5

Outra possibilidade é criar um arquivo de regras no diretório /etc/udev/rules.d/ . Eu tive problema semelhante e criei o arquivo 50-myusb.rules no diretório acima com este conteúdo:

KERNEL=="ttyACM[0-9]*",MODE="0666"

Observe que isso fornecerá qualquer dispositivo conectado às permissões de leitura / gravação do soquete ttyACM. Se você precisar apenas de um dispositivo específico para obter permissões de leitura / gravação, também deverá verificar idVendor e idProduct . Você pode encontrá-los executando o comando lsusb duas vezes, uma vez sem o seu dispositivo conectado e uma vez quando estiver conectado, então observe a linha adicional na saída. Lá você verá algo como Bus 003 Device 005: ID ffff:0005 . Nesse caso, idVendor = ffff e idProduct = 0005 . O seu será diferente. Do que você modifica o arquivo de regras para:

ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"

Agora, apenas este dispositivo recebe as permissões. Leia isto para saber mais sobre como escrever regras do udev.

    
por NonStandardModel 13.06.2016 / 11:30
2

Tente entrar no sistema / usuários e grupos e checkeing a caixa em seu nome de usuário no grupo TTY.

    
por user247020 09.10.2014 / 05:28