dongle.jpg

Bluetooth unter Linux

Elito-Epox BT-DG02 USB Bluetooth-Dongle einrichten

01.05.2003
, ,
Wird heute über drahtlose Vernetzung gesprochen, hat Bluetooth einen hohen Stellenwert. Egal ob Headset, PDA oder Handy, Bluetooth verbindet alles – auch unter Linux.

Durch das BlueZ-Projekt [1] stehen die meisten der vom Bluetooth-Gremium [2] spezifizierten Protokolle und Dienste zur Verfügung. Bluetooth ist noch am ehesten mit IrDA zu vergleichen, nur dass einmal Funk zur Übertragung verwendet wird und Bluetooth von vorne herein für Netzwerke ausgelegt ist. Konnten bei IrDA nur zwei sauber ausgerichtete Geräte miteinander kommunizieren, erlaubt Bluetooth mehrere Teilnehmer gleichzeitig in einem Umkreis von mehreren Metern. Mit WLAN lässt sich Bluetooth kaum vergleichen.

Kernel-Unterstützung

Außer für Debian und Red Hat gibt es derzeit keine fertigen Bluetooth-Pakete auf der BlueZ-Homepage, in den meisten Fällen wird man Kernel und Zusatzprogramme selbst übersetzen müssen – die nachfolgende Anleitung richtet sich daher an die fortgeschrittenen Linux-Anwender, die auch von einem Kernel-Patch nicht zurückschrecken.

Der Kernel darf nicht älter als Version 2.4.18 sein, wenn es nicht zwingende Gründe gibt, sollte in jedem Fall Kernel 2.4.20 oder höher verwendet werden. Für die Einrichtung des Epox BT-DG02 Bluetooth Dongles benötigten wir zudem noch einen Kernel-Patch von [3], der mit dem Befehl zcat patch-2.4.20-mh6.gzpatch -p 1 im Verzeichnis /usr/src/linux eingebaut wird.

Anschließend erfolgt die Konfiguration des Kernels per make menuconfig oder make xconfig. In der Sektion USB support muss der Punkt USB Bluetooth support (EXPERIMENTAL) unbedingt deaktiviert werden, sofern er angezeigt wird – dieses Modul verwendet den aus der Mode gekommenen Axix Bluetooth Stack, wir möchten jedoch den Bluetooth-Stack des Kernels verwenden. Das Modul bluetooth.o darf also gar nicht im Modul-Verzeichnis des Kernels zu finden sein.

In der Sektion Bluetooth support sollten der Einfachheit halber alle Einträge als Module (<M>) eingebunden werden, auch die im Untermenü Bluetooth device drivers. Danach verlassen Sie das Konfigurationsprogramm und speichern die Einstellungen. Der nächste Schritt ist das Neubauen des Kernels mit dem bekannten make dep modules modules_install bzImage – der fertige Kernel bzImage liegt dann im Verzeichnis /usr/src/linux/arch/i386/boot und wird von Hand nach /boot kopiert und entsprechend im Boot-Loader eingetragen.

Abschließend müssen noch die Werkzeuge BlueZ-Utils (bluez-utils-2.3.tar.gz), BlueZ-Pan (bluez-pan-1.1.tar.gz), BlueZ-SDP (bluez-sdp-1.1.tar.gz) und BlueZ-Libs (bluez-libs-2.4.tar.gz) aus dem Download-Bereich von [1] herunter geladen und entpackt werden. Das Kompilieren erfolgt jeweils mit dem Dreischritt ./configure; make; make install. Mögliche Fehlerquellen sind fehlende Entwicklungsbibliotheken, die bei der Standard-Installation aktueller Distributionen nicht automatisch eingerichtet werden; bei SuSE 8.1 sollten zum Beispiel alle Entwicklungs- und Compiler-Paketserien installiert sein.

Damit die Module automatisch geladen werden, müssen in der Datei /etc/modutils/aliases respektive /etc/modules.conf noch folgende Zeilen angefügt werden:

alias net-pf-31         bluez
alias bt-proto-0        l2cap
alias bt-proto-2        sco
alias bt-proto-4        bnep
alias tty-ldisc-15      hci_uart
alias char-major-10-250 hci_vhci

Ist dies erledigt, können die Daemons hcid und danach sdpd gestartet werden. Ist ein Bluetooth-Dongle angeschlossen und das Modul hci_usb geladen, liefert der Aufruf von hciconfig etwa folgende Ausgabe:

hci0:   Type: USB
        BD Address: 01:08:1B:2F:50:1C ACL MTU: 192:8  SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN
        RX bytes:99 acl:0 sco:0 events:13 errors:0
        TX bytes:296 acl:0 sco:0 commands:12 errors:0

Damit ist Bluetooth aktiv. Mit dem Kommando hcitool inq wird die Umgebung nach weiteren Bluetooth-Geräten abgesucht. Für die Verbindung zwischen Bluetooth-Geräten muss momentan noch die Bluetooth-Hardware-Adresse (BD-Address) von Hand eingegeben werden, später werden dies sicher benutzerfreundlichere Programme übernehmen.

Als erster Verbindungstest sollen zwei Computer über Bluetooth miteinander vernetzt werden, dazu wird der Daemon pand auf dem ersten Rechner (Master) mit pand -s -r NAP -M aufgerufen.

Der Parameter -M erklärt den Rechner zum Master, der per -r NAP noch die Rolle des Network Access Point übernimmt. -s lässt den Master auf den Aufbau einer Verbindung von der Gegenseite warten.

Beim zweiten Rechner, dem Client, wird nun pand --service NAP -b BD-Address aufgerufen, wobei BD-Address die Hardware-Adresse des Masters ist. Einfacher geht es mit pand --service NAP -Q, damit wird die Umgebung abgesucht und automatisch das erste passende Bluetooth-Gerät verwendet.

Ist die Verbindung erfolgreich zustande gekommen, gibt es auf beiden Rechner ein neues Netzwerkgerät Namens bnep0, das sich wie jedes andere per ifconfig mit einer IP versehen lässt.

Infos

[1] BlueZ Bluetooth Stack für Linux: http://bluez.sourceforge.net

[2] Bluetooth Special Interest Group (SIG): http://www.bluetooth.org

[3] Bluetooth-Kernel-Patches: http://www.holtmann.org/linux/kernel @KE:

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 06/2015: Shell-Tools

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 0 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Konsole / Terminal in Linux Mint 17.1 deutsch
Dirk Resag, 09.05.2015 23:39, 12 Antworten
Hallo an die Community, ich habe vor kurzem ein älteres Notebook, Amilo A1650G, 1GB Arbeitsspe...
Admin Probleme mit Q4os
Thomas Weiss, 30.03.2015 20:27, 6 Antworten
Hallo Leute, ich habe zwei Fragen zu Q4os. Die Installation auf meinem Dell Latitude D600 verl...
eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 1 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...
Start-Job behindert Bootvorgang, Suse 13.2, KDE,
Wimpy *, 20.02.2015 10:32, 4 Antworten
Beim Bootvorgang ist ein Timeout von 1 Min 30 Sec. weil eine Partition sdb1 gesucht und nicht gef...