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.