Gentoo Logo

Haftungsausschluss: Dieses Dokument wird aktiv bearbeitet, es sollte noch nicht als offiziell angesehen werden.


Gentoo Linux Bluetooth Leitfaden

Inhalt:

1.  Einführung

Was ist Bluetooth?

Bluetooth ist eine gewerbliche Spezifikation die Benutzern einen Weg bietet, Informationen zwischen Geräten wie PCs, PDAs oder Mobiltelefonen auszutauschen. Benutzer können kostengünstig drahtlose Ton- und Datenübertragungen tätigen, wenn sie die Bluetooth-Technologie benutzen. Bluetooth bietet außerdem die Möglichkeit, kleine Drahtlosnetzwerke, so genannte WLANs, zu erstellen und Geräte zu synchronisieren.

Über den Inhalt dieses Leitfadens

Der erste Teil dieses Leitfadens erklärt, wie man den Systemkernel konfiguriert, wie man auf dem System installierte und vom Kernel erkannte Bluetooth-Geräte identifiziert und wie man die erforderlichen Basis-Werkzeuge für Bluetooth installiert.

Der zweite Teil behandelt die Anleitung, wie man entfernte Geräte im System sichtbar macht und wie man eine Verbindung von oder zu ihnen herstellt, indem man eine Radiofrequenzkommunikation (RFCOMM) nutzt.

Der letzte Teil des Leitfadens listet im Detail Programme auf, die Vorteile von den vielen Möglichkeiten der Bluetooth-Technologie ziehen können.

2.  Das System konfigurieren

Kernel-Konfiguration

Da die letzte stabile Version des Linux-Kernels 2.6 ist, wird die Konfiguration für diese Kernelserie durchgeführt. Die meisten Bluetooth-Geräte werden über einen USB-Port verbunden, deshalb wird USB ebenfalls aktiviert. Dazu greifen Sie bitte auf den Gentoo Linux USB Leitfaden zurück.

Befehlsauflistung 2.1: Konfiguration für die 2.6er Kernelserie

Networking --->

<*> Bluetooth subsystem support  --->

--- Bluetooth subsystem support
<M>   L2CAP protocol support
<M>   SCO links support
<M>   RFCOMM protocol support
[*]     RFCOMM TTY support
<M>   BNEP protocol support
[*]     Multicast filter support
[*]     Protocol filter support
<M>   HIDP protocol support

Bluetooth device drivers  --->
<M> HCI USB driver
[*]   SCO (voice) support
<M> HCI UART driver
[*]   UART (H4) protocol support
[*]   BCSP protocol support
[*]   Transmit CRC with every BCSP packet
<M> HCI BCM203x USB driver
<M> HCI BPA10x USB driver
<M> HCI BlueFRITZ! USB driver
(Die vier nachstehenden Treiber sind für PCMCIA-Bluetooth-Geräte und
werden nur angezeigt, wenn Sie die PCMCIA-Unterstützung im Kernel ebenfalls
aktiviert haben.)
<M> HCI DTL1 (PC Card) driver
<M> HCI BT3C (PC Card) driver
<M> HCI BlueCard (PC Card) driver
<M> HCI UART (PC Card) device driver
(Dieser Treiber ist für die HCI Emulation Software gedacht.)
<M> HCI VHCI (Virtual HCI device) driver

(Begeben Sie sich drei Ebenen zu Device Drivers zurück und vergewissern
Sie sich, dass USB aktiviert ist. Dies ist notwendig, wenn Sie einen
Bluetooth-Dongle benutzen, da diese in der Regel USB basierend sind.)
USB support  --->

<*> Support for Host-side USB
--- USB Host Controller Drivers
<M> EHCI HCD (USB 2.0) support
[ ]   Full speed ISO transactions (EXPERIMENTAL)
[ ]   Root Hub Transaction Translators (EXPERIMENTAL)
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
< > SL811HS HCD support

Nun werden wir mit unserem neuen Kernel neustarten. Wenn alles richtig gemacht wurde, haben wir jetzt ein System, das bereit für Bluetooth ist.

Wichtig: Ihr USB-Gerät hat eventuell zwei Modi, dessen Standard nicht HCI sondern HID sein kann. Wenn dies der Fall ist, benutzen Sie hid2hci, um zum HCI-Modus zu wechseln. Ihr System wird sich diese Änderung nach einem Neustart nicht merken.

Befehlsauflistung 2.2: Die Bluetooth-Geräte erkennen

(Eine Möglichkeit um das Gerät zu erkennen)
# cat /proc/bus/usb/devices | grep -e^[TPD] | grep -e Cls=e0 -B1 -A1
(Das Cls=e0(unk. ) identifiziert einen Bluetooth-Adapter)
T:  Bus=02 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0a12 ProdID=0001 Rev= 5.25
(Einiges wird eventuell von lsusb aus sys-apps/usbutils angezeigt)

# lsusb
Bus 003 Device 002: ID 046d:c00e Logitech, Inc. Optical Mouse
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 0db0:1967 Micro Star International Bluetooth Dongle

3.  BlueZ - Der Bluetooth-Stack

BlueZ installieren

Nun, da das Gerät vom Kernel erkannt wurde, brauchen wir einen Layer, welcher Applikationen mit dem Bluetooth-Gerät kommunizieren lässt. BlueZ stellt den offiziellen Linux Bluetooth-Stack bereit. Die Ebuilds, welche das anbieten, was wir brauchen, sind bluez-libs und bluez-utils. Geräte, welche Broadcom-Firmware-Dateien oder Vergleichbares benötigen, brauchen eventuell bluez-firmware.

Befehlsauflistung 3.1: bluez-libs und bluez-utils installieren

# emerge net-wireless/bluez-libs net-wireless/bluez-utils

BlueZ-Konfiguration und PIN-Paarung

Nun ist es Zeit um zu prüfen, ob das Bluetooth-Gerät korrekt vom System aufgenommen wird. Zuerst starten wir den benötigten Bluetooth-Dienst.

Befehlsauflistung 3.2: hciconfig starten

(Starten von Bluetooth)
# /etc/init.d/bluetooth start
* Starting Bluetooth ...
*     Starting hcid ...                                                 [ ok ]
*     Starting sdpd ...                                                 [ ok ]
*     Starting rfcomm ...                                               [ ok ]

# hciconfig
hci0:   Type: USB
        BD Address: 00:01:02:03:04:05 ACL MTU: 192:8  SCO MTU: 64:8
        DOWN
        RX bytes:131 acl:0 sco:0 events:18 errors:0
        TX bytes:565 acl:0 sco:0 commands:17 errors:0

Dies zeigt, dass das Bluetooth-Gerät erkannt wurde. Wie Sie vielleicht bemerkt haben, ist das Gerät mit DOWN gekennzeichnet. Lassen Sie es uns also "uppen". Die Konfigurationsdatei finden Sie unter /etc/bluetooth/hcid.conf. Die benötigten Änderungen in dieser Datei sind unten aufgelistet. Für weitere Informationen greifen Sie bitte auf man hcid.conf zurück.

Befehlsauflistung 3.3: /etc/bluetooth/hcid.conf editieren

(Empfohlene Änderungen für die Datei hcid.conf)

# HCId options
options {
        # Automatically initialize new devices
        autoinit yes;

(Ändern Sie Security auf "auto")
        # Security Manager mode
        #   none - Security manager disabled
        #   auto - Use local PIN for incoming connections
        #   user - Always ask user for a PIN
        #
        security auto;

        # Pairing mode
        pairing multi;

(Sie benötigen einen PIN-Helfer nur, wenn Sie <=bluez-libs-2.x und <=bluez-utils-2.x benutzen)
(Ändern Sie pin_helper, um /etc/bluetooth/pin-helper zu benutzen)
        # PIN helper
        pin_helper /etc/bluetooth/pin-helper;
}

# Default settings for HCI devices
device {
(Setzen Sie den Namen ihres Geräts hier; er ist frei wählbar)
        # Local device name
        #   %d - device id
        #   %h - host name
        name "BlueZ at %h (%d)";

        # Local device class
        class 0x3e0100;

        # Inquiry and Page scan
        iscan enable; pscan enable;

        # Default link mode
        lm accept;

        # Default link policy
        lp rswitch,hold,sniff,park;

(Lassen Sie es so, wie es ist, wenn Sie nicht genau wissen, was dies bewirkt.)
        # Authentication and Encryption (Security Mode 3)
        #auth enable;
        #encrypt enable;
}

Danach müssen wir die Bluetooth-Gerät-PIN konfigurieren. Das wird Ihnen helfen, Ihr Gerät mit anderen zu paaren.

Befehlsauflistung 3.4: /etc/bluetooth/pin bearbeiten

(Ersetzen Sie 123456 mit Ihrer bevorzugten PIN-Nummer.)
123456

Wichtig: Diese Nummer Ihrer Wahl muss dieselbe sein, wie in all ihren Hosts mit Bluetooth-Geräten, damit ihre Geräte gepaart werden können. Diese Nummer muss ebenfalls geheimgehalten werden, da jeder, der diese Nummer kennt, Verbindungen zu ihren Geräten herstellen kann.

Notiz: Seit >=bluez-libs-3.x und >=bluez-utils-3.x wurden die PIN-Helfer durch Passkey-Agenten ersetzt. Es gibt einige grafisch unterschiedliche Passkey-Agenten, welche Ihre PIN verwalten können, z.B. bluez-gnome und kdebluetooth. Sie können auf der Kommandozeile ebenfalls passkey-agent (aus bluez-utils) benutzen.

Konfiguration der Dienste

Da wir die Konfiguration von BlueZ abgeschlossen haben, ist es nun an der Zeit die erforderlichen Dienste neuzustarten.

Befehlsauflistung 3.5: Die Bluetooth-Daemons starten

# /etc/init.d/bluetooth restart
(Sie können dies auch zu einem anderem Runlevel hinzufügen, wenn Sie
möchten.)
# rc-update add bluetooth default
 * bluetooth added to runlevel default
 * rc-update complete.

Stellen Sie sicher, dass die Bluetooth-Daemons korrekt gestartet sind. Wenn wir sehen können, dass hcid und sdpd laufen, dann haben wir Bluetooth richtig konfiguriert. Danach können wir prüfen, ob die Geräte nun UP sind und mit den richtigen Einstellungen laufen.

Befehlsauflistung 3.6: Kontrollieren, ob die Bluetooth-Deamons korrekt gestartet sind

(Sicherstellen, dass die Dienste laufen)
# ps -ae | grep hcid
26050 ?        00:00:00 hcid
# ps -ae | grep sdpd
26054 ?        00:00:00 sdpd

# hciconfig -a
hci0:   Type: USB
        BD Address: 00:0A:0B:0C:0D:0E ACL MTU: 192:8 SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN
        RX bytes:125 acl:0 sco:0 events:17 errors:0
        TX bytes:565 acl:0 sco:0 commands:17 errors:0
        Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: SLAVE ACCEPT
        Name: 'BlueZ at bluehat (0)'
        Class: 0x3e0100
        Service Classes: Networking, Rendering, Capturing, Object Transfer,
        Audio
        Device Class: Computer, Uncategorized
        HCI Ver: 1.1 (0x1) HCI Rev: 0x1e7 LMP Ver: 1.1 (0x1) LMP Subver: 0x1e7
        Manufacturer: Cambridge Silicon Radio (10)

4.  Entfernte Geräte erkennen und zu ihnen verbinden

Bluetooth-Geräte in anderen Hosts

An diesem Punkt sind wir bereit um Bluetooth-Geräte, die in anderen Maschinen installiert sind, zu erkennen. Dies ist unabhängig vom Betriebssystem des Hosts. Wir werden Gebrauch des Befehls hcitool machen.

Befehlsauflistung 4.1: Auf lokale Geräte kontrollieren

# hcitool dev
Devices:
        hci0    00:01:02:03:04:05

Befehlsauflistung 4.2: Entferne Geräte suchen

# hcitool scan
Scanning ...
        00:0A:0B:0C:0D:0E       Grayhat

Befehlsauflistung 4.3: Anfragen an entfernte Geräte stellen

# hcitool inq
Inquiring ...
        00:0A:0B:0C:0D:0E       clock offset: 0x5579    class: 0x72010c

Da wir nun die MAC-Adresse des entfernten Bluetooth-Geräts kennen, können wir kontrollieren, ob wir sie korrekt gepaart haben.

Befehlsauflistung 4.4: l2ping starten

# l2ping 00:0A:0B:0C:0D:0E
Ping: 00:0A:0B:0C:0D:0E from 00:01:02:03:04:05 (data size 20) ...
20 bytes from 00:0A:0B:0C:0D:0E id 200 time 69.85ms
20 bytes from 00:0A:0B:0C:0D:0E id 201 time 9.97ms
20 bytes from 00:0A:0B:0C:0D:0E id 202 time 56.86ms
20 bytes from 00:0A:0B:0C:0D:0E id 203 time 39.92ms
4 sent, 4 received, 0% loss

Radiofrequenzkommunikation (RFCOMM) einstellen

Notiz: Bitte beachten Sie, dass Radiofrequenzkommunikation optional ist.

Wir können eine Radiofrequenzkommunikation zu einem anderen Bluetooth-Gerät herstellen, indem wir den rfcomm Befehl benutzen. Um die Sache für Benutzer mit mehreren Geräten ein wenig zu erleichtern, ist es ratsam ein paar Änderungen an der standardmäßigen rfcomm Konfigurationsdatei /etc/bluetooth/rfcomm.conf vorzunehmen.

Das gesamte Segment der Konfiguration, welches bei rfcomm0 { startet und bei } endet, ist die Konfiguration für das Gerät, welches eine Verbindung an /dev/rfcomm0 herstellen wird. In diesem Fall zeigen wir nur ein Beispiel, nämlich rfcomm0. Sie können einfach weitere Einstellungen vornehmen.

Befehlsauflistung 4.5: /etc/bluetooth/rfcomm.conf bearbeiten

(Es werden nur Änderungen, die benötigt werden, gezeigt)
rfcomm0 {
        # Automatically bind the device at startup
        (Erstellt das Device Node, /dev/rfcomm0, beim Starten des Systems)
        bind yes;

        # Bluetooth address of the device
        (Geben Sie die Adresse des Geräts, zu welchem Sie die Verbindung herstellen möchten, an)
        device 00:0A:0B:0C:0D:0E;

}

Nachdem Sie RFCOMM konfiguriert haben, können Sie zu jedem Gerät verbinden. Da wir die erforderlichen Einstellungen in /etc/bluetooth/rfcomm.conf gemacht haben, benötigen wir nur den Befehl, welcher unten gezeigt ist. Im Fall, dass Sie keine Änderungen an der Konfiguration vorgenommen haben, ist die alternative Methode ebenfalls aufgelistet.

Befehlsauflistung 4.6: Eine RFCOMM-Verbindung herstellen

(Die 0 führt auf rfcomm0 in der Konfiguration zurück)
# rfcomm connect 0 
Connected /dev/rfcomm0 to 00:0A:0B:0C:0D:0E on channel 1
Press CTRL-C for hangup

(Wenn Sie /etc/bluetooth/rfcomm.conf nicht editiert haben)
# rfcomm connect 0 00:0A:0B:0C:0D:0E 1
Connected /dev/rfcomm0 to 00:0F:DE:69:50:24 on channel 1
Press CTRL-C for hangup

Der erste Parameter nach dem Connect-Befehl ist das RFCOMM TTY Gerät, welches genutzt wird (im Normallfall 0). Der zweite Parameter ist die MAC-Adresse des entfernten Geräts. Der dritte Parameter ist optional und gibt den Channel, der genutzt werden soll, an. Bitte beachten Sie, dass das entfernte Gerät auf eingehende Verbindungen warten muss, damit Sie eine Verbindung zu diesem herstellen können. Sie können die Kommunikation zu jedem Moment beenden, indem Sie STRG+C drücken.

Befehlsauflistung 4.7: Auf eingehende RFCOMM-Verbindungen hören

# rfcomm listen 0 1
Waiting for connection on channel 1

Ähnlich wie der Verbindungsbefehl kann der "Listen"-Befehl zwei Parameter empfangen. Der erste gibt das RFCOMM TTY Gerät an, in der Regel 0, welches zum Annehmen einer Verbindung genutzt werden soll, während der zweite den Kanal, der genutzt werden soll, spezifiziert.

Jedes Mal wenn Sie den rfcomm Befehl ausführen, können Sie ebenfalls das physikalische Gerät, das Sie benutzen möchten, auswählen. Folgend ein kleines Beispiel zu diesen beiden Befehlen.

Befehlsauflistung 4.8: RFCOMM-Verbindungen mit einem bestimmten physikalischem Gerät

# rfcomm -i hci0 listen 0 1
Waiting for connection on channel 1
(Um auf ein bestimmtes Gerät zu hören) 
# rfcomm -i hci0 connect 0 00:0A:0B:0C:0D:0E 1
(Um ein bestimmtes Gerät zum Verbinden zu benutzen)

5.  Desktopapplikationen für Bluetooth

Einführung

Wir haben einige wenige Bluetooth-Applikationen, die auf dem Desktop laufen. Dieses Kapitel ist in 3 Teile geteilt, einen Teil für Gnome, einen für KDE und einen für andere Applikationen.

Für Gnome

Wenn Sie ein Gnome-User sind, werden Sie höchst wahrscheinlich gnome-bluetooth benutzen. Dies stellt die meisten Standardfunktionalitäten zur Verfügung, wie Sie folgend erkennen können.

  • gnome-bluetooth-manager: Entfernte Bluetooth-Geräte verwalten.
  • gnome-obex-send: Dateien zu anderen Geräten senden.
  • gnome-obex-server: Dateien empfangen.

Befehlsauflistung 5.1: gnome-bluetooth installieren

# emerge gnome-bluetooth

Dies fügt Menüeinträge unter Applikationen > Systemwerkzeuge hinzu, von wo aus Sie einfach den Manager, Dateiübertragungen zwischen den Geräten usw. starten können.

Um Dateien zu übertragen (der einfache Weg):

  • Vom Telefon zum Computer - Senden Sie die Datei vom Telefon via Bluetooth zum Computer und es wird automatisch in ihrem /home Verzeichnis gespeichert.

gnome-phone-manager ist eine elegante Applikation, welche Sie benutzen können, um Nachrichten von und zu Ihrem Telefon zu empfangen oder zu versenden. Sie müssen Ihr Telefon nicht anfassen, da dies automatisch durch die Applikation gehandhabt wird. Sie werden ebenfalls auf ihrem Bildschirm über neue Nachrichten informiert, wenn dies in den Einstellungen aktiviert ist.

Befehlsauflistung 5.2: gnome-phone-manager installieren

# emerge gnome-phone-manager

Für KDE

KDE benutzt kdebluetooth und stellt mehr Dienstprogramme als sein Gnome-Gegenstück zur Verfügung, wie sie folgend sehen können.

  • kbluetoothd: Bluetooth Meta Server.
  • kbtsearch: Bluetooth Gerät/Dienste Suche.
  • khciconfig: KDE Bluetooth Monitor.
  • kioclient: KIO Kommandozeilenclient.
  • qobexclient: Schweizer Taschenmesser für obex Tests/Entwicklung.
  • kbtobexclient: Eine KDE Bluetooth Framework Applikation.
  • kioobex_start
  • kbtserialchat
  • kbemusedsrv: KDE Bemused Server.
  • kbtobexsrv: KDE OBEX Push Server für Bluetooth.
  • kbluepin: Eine KDE KPart Applikation.
  • auth-helper: Eine Hilfssoftware für kbtobexsrv, welche eine Authentifikationsanfrage für einen angegebenen ACL-Link sendet.

Befehlsauflistung 5.3: kdebluetooth installieren

# emerge kdebluetooth

Andere interessante Applikationen

  • app-mobilephone/obexftp: Dateitransfer über OBEX-Mobiltelefone
  • app-mobilephone/bemused: Bemused ist ein System, welches Ihnen erlaubt, Ihre Musiksammlung auf Ihrem Mobiltelefon via Bluetooth zu kontrollieren.
  • app-pda/multisync: Multisync erlaubt Ihnen, Ihre Kontakte, Ihren Kaldnereinträge und Notizen von Ihrem Mobiltelefon mit Ihrem Computer über eine Bluetooth-Verbindung zu synchroniniseren. Es beinhaltet Features, wie z.B. die Erstellung von Backups dieser Informationen und die Wiederherstellung solcher und die Synchronisierung mit dem Email-Client Evolution. Sie benötigen das USE-Flag irmc, um sicherzustellen, dass multisync Bluetooth unterstützt.
  • net-wireless/opd und net-wireless/ussp-push sind Kommandozeilentools (Server und Client), die zum Versenden von Dateien zu Ihrem Mobiltelefon genutzt werden können.

6.  Danksagungen

Besonderen Dank an Marcel Holtmann für seine Zeit und seinen Einsatz für die Bluetooth-Entwicklung und für die Durchsicht dieses Leitfadens. Außerdem großen Dank an Douglas Russell für die Durchführung spezieller Hardwaretests und für die Verbesserung dieses Leitfadens.



Drucken

Seite aktualisiert 16. Juli 2009

Die Originalversion dieser Übersetzung wird nicht länger gepflegt

Zusammenfassung: Dieser Leitfaden wird Ihnen erklären, wie Sie erfolgreich ein Bluetooth-Gerät installieren, den Kernel gegebenenfalls dafür konfigurieren und alle Verbindungen, die Bluetooth anbietet, erklären. Außerdem wird Ihnen gezeigt, wie Sie Spaß mit Bluetooth haben können.

Ioannis Aslanidis
Autor

Douglas Russell
Mitarbeiter

Marcel Holtmann
Mitarbeiter

Shyam Mani
Autor

Łukasz Damentko
Bearbeiter

Joshua Saddler
Bearbeiter

Timo Josten
Übersetzer

Tobias Heinlein
Korrektor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.