Gentoo Linux Bluetooth Leitfaden
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
<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
<M> HCI VHCI (Virtual HCI device) driver
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 |
# cat /proc/bus/usb/devices | grep -e^[TPD] | grep -e Cls=e0 -B1 -A1
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
# 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 |
# /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 |
# HCId options
options {
# Automatically initialize new devices
autoinit yes;
# 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;
# PIN helper
pin_helper /etc/bluetooth/pin-helper;
}
# Default settings for HCI devices
device {
# 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;
# 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 |
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
# 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 |
# 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 |
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
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 |
# rfcomm connect 0
Connected /dev/rfcomm0 to 00:0A:0B:0C:0D:0E on channel 1
Press CTRL-C for hangup
# 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
# rfcomm -i hci0 connect 0 00:0A:0B:0C:0D:0E 1
|
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.
Die Inhalte dieses Dokuments sind unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert.
|