blauzahn.net

Bluetooth und Debian GNU/Linux

Anmerkungen: Diese Anleitung funktioniert auch 1:1 für den BlueFRITZ! USB v2.0 Dongle von AVM. Desweiteren habe ich inzwischen auch ein Nokia 6230 als Gegenstelle am Laufen, ohne das sich prinzipiell etwas am Ablauf geändert hat.

Ich habe das Epox BT-DG02 Bluetooth Dongle. Unter Windows XP hat das Dongle leider ein paar Zicken gemacht, unter Debian GNU/Linux lief es dagegen schnell. Die folgenden Arbeiten sind als root auszuführen.

Zunächst muß man die BlueZ Pakete mit apt installieren:

apt-get -f install bluez-*

Der Kernel muß Unterstützung für BlueZ bereitstellen. Ich habe das Kernel Image für Version 2.4.21 via apt installiert, so war es für mich am einfachsten. Das Modul wird aktiviert, indem man es mit

modprobe bluez

in den Kernel läd.

Anmerkungen: Für den Kernel 2.6 hat sich der Name des Modules geändert. Mit aktuellen Debian 2.6er Kernel-Images läd man die Module wie folgt in den Kernel (sofern das beim Booten nicht sowieso automatisch geschieht):

modprobe bluetooth rfcomm l2cap

Nun können wir nach Bluetooth-fähigen Geräten in der Umgebung scannen:

root@frodo:~$ hcitool scan
Scanning ...
        00:01:42:03:04:AA       S55

Gefunden wurde hier mein Bluetooth fähiges Handy, das S55 von Siemens. Das kryptisch anmutende 00:01:42:03:04:AA ist die Geräteadresse des Handies. Diese müssen wir uns für später merken.

Bevor wir nun eine Verbindung zum Mobiltelefon aufbauen, müßen wir noch eine Datei von Debian patchen. /bin/bluepin soll eigentlich die PIN einlesen, die man zum Verbindungsaufbau zu einem Bluetooth-Gerät benötigt abfragen. Leider lies sich das Programm bei mir nicht zur Zusammenarbeit überreden, also habe ich es wie folgt verändert:

#!/bin/bash
cat /etc/bluetooth/pin
exit

# Hier folgt der Rest der alten /bin/bluepin Datei

Die PIN, die zum Aufbau der Verbindung im Handy eingegeben werden muß, lege ich entsprechend in der Datei /etc/bluetooth/pin ab:

PIN:1234

Anmerkung: In neuren bluez Versionen kann es auch nötig sein das PIN: Prefix wegzulassen.

1234

Nun sind wir bereit uns mit dem Bluetooth-Handy zu verbinden. Als Anwendung stellen wir unserem Linux-Rechner das Handy als serielle Schnittstelle zur Verfügung. Dafür müssen wir das Handy an ein Device binden:

rfcomm bind 0 00:01:42:03:04:AA

00:01:42:03:04:AA ist die oben ermittelte Geräteadresse. Die 0 ist die Nummer des Devices, an die wir die serielle Schnittstelle binden wollten. Diese Nummer an /dev/rfcomm angehängt, ergibt die serielle Schnittstelle, über die wir das Handy jetzt ansprechen können.

Zum Test senden wir eine Modem-Initialisierung:

echo "ATZ" > /dev/rfcomm0

Das Handy sollte während dieser Prozedur zur Eingabe einer Pin auffordern. In diesem Beispiel ist die 1234 einzugeben.

/dev/rfcomm0 kann nun wie ein Modem genutzt werden, zum Beispiel zur Interneteinwahl mit wvdial oder auch kppp.

KDE und Bluetooth

Um Bluetooth in KDE einzubinden empfehle ich das Paket kdebluetooth. Man kann es einfach via apt-get installieren:

apt-get install kdebluetooth

Den KDE Bluetooth-Dämon startet man dann einfach als Benutzer:

kbluetoothd &

Unter KDE möchte man evtl. auch den Komfort haben, das man die PIN über einen grafischen Dialog eingibt. Hierzu editiert man die Datei /etc/bluetooth/hcid.conf und stellt sicher das der folgende Eintrag unter options vorhanden ist:

# HCId options
options {
		...

		# PIN helper
		pin_helper /usr/lib/kdebluetooth/kbluepin;

		...
}

Abschließend muß man noch bluez neu starten, damit die Änderungen übernommen werden:

/etc/init.d/bluetooth restart

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones

TuxMobil: Linux and Mobile (Cellular, Smart) Phones