'hcitool con' não encontra nenhum dispositivo quando executado no contexto de um script do udev

1

Estou tentando automatizar uma tarefa para configurar um dispositivo bluetooth quando ele estiver conectado ao meu raspberry pi 3 executando raspbian.

Assumindo que $x é o endereço do dispositivo, eu preciso executar os seguintes comandos depois que ele se conectar:

hcitool enc $x off
hcitool sr $x slave

As informações iniciais de conexão Bluetooth (da execução de hcitool con ) são assim:

Connections:
    > ACL $x handle 11 state 1 1m MASTER AUTH ENCRYPT

Depois de executar os dois comandos acima, hcitool con mostra o estado desejado:

Connections:
    > ACL $x handle 11 state 1 1m SLAVE AUTH

Consegui obter uma regra básica do udev para executar um script, mas não tem o efeito desejado.

Aqui está a regra do udev em /etc/udev/rules.d/99-slave.rules

SUBSYSTEM=="hidraw", RUN+="/home/pi/fix-bluetooth.bash"

E o script:

#!/bin/bash
hcitool con >> /tmp/hello_world

Então eu tail -f /tmp/hello_world e plugue / desconecte meu dispositivo bluetooth e é isso que eu vejo:

Connections:
Connections:
Connections:
...

etc.

Eu tentei adicionar sleep por alguns segundos. Eu tentei adicionar sudo. Eu tentei com vários dispositivos Bluetooth conectados. Eu nunca consigo obter hcitool con para produzir nada quando executado como parte de uma regra do udev.

    
por stevesdj 18.05.2018 / 17:52

0 respostas