1

Я пытаюсь автоматизировать задачу по настройке устройства Bluetooth, когда оно подключено к моей Raspberry Pi 3 под управлением Rasbian.

Предполагая, что $x является адресом устройства, мне нужно выполнить следующие команды после его подключения:

hcitool enc $x off
hcitool sr $x slave

Начальная информация о подключении по Bluetooth (при запуске hcitool con) выглядит следующим образом:

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

И после выполнения вышеупомянутых двух команд, hcitool con показывает желаемое состояние:

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

Мне удалось получить базовое правило udev для выполнения скрипта, но оно не дало желаемого эффекта.

Вот правило udev по адресу /etc/udev/rules.d/99-slave.rules

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

И сценарий:

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

Затем я подключаю tail -f /tmp/hello_world и подключаю / отключаю устройство Bluetooth, и вот что я вижу:

Connections:
Connections:
Connections:
...

и т.п.

Я пытался добавить sleep на несколько секунд. Я пытался добавить sudo. Я пробовал это с несколькими подключенными устройствами Bluetooth. Я никогда не могу заставить hcitool con выводить что-либо, когда выполняется как часть правила udev.

0