`hcitool con` findet keine Geräte, wenn es im Kontext eines udev-Skripts ausgeführt wird

381
stevesdj

Ich versuche, eine Aufgabe zu automatisieren, um ein Bluetooth-Gerät zu konfigurieren, wenn es mit meinem Himbeer-Pi 3 verbunden ist, auf dem Raspbian ausgeführt wird.

Angenommen, es $xhandelt sich um die Adresse des Geräts, muss ich nach dem Verbinden die folgenden Befehle ausführen:

hcitool enc $x off hcitool sr $x slave 

Die anfänglichen Bluetooth-Verbindungsinformationen (vom Laufen hcitool con) sehen folgendermaßen aus:

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

Nachdem Sie die beiden obigen Befehle ausgeführt haben, hcitool conwird der gewünschte Status angezeigt:

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

Ich konnte eine grundlegende udev-Regel erhalten, um ein Skript auszuführen, aber es hat nicht den gewünschten Effekt.

Hier ist die udev-Regel unter /etc/udev/rules.d/99-slave.rules

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

Und das Skript:

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

Dann tail -f /tmp/hello_worldstecke ich mein Bluetooth-Gerät ein und wieder aus und das sehe ich:

Connections: Connections: Connections: ... 

usw.

Ich habe sleepein paar Sekunden lang hinzugefügt . Ich habe versucht, Sudo hinzuzufügen. Ich habe es mit mehreren angeschlossenen Bluetooth-Geräten versucht. Ich kann nie etwas hcitool conausgeben, wenn ich als Teil einer Udev-Regel ausgeführt werde.

1

0 Antworten auf die Frage