Estou tentando executar um script automaticamente logo após a conexão de um determinado dispositivo bluetooth. Para isso, tentei criar uma nova regra UDEV. O problema que encontro é que minha regra não é executada ao estabelecer a conexão.
A partir de agora, minha regra contém apenas o endereço MAC do dispositivo.
ACTION=="add", SUBSYSTEM=="bluetooth", ATTRS{address}=="a0:b1:c2:e3:f4:56", RUN+="/home/myhome/my_script"
Como posso encontrar mais detalhes do dispositivo para adicioná-los à regra?
Quando o dispositivo está conectado, posso ver o seguinte evento UDEV:
$ udevadm monitor
UDEV [7704849.324977] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.0/bluetooth/hci0/hci0:12 (bluetooth)
Existe alguma informação no evento acima que eu possa aproveitar?
Eu coloco a regra em ambos os locais de regras UDEV /etc/udev/rules.d/
e /lib/udev/rules.d/
, mas ainda assim ela não é executada. Estou em um sistema Linux Mint.
A regra tem as mesmas permissões que todas as outras regras no diretório:
-rw-r--r-- 1 root root 369 Oct 17 13:07 50-my_bluetooth_rule.rules
Eu também brinquei com o número da regra entre 50 e 90. Ainda assim, sem sucesso.
Use
sudo tail -f /var/log/syslog
para obteridVendor
eidProduct
escrever a regra do udev da/etc/udev/rules.d/50-my_bluetooth_rule.rules
seguinte maneira:Corre:
Reconecte seu dispositivo bluetooth. Você pode usar
logger
em seu script bash para escrever mensagens em arquivossyslog
.Eu tive um problema parecido. Eu resolvi isso ouvindo
dbus-monitor
e executando meu script em um evento Bluetooth específico. Em particular,No meu caso, o problema era que eu tinha que usar
ATTRS{name}
em vez deATTRS{address}
. Eu descobri isso emitindo:Mais informações aqui .