Estou trabalhando com um quadro negro de beaglebone ( ubuntu release para arquitetura ARM), que possui algumas entradas / saídas de propósito geral ( GPIO ) interface para leitura de sensores / motores de acionamento, etc., que podem ser configurados através da 'exportação' do pino desejado usando o seguinte comando:
bbb@arm:/sys/class/gpio$echo 30 > export
aqui a pasta padrão e seu conteúdo:
bbb@arm:~$ ls -l /sys/class/gpio/
total 0
-rwxrwxrwx 1 bbb users 4096 Jan 6 12:13 export
lrwxrwxrwx 1 bbb users 0 Jan 6 12:13 gpiochip0 -> ../../devices/platform/ocp/44e07000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 bbb users 0 Jan 6 12:13 gpiochip32 -> ../../devices/platform/ocp/4804c000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 bbb users 0 Jan 6 12:13 gpiochip64 -> ../../devices/platform/ocp/481ac000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 bbb users 0 Jan 6 12:13 gpiochip96 -> ../../devices/platform/ocp/481ae000.gpio/gpio/gpiochip96
-rwxrwxrwx 1 bbb users 4096 Jan 6 12:13 unexport
Como quero usar esses pinos como um usuário normal, tentei configurar algumas regras para alterar o grupo proprietário e do usuário por meio da seguinte regra:
bbb@arm:~$ cat /etc/udev/rules.d/99-gpio.rules
KERNEL=="gpio*", SUBSYSTEM=="gpio", PROGRAM="/bin/sh -c 'chown -R bbb:users /sys/class/gpio; chmod -R 777 /sys/class/gpio'"
KERNEL=="gpio*", SUBSYSTEM=="gpio", PROGRAM="/bin/sh -c 'chown -R bbb:users /sys/class/virtual/gpio; chmod -R 777 /sys/class/virtual/gpio'"
Funciona muito bem e a regra é carregada durante a inicialização.
MAS se eu exportar um pin, que eu quero usar:
bbb@arm:/sys/class/gpio$ echo 30 > export
bbb@arm:/sys/class/gpio$ cd gpio30
bbb@arm:/sys/class/gpio/gpio30$ ls -l
total 0
-rw-r--r-- 1 root root 4096 Jan 7 16:16 active_low
lrwxrwxrwx 1 root root 0 Jan 7 16:16 device -> ../../../44e07000.gpio
-rw-r--r-- 1 root root 4096 Jan 7 16:16 direction
-rw-r--r-- 1 root root 4096 Jan 7 16:16 edge
drwxr-xr-x 2 root root 0 Jan 7 16:16 power
lrwxrwxrwx 1 root root 0 Jan 7 16:16 subsystem -> ../../../../../../class/gpio
-rw-r--r-- 1 root root 4096 Jan 7 16:15 uevent
-rw-r--r-- 1 root root 4096 Jan 7 16:16 value
Eu tenho o problema de que todos os subdiretórios e pastas ainda têm raiz como um proprietário e como um grupo. Então não consigo configurar o single pin (gpio) usando minha conta de usuário.
Como devo modificar minhas regras para obter tudo que a nova pasta exportada sob o nome do meu usuário (bbb) e grupo (usuários) ?????