Bluetooth ist eine drahtlose Technologie für den Anschluss verschiedener Geräte, wie beispielsweise Mobiltelefone, PDAs, Notebooks oder Systemkomponenten wie Tastatur oder Maus. Der Name leitet sich vom dänischen König Harald Blauzahn (engl. Name Harold Bluetooth) ab, der mehrere sich bekriegende Fraktionen in Skandinavien einte. Das Bluetooth-Logo basiert auf den Runen für „H“ (sternähnlich) und „B“.
Bluetooth unterscheidet sich durch eine Reihe wichtiger Aspekte von IrDA. Zum einen müssen sich die einzelnen Geräte nicht in optischer Reichweite voneinander befinden und zum anderen können mehrere Geräte zu einem Netzwerk zusammengeschlossen werden. „“ Die maximale Datenübertragungsrate beträgt allerdings nur 2.1 Mbps (in der aktuellen Version 2.0). Theoretisch ist mit Bluetooth sogar eine Kommunikation durch Wände möglich. In der Praxis hängt dies jedoch von den Eigenschaften der Wand und der Geräteklasse ab. Es gibt drei Geräteklassen mit Übertragungsreichweiten zwischen zehn und hundert Metern.
In den folgenden Abschnitten werden die Grundprinzipien umrissen, nach denen Bluetooth funktioniert. Sie erfahren, welche Software-Anforderungen erfüllt sein müssen, wie Bluetooth mit dem System interagiert und wie Bluetooth-Profile funktionieren.
Zur Verwendung von Bluetooth benötigen Sie einen Bluetooth-Adapter (eingebauter Adapter oder externes Gerät), Treiber sowie einen Bluetooth-Protokollstapel. Der Linux-Kernel weist bereits die wichtigsten Treiber für die Verwendung von Bluetooth auf. Das Bluez-System wird als Protokollstapel verwendet. Um sicherzustellen, dass die Anwendungen mit Bluetooth zusammenarbeiten, müssen die Basispakete bluez-libs
und bluez-utils
installiert sein. Diese Pakete enthalten mehrere benötigte Dienste und Dienstprogramme. Außerdem muss für einige Adapter, wie Broadcom bzw. AVM BlueFritz!, das Paket bluez-firmware
installiert sein. Das Paket bluez-cups
ermöglicht das Drucken über Bluetooth-Verbindungen. Für die Fehlersuche bei Problemen mit Bluetooth-Verbindungen installieren Sie die Pakete bluez-hcidump
und bluez-test
.
Bluetooth-Systeme bestehen aus vier miteinander verzahnten Schichten, die die gewünschte Funktionalität bereitstellen:
Adapter und geeigneter Treiber zur Unterstützung durch den Linux-Kernel.
Dienen zur Steuerung des Bluetooth-Systems.
Dienste, die von den Konfigurationsdateien gesteuert werden und die Funktionalität bereitstellen.
Durch die Anwendungen kann der Benutzer die von den Daemons bereitgestellte Funktionalität nutzen und steuern.
Beim Einstecken eines Bluetooth-Adapters wird der zugehörige Treiber in das Hotplug-System geladen. Nachdem der Treiber geladen wurde, überprüft das System die Konfigurationsdateien, um zu ermitteln, ob Bluetooth gestartet werden sollte. Wenn dies der Fall ist, wird ermittelt, welche Dienste gestartet werden sollen. Auf der Grundlage dieser Informationen werden die entsprechenden Daemons gestartet.
In Bluetooth werden die Dienste über Profile definiert, beispielsweise das Dateiübertragungsprofil, das Profil für grundlegende Druckvorgänge und das Profil für das persönliche Netzwerk (Personal Area Network). Damit ein Gerät die Dienste eines anderen Gerätes nutzen kann, müssen beide dasselbe Profil verstehen. Diese Information fehlt häufig auf der Verpackung und im Handbuch des Geräts. Leider halten sich einige Hersteller nicht streng an die Definitionen der einzelnen Profile. Dennoch funktioniert die Kommunikation zwischen den Geräten normalerweise reibungslos.
Im folgenden Text sind die lokalen Geräte diejenigen, die physisch mit dem Computer verbunden sind. Alle anderen Geräte, auf die nur über drahtlose Verbindungen zugegriffen werden kann, werden als entfernte Geräte bezeichnet.
Dieser Abschnitt bietet eine Einführung in die Bluetooth-Konfiguration. Sie erfahren, welche Konfigurationsdateien beteiligt sind, welche Werkzeuge benötigt werden und wie Bluetooth konfiguriert wird.
Die Konfigurationsdateien für die einzelnen Komponenten des Bluez-Systems befinden sich im Verzeichnis /etc/bluetooth
. Die einzige Ausnahme hiervon ist die Datei /etc/sysconfig/bluetooth
, die die Komponenten startet.
Die im Folgenden beschriebenen Konfigurationsdateien können nur vom Benutzer root
bearbeitet werden. Zurzeit gibt es keine grafische Bedienoberfläche zum Ändern aller Einstellungen. Die meisten dieser Einstellungen sind allerdings nur für erfahrene Benutzer mit speziellen Anwendungsfällen interessant. Normalerweise sollten die Standardeinstellungen angemessen sein.
Verschiedene Einstellungen, beispielsweise Gerätenamen und Sicherheitsmodus, können in der Konfigurationsdatei /etc/bluetooth/hcid.conf
geändert werden. Normalerweise sollten die Standardeinstellungen angemessen sein. Die Datei enthält Kommentare, in denen die Optionen für die verschiedenen Einstellungen beschrieben werden. Die meisten Einstellungen dieser Datei können jedoch auch mit kbluetooth oder bluez-gnome festgelegt werden.
Zwei Abschnitte in der eingeschlossenen Datei heißen options
und device
. Der erste enthält allgemeine Informationen, die hcid zum Starten verwendet. Der zweite enthält Einstellungen für einzelne lokale Bluetooth-Geräte.
Eine der wichtigsten Einstellungen im Abschnitt options
ist security auto;
. Wenn dieser Wert auf auto
gesetzt ist, versucht hcid, die lokale PIN für eingehende Verbindungen zu verwenden. Wenn dies nicht erfolgreich ist, wird auf none
umgeschaltet und die Verbindung ohne PIN hergestellt. Um eine höhere Sicherheit zu erreichen, sollte diese Standardeinstellung auf user
gesetzt werden, um sicherzustellen, dass der Benutzer jedes Mal, wenn eine Verbindung hergestellt wird, eine PIN eingeben muss.
Legen Sie den Namen, unter dem der Computer auf der anderen Seite angezeigt wird, im Abschnitt device
fest. Die Geräteklasse, beispielsweise Desktop
, Laptop
oder Server
wird in diesem Abschnitt definiert. Authentifizierung und Verschlüsselung werden ebenfalls hier aktiviert bzw. deaktiviert.
Die Funktionsfähigkeit von Bluetooth hängt vom Zusammenspiel verschiedener Dienste ab. hcid (Host Controller Interface Daemon) fungiert als Schnittstelle für das Bluetooth-Gerät, über die das Gerät gesteuert wird. hcid stellt auch den sdpd-Daemon (Service Discovery Protocol Daemon) bereit, mit dessen Hilfe ein Gerät die auf dem Host bereitgestellten Dienste erkennt. hcid wird automatisch beim Systemstart oder beim Einstecken des Bluetooth-Adapters am System aktiviert. Falls hcid nicht automatisch gestartet wird, können Sie das Bluetooth-Subsystem manuell mit rcbluetooth start
starten. Dieser Befehl muss als root
ausgeführt werden.
In den folgenden Absätzen werden kurz die wichtigsten Shell-Werkzeuge beschrieben, die für die Arbeit mit Bluetooth verwendet werden können. Mittlerweile stehen zwar verschiedene grafische Komponenten für die Steuerung von Bluetooth zur Verfügung, aber dennoch kann es sich lohnen, einen Blick auf diese Programme zu werfen.
Einige der Kommandos können nur als root
ausgeführt werden. Dazu gehört das Kommando l2ping
zum Testen der Verbindung mit einem entfernten Gerät.
device_address
Mit hcitool kann bestimmt werden, ob lokale und entfernte Geräte erkannt wurden. Mit dem Kommando hcitool dev
werden die lokalen Geräte aufgeführt. Für jedes erkannte lokale Gerät wird in der Ausgabe eine Zeile in der Form Schnittstellenname
Geräteadresse
erstellt.
Nach entfernten Geräten wird mit dem Kommando hcitool inq
gesucht. Dieses Kommando gibt für jedes erkannte Gerät drei Werte zurück: die Geräteadresse, die Uhrzeitverschiebung und die Geräteklasse. Die Geräteklasse ist wichtig, da andere Befehle sie zur Ermittlung des Zielgeräts verwenden. Das Uhren-Offset dient hauptsächlich technischen Zwecken. Die Klasse gibt Geräte- und Diensttyp als Hexadezimalwert an.
Mit hcitool name
kann der Gerätename eines entfernten Geräts ermittelt werden. Bei einem entfernten Computer entsprechen Klasse und Gerätename den Informationen in der Datei Geräteadresse
/etc/bluetooth/hcid.conf
. Lokale Geräteadressen führen zu einer Fehlerausgabe.
Der Befehl /usr/sbin/hciconfig
liefert weitere Informationen zum lokalen Gerät. Wenn hciconfig ohne Argumente ausgeführt wird, werden in der Ausgabe Geräteinformationen, beispielsweise Gerätenamen (hciX
), physikalische Geräteadresse (12-stellige Nummer in der Form 00:12:34:56:78
) und Informationen zum Umfang der übertragenen Daten angezeigt.
hciconfig hci0 name
zeigt den Namen an, der von Ihrem Computer zurückgegeben wird, wenn er Anforderungen von entfernten Geräten erhält. Mit hciconfig können die Einstellungen des lokalen Geräts nicht nur abgefragt, sondern auch bearbeitet werden. Mit hciconfig hci0 name TEST
beispielsweise wird der Name aufTEST gesetzt
.
Mit sdptool kann überprüft werden, welche Dienste von einem bestimmten Gerät zur Verfügung gestellt werden. Das Kommando sdptool browse
gibt alle Dienste eines Geräts zurück. Mit sdptool Geräteadresse
search
wird nach einem bestimmten Dienst gesucht. Dieser Befehl scannt alle erreichbaren Geräte nach dem angeforderten Dienst. Wenn eines der Geräte den Dienst anbietet, gibt das Programm den vollständigen Dienstnamen, der vom Gerät zurückgegeben wurde, sowie eine kurze Beschreibung aus. Eine Liste aller möglichen Dienstcodes lässt sich durch Eingabe von sdptool ohne Parameter anzeigen.
Dienstcode
Geben Sie in Konqueror die URL bluetooth:/
ein, um lokale und entfernte Bluetooth-Geräte aufzuführen. Durch Doppelklicken auf ein Gerät erhalten Sie einen Überblick über die von dem betreffenden Gerät bereitgestellten Dienste. Wenn Sie mit der Maus über einen der angegebenen Dienste fahren, wird in der Statusleiste des Browsers angezeigt, welches Profil für den Dienst verwendet wird. Wenn Sie auf einen Dienst klicken, wird ein Dialogfeld geöffnet, in dem Sie den gewünschten Vorgang auswählen können: Speichern, den Dienst verwenden (dazu muss eine Anwendung gestartet werden) oder den Vorgang abbrechen. Aktivieren Sie das betreffende Kontrollkästchen, wenn der Dialog nicht mehr angezeigt und immer die ausgewählte Aktion durchgeführt werden soll. Für einige Dienste ist noch keine Unterstützung verfügbar. Weitere grafische Front-Ends für Bluetooth sind in den Paketen kbluetooth
, bluez-gnome
und gnome-bluetooth
enthalten.
In diesem Beispiel wird eine Netzwerkverbindung zwischen den Hosts H1 und H2 eingerichtet. Diese beiden Hosts haben die Bluetooth-Geräteadressen baddr1 und baddr2 (auf beiden Hosts mit dem Kommando hcitool dev
bestimmt, wie oben beschrieben). Die Hosts sollten mit den IP-Adressen 192.168.1.3
(H1) und 192.168.1.4
(H2) identifiziert sein.
Die Bluetooth-Verbindung wird mithilfe von pand (Personal Area Networking Daemon) hergestellt. Die folgenden Kommandos müssen vom Benutzer root
ausgeführt werden. Die Beschreibung konzentriert sich auf die Bluetooth-spezifischen Aktionen und bietet keine detaillierte Beschreibung des Netzwerkbefehls ip.
Geben Sie pand -s
ein, um pand auf Host H1 zu starten. Anschließend kann auf Host H2 mit pand -c
eine Verbindung hergestellt werden. Wenn Sie auf einem der Hosts ip baddr1
link show
eingeben, um die verfügbaren Netzwerkschnittstellen aufzulisten, sollte die Ausgabe etwa folgenden Eintrag enthalten:
bnep0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ether 00:12:34:56:89:90 brd ff:ff:ff:ff:ff:ff
Statt 00:12:34:56:89:90
sollte die Ausgabe die lokale Geräteadresse baddr1 bzw. baddr2 enthalten. Nun muss diese Schnittstelle einer IP-Adresse zugewiesen und aktiviert werden. Auf H1 führen Sie dies mit den folgenden beiden Kommandos durch:
ip addr add 192.168.1.3/24 dev bnep0 ip link set bnep0 up
Verwenden Sie auf H2 die folgenden Kommandos:
ip addr add 192.168.1.4/24 dev bnep0 ip link set bnep0 up
Nun ist ein Zugriff auf H1 von H2 aus unter der IP-Adresse 192.168.1.3
möglich. Mit dem Kommando ssh 192.168.1.4
können Sie von H1 aus auf H2 zugreifen, vorausgesetzt H2 führt einen sshd aus, der standardmäßig in openSUSE® aktiviert ist. Die Ausführung des Kommandos ssh 192.168.1.4
ist auch als normaler Benutzer möglich.
Wenn Sie Schwierigkeiten bei der Herstellung einer Verbindung haben, sollten Sie die folgende Liste abarbeiten. Bedenken Sie, dass der Fehler auf jeder der beiden Seiten einer Verbindung liegen kann, zuweilen liegt sogar auf beiden Seiten ein Fehler vor. Rekonstruieren Sie das Problem nach Möglichkeit mit einem anderen Bluetooth-Gerät, um sicherzustellen, dass das Gerät nicht defekt ist.
dev
aufgeführt?
Wenn das lokale Gerät nicht in dieser Ausgabe aufgeführt ist, wurde entweder hcid nicht gestartet oder das Gerät wird nicht als Bluetooth-Gerät erkannt. Dies kann verschiedene Ursachen haben. Das Gerät könnte beschädigt sein oder der richtige Treiber könnte fehlen. Notebooks mit integriertem Bluetooth haben häufig einen Ein-/Aus-Schalter für drahtlose Geräte, wie WLAN- oder Bluetooth-Geräte. Überprüfen Sie im Handbuch Ihres Notebooks, ob Ihr Gerät einen solchen Schalter aufweist. Starten Sie das Bluetooth-System mit dem Befehl rcbluetooth restart
neu und überprüfen Sie, ob unter /var/log/messages Fehler gemeldet werden
.
Falls ja, installieren Sie bluez-bluefw
und starten Sie das Bluetooth-System mit rcbluetooth restart
neu.
inq
andere Geräte zurück?Testen Sie diesen Befehl mehrmals. Die Verbindung weist möglicherweise Interferenzen auf, da das Bluetooth-Frequenzband auch von anderen Geräten verwendet wird.
Versuchen Sie, die Verbindung vom Remote-Gerät aus herzustellen. Überprüfen Sie, ob das Gerät den Computer sieht.
Die in Abschnitt 33.2.5, „Beispiel – Einrichten einer Netzwerkverbindung via Bluetooth“ beschriebene Einrichtung funktioniert möglicherweise nicht. Dafür kann es mehrere Gründe geben. Beispielsweise unterstützt einer der beiden Computer möglicherweise nicht SSH. Versuchen Sie es mit ping 192.168.1.3
oder ping 192.168.1.4
. Wenn dies funktioniert, überprüfen Sie, ob sshd aktiv ist. Ein weiteres Problem könnte darin bestehen, dass eines der beiden Geräte bereits Netzwerkeinstellungen aufweist, die mit der im Beispiel genannten Adresse 192.168.1.X
in Konflikt stehen. Versuchen Sie es in diesem Fall mit anderen Adressen, beispielsweise 10.123.1.2
und 10.123.1.3
.
Wenn Sie das bluez-hcidump
-Paket installiert haben, können Sie mithilfe von hcidump -X
überprüfen, was zwischen den Geräten versendet wird. Manchmal gibt die Ausgabe einen Hinweis auf das Problem. Beachten Sie aber, dass nur teilweise „Klartext“ ausgegeben wird.
Zusätzliche (kurz vor Veröffentlichung eingegangene) Dokumentationen erhalten Sie unter /usr/share/doc/packages/bluez-utils/
(deutschsprachige und englischsprachige Version verfügbar).
Einen umfassenden Überblick über die verschiedenen Anweisungen für Verwendung und Konfiguration von Bluetooth finden Sie unter http://www.bluez.org/. Weitere nützliche Informationen und Anweisungen:
Offizielle Anleitungsseite für den in den Kernel integrierten Bluetooth-Protokollstapel: http://bluez.sourceforge.net/howto/index.html
Verbindung mit PalmOS PDA: http://www.cs.ucl.ac.uk/staff/s.zachariadis/btpalmlinux.html