Bluetooth
Dieser Artikel lehnt sich an den Artikel Bluetooth aus der englischen Archlinux-Wiki an, behandelt in erster Linie jedoch den Dateitransfer zwischen Mobiltelefonen und Computern mittels OBEX.
Geräte koppeln
Damit eine Verbindung nicht von jedem einfach so aufgebaut werden kann, müssen Bluetooth-Geräte oft mit einem Passkey gekoppelt werden. Der Vorgang läuft in etwa so ab:
- Der Client will eine Verbindung zum Server aufbauen (zum Beispiel Computer->Mobiltelefon)
- Der Client und der Server bitten um die Eingabe des Passkeys
- Diese werden verglichen - wenn sie gleich sind, so wird das Gerät gekoppelt, ansonsten wird die Verbindung abgebrochen
Das bluez-utils Paket stellt uns wieder ein praktisches Tool namens passkey-agent für die Übermittlung des Passkeys zur Verfügung.
Nutzeranmerkung: Anscheinend ist passkey-agent derzeit nicht in bluez enthalten, es klappt auch mit bluez-simple-agent, siehe englische Anleitung.
$ passkey-agent Bluetooth passkey agent ver 3.32 Usage: passkey-agent [--default] [--path agent-path] <passkey> [address]
Um einen default Key für alle Geräte zu verwenden benutzt man einfach folgenden Befehl:
$ passkey-agent --default xxx &
Wenn man nur mit einem speziellen Gerät koppeln will kann man auch die jeweilige MAC-Adresse verwenden
$ passkey-agent --default xxx MAC &
Wenn man ein Mobiltelefon benutzt, so kann man auf zwei Arten koppeln:
- Entweder man sucht den Computer direkt mit dem Mobiltelefon und koppelt manuell
- oder man versucht vom Computer aus eine Verbindung zum Mobiltelefon aufzubauen.
Für die erste Möglichkeit muss die Option ISCAN (Inquiry scan) für das Bluetooth-Device aktiviert sein. Überprüfen könnt ihr das mit folgendem Befehl:
$ hciconfig <dev> | grep ISCAN UP RUNNING PSCAN ISCAN
<dev> ersetzt ihr mit dem jeweiligen Bluetooth-Gerät (z.B.: hci0). Sollte ISCAN nicht aktiviert sein, so aktiviert man es manuell mittels hciconfig:
$ hciconfig <dev> piscan
Dieser Befehl aktiviert PSCAN (Page scan) und ISCAN - das Gerät bleibt aber nur eine bestimmte Zeit sichtbar. (Beide Optionen findet man auch in der /etc/bluetooth/hcid.conf, leider scheint keine der Defaulteinstellungen darin eine unmittelbare Wirkung zu zeigen) Nun kann der Computer von anderen Bluetooth-Geräten gefunden werden und man kann versuchen manuell zu koppeln. Der passkey-agent gibt bei der Anfrage dann folgende Meldung aus:
Passkey request for device xx:xx:xx:xx:xx:xx
Wenn der Key richtig eingegeben wurde, so ist das Gerät nun gekoppelt (evtl. muss die Kopplung auf einem Mobiltelefon noch gespeichert werden).
Für die zweite Möglichkeit, der Kopplung durch Verbindungsanfrage, benutzt man einfach beispielsweise ein Tool wie obexftp, um sich mit dem Server (Mobiltelefon) mittles OBEX zu verbinden. Wenn beim Mobiltelefon Bluetooth aktiviert ist, sollte das Gerät selbst nach der Kopplung fragen. Nach der Eingabe des Keys wird die Verbindung hergestellt und das Gerät ist gekoppelt.
Ist das Gerät einmal gekoppelt worden, so muss man den passkey-agent nichtmehr extra starten. Dessen Aufgabe übernimmt von nun an der dbus-Daemon.