Bluetooth 장치가 연결되면 스크립트 실행

Bluetooth 장치가 연결되면 스크립트 실행

특정 블루투스 장치가 연결되자마자 자동으로 스크립트를 실행하려고 합니다. 이를 위해 새로운 UDEV 규칙을 만들어 보았습니다. 내가 겪고 있는 문제는 연결이 설정될 때 내 규칙이 실행되지 않는다는 것입니다.

현재 내 규칙에는 장치의 MAC 주소만 포함됩니다.

ACTION=="add", SUBSYSTEM=="bluetooth", ATTRS{address}=="a0:b1:c2:e3:f4:56", RUN+="/home/myhome/my_script"

규칙에 추가할 수 있도록 더 많은 장치 세부 정보를 찾으려면 어떻게 해야 합니까?

장치를 연결한 후 다음 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)

위 활동에서 얻을 수 있는 정보가 있습니까?

UDEV 규칙 위치에 규칙을 배치했지만 /etc/udev/rules.d/여전히 /lib/udev/rules.d/실행되지 않았습니다. 저는 Linux Mint 시스템을 사용하고 있습니다.

이 규칙은 디렉터리의 다른 모든 규칙과 동일한 권한을 갖습니다.

-rw-r--r-- 1 root root  369 Oct 17 13:07 50-my_bluetooth_rule.rules

또한 50에서 90 사이의 규칙 번호를 시도해 보았습니다. 아직도 성공하지 못했습니다.

답변1

다음과 같이 udev 규칙을 sudo tail -f /var/log/syslog가져오고 idVendor작성 하는 데 사용됩니다 .idProduct/etc/udev/rules.d/50-my_bluetooth_rule.rules

ACTION=="add" , SUBSYSTEM=="usb", ATTR{idVendor}=="xxx", ATTR{idProduct}=="yyy", RUN+="/home/myhome/my_script"

달리기:

sudo service udev restart
sudo tail -f /var/log/syslog

Bluetooth 장치를 다시 연결하십시오. logger를 사용하여 bash 스크립트에 메시지를 작성할 수 있습니다 syslog.

답변2

ATTRS{name}내 경우에는 대신 사용해야 한다는 문제가 있었습니다 ATTRS{address}. 다음을 게시하여 이 사실을 알았습니다.

udevadm info -ap /devices/virtual/input/input160/event6

추가 정보여기.

답변3

비슷한 문제가 있습니다. dbus-monitor특정 블루투스 이벤트에서 스크립트를 듣고 실행하여 이 문제를 해결했습니다 . 특히,

dbus-monitor "interface='org.blueman.Applet',member='MenuChanged'"|
while read -r line; do

notify-send 'my bluetooth keyboard has just connected! High time to run my script'

./my_script.sh

done

관련 정보