Arduino - Porta serial acessível a todos os usuários
Dica publicada em Arduino / Introdução
Arduino - Porta serial acessível a todos os usuários
Ao conectar uma placa Arduino ao PC ela é reconhecida como porta serial. No GNU/Linux as portas seriais são criadas em /dev/ttyACM*, podendo ser ttyACM0, ttyACM1 etc.
O programa responsável por criar novos dispositivos no sistema é o udev. Por padrão ele cria uma porta serial com as seguintes permissões (0660):
ls -lh /dev/ttyACM0
crw-rw---- 1 root dialout
Neste cenário é necessário adicionar cada usuário que precisa ter acesso à porta serial ao grupo "dialout". Ou não...
Vou mostrar minha "gambiarra". No caso fiz com que o udev crie as portas seriais com permissão de leitura e escrita para todos (0666):
cd /etc/udev/rules.d
$ sudo vim 999-minhas-regras.rules
Simples assim! Criei uma regra personalizada no udev dizendo que quando for criado um novo dispositivo de ttyACM0 à ttyACM09, ele deve ter permissão 0666.
Conecte a placa do Arduino novamente e faça o teste:
ls -lh /dev/ttyACM0
crw-rw-rw- 1 root dialout
O mesmo conceito serve pra qualquer dispositivo de hardware, cabe a você adaptar a regra.
Maiores informações:
man udev
Exemplos de regras:
cd /lib/udev/rules.d/
$ ls
O programa responsável por criar novos dispositivos no sistema é o udev. Por padrão ele cria uma porta serial com as seguintes permissões (0660):
ls -lh /dev/ttyACM0
crw-rw---- 1 root dialout
Neste cenário é necessário adicionar cada usuário que precisa ter acesso à porta serial ao grupo "dialout". Ou não...
Vou mostrar minha "gambiarra". No caso fiz com que o udev crie as portas seriais com permissão de leitura e escrita para todos (0666):
cd /etc/udev/rules.d
$ sudo vim 999-minhas-regras.rules
KERNEL=="ttyACM[0-9]", MODE="0666"
Simples assim! Criei uma regra personalizada no udev dizendo que quando for criado um novo dispositivo de ttyACM0 à ttyACM09, ele deve ter permissão 0666.
Conecte a placa do Arduino novamente e faça o teste:
ls -lh /dev/ttyACM0
crw-rw-rw- 1 root dialout
O mesmo conceito serve pra qualquer dispositivo de hardware, cabe a você adaptar a regra.
Maiores informações:
man udev
Exemplos de regras:
cd /lib/udev/rules.d/
$ ls