Sie sind nicht angemeldet.

1

01.10.2009, 15:09

Bluetooth-Eingabegeräte mit bluez verbinden

Seitdem die Pakete "bluez-utils" und "bluez-libs" im neuen "net-wireless/bluez" vereinigt wurden, hatte ich lange Zeit Probleme, meine Bluetooth-Maus zu verbinden. Nach langer Suche im Netz habe ich endlich eine Lösung gefunden. Sie basiert im wesentlichen auf dieser Beschreibung.

Vorab: Bei dieser Lösung ist es nicht notwendig, "net-wireless/bluez" mit dem USE-Flag "old-daemons" zu compilieren! Benötigt wird aber das USE-Flag "test-programs"! In den Beispielen wird vorausgesetzt, dass das Bluetooth-Gerät hci0 ist. Ob das der Fall ist, findet man mit folgendem Befehl heraus:

Quellcode

1
$ hcitool dev


1.) Bluetooth-Adresse des Gerätes herausfinden

Wenn die Adresse nicht auf dem Gerät steht (wie es z. B. bei meiner Bluetooth-Maus ist), erhält man sie durch folgende Eingabe auf der Konsole:

Quellcode

1
$ hcitool scan

Das Ergebnis sieht beispielsweise so aus:

Quellcode

1
2
3
$ hcitool scan
Scanning ...
        00:07:61:A7:56:4B       Bluetooth Laser Travel Mouse

Die Bluetooth-Adresse ist also in diesem Beispiel 00:07:61:A7:56:4B
Eventuell sind hier mehrere Versuche nötig. Ich musste auch den "connect"-Button der Maus drücken, also das Gerät "sichtbar" machen, damit es gefunden wurde.

2.) Gerät paaren

Hier werden die durch das USE-Flag "test-programs" installierten Programme benötigt.

Quellcode

1
$ simple-agent hci0 <Bluetooth-Adresse>

Dabei wird dann die korrekte PIN abgefragt, im Beispiel "0000". Das Ergebnis sieht in etwa so aus:

Quellcode

1
2
3
4
5
$ simple-agent hci0 00:07:61:A7:56:4B                    
RequestPinCode (/org/bluez/3070/hci0/dev_00_07_61_A7_56_4B)                                           
Enter PIN Code: 0000                                                                                  
Release                                                                                               
New device (/org/bluez/3070/hci0/dev_00_07_61_A7_56_4B)

Den angegebenen Pfad sollte man sich merken! In diesem Beispiel "/org/bluez/3070/hci0/dev_00_07_61_A7_56_4B".

Das Pairing kann mit diesem Befehl wieder gelöst werden:

Quellcode

1
$ simple-agent hci0 <Bluetooth-Adresse> remove

Um den Pfad gepaarter Geräte später herauszufinden kann man folgendes eingeben:

Quellcode

1
$ bluez-test-device list


3.) Das Gerät als bekannt bzw. vertraut registrieren

Quellcode

1
$ bluez-test-device trusted <Bluetooth-Adresse> yes

Ob ein Gerät bereits vertraut ist erkennt man mit:

Quellcode

1
$ bluez-test-device trusted <Bluetooth-Adresse>

Das Ergebnis ist "1" für ja und "0" für nein.

4.) Jetzt noch mit dem Gerät verbinden

Dieser Befehl ist für jede Geräte-Familie unterschiedlich, z. B. für Eingabegeräte (wie z. B. Maus). Benötigt wird der vorher ermittelte Pfad!

Quellcode

1
$ dbus-send --system --dest=org.bluez --print-reply <Pfad> org.bluez.Input.Connect


That's it!

Auch nach längeren Ruhephasen oder einem Neustart ist meine Bluetooth-Maus immer sofort einsatzbereit!

Viel Spaß mit den Bluetooth-Geräten wünscht
Ignatz