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

title_2014_10

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

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...