Bluetooth /ˈbluːtuːθ/ ist ein in den 1990er Jahren ursprünglich von Ericsson entwickelter Industriestandard gemäß IEEE 802.15.1 für die drahtlose (Funk-)Vernetzung von Geräten über kurze Distanz. Bluetooth bietet eine drahtlose Schnittstelle, über die sowohl mobile Kleingeräte wie Mobiltelefone und PDAs als auch Computer und Peripheriegeräte miteinander kommunizieren können. Ein solches Netzwerk wird auch als Wireless Personal Area Network (WPAN) bezeichnet. Hauptzweck von Bluetooth ist das Ersetzen von Kabelverbindungen zwischen Geräten.
(Bluetooth-Logo verlustfreie SVG-Version)
Theoretisch kann eine Datenübertragungsrate von 706,25 kBit/s beim Herunterladen (Download) bei gleichzeitigen 57,6 kBit/s beim Heraufladen (Upload) erreicht werden (asymmetrische Datenübertragung). Seit der Version 2.0 + EDR können Daten durch EDR (Enhanced Data Rate) maximal etwa dreimal so schnell übertragen werden, also mit rund 2,1 Mbit/s. Bereits seit Version 1.1 kann ein Bluetooth-Gerät gleichzeitig bis zu sieben Verbindungen aufrechterhalten, wobei sich die beteiligten Geräte die verfügbare Bandbreite teilen müssen (shared medium). Quelle
Unter Ubuntu installiert man die gebrauchten Pakete mit
apt-get install bluez-utils bluez-gnome gnome-bluetooth
optional kann man noch bluemon (ein bluetooth-monitor) dazu nehmen.
Für headsets muss das Paket bluez-btsco
ebenfalls installiert werden.
Tipps und Tricks
hciconfig hci0 down rmmod hci_usb
kdebluetooth
, im Konqueror muss man dann nur noch bluetooth:/
in der Adresszeile eingeben. watch hcitool con
kann man aktuelle Verbindungen überwachen./var/lib/bluetooth
abgelegt (geordnet nach der MAC-Adresse der BT-Adaptern).
Wenn der Befehl hciconfig
(wie hier im Beispiel) in der dritten Zeile DOWN anzeigt
hci0: Type: USB BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0 DOWN RX bytes:0 acl:0 sco:0 events:0 errors:0 TX bytes:0 acl:0 sco:0 commands:0 errors:0
muss der Bluetooth-Adapter noch aktiviert werden (hciconfig hci0 up
).
Der Befehl
hcitool scan
sollte eine Ausgabe nach folgenden Schema ergeben.
Scanning ... 00:80:37:25:55:96 Nokia 6630 00:E0:03:04:6D:36 Nokia 6210
Die unterstützten Profile kann man mit dem Befehl
sdptool browse 00:80:37:25:55:96
auswerfen lassen, die MAC Adresse (00:80:37…) muss man anpassen.
Dabei bedeuten die Abkürzungen:
Die richtigen Einstellungen in der Datei /etc/bluetooth/rfcomm.conf
eintragen:
rfcomm0 { # Automatically bind the device at startup bind yes; # Bluetooth address of the device device 00:80:37:25:55:96; # RFCOMM channel for the connection channel 1; # Description of the connection comment "Nokia 6630"; }
nach dem Neustart von Bluetooth (/etc/init.d/bluetooth restart
) sollte der Befehl rfcomm -a
eine ähnliche Ausgabe zeigen:
rfcomm0: 00:15:A0:4D:5A:3A channel 1 clean
Falls nicht bzw. alternativ zu „bind yes“ kann man das Gerät auch manuell Binden:
rfcomm connect 0 00:15:A0:4D:5A:3A 1
Das Telefon ist nun unter /dev/rfcomm0
erreichbar und kann über ein Wählprogramm angesprochen werden.
Falls ein Programm auf den Zugriff über /dev/modem besteht, legt man einen symbolischen Link (mit sudo ln -s /dev/rfcomm0 /dev/modem
)an.
Die Einwahl geht mit vielen Programmen, genannt wird immer wieder wvdial und kppp. KPPP wird man benutzen wenn man KDE benutzt bzw. unter Gnome z.B. zu wenig Arbeitsspeicher kein Problem ist. Andernfalls erledigt das Konsolenbasierte wvdial
die Aufgabe ebenso.
Kppp ist sehr komfortabel und braucht für den Provider o2 (ggf. andere Daten eintragen) und dem Nokia 6630 (spielt hier keine Rolle) folgende Einstellungen:
Die Datei /etc/wvdial.conf sollte um einen Eintrag für die Interneteinwahl ergänzt werden: Im Beispiel hier für den Provider o2. Vorrausgesetzt wird eine stehende Bluetooth-Verbindung über rfcomm als Gerät /dev/rfcomm0
.
[Dialer Defaults] Phone = Username = Password = New PPPD = yes [Dialer 6630] Modem = /dev/rfcomm0 ISDN = off Modem Type = Analog Modem Baud = 460800 Init = ATZ Init2 = AT+CGDCONT=1,"IP","surfo2" Phone = *99# Dial Prefix = Dial Attempts = 1 Dial Command = ATD Ask Password = off Password = gprs Username = eplus Auto Reconnect = off Abort on Busy = off Carrier Check = on Check Def Route = on Abort on No Dialtone = on Stupid Mode = off Idle Seconds = 0 Auto DNS = on
Andere Konfigurationsbeispiele sind hier aufgelistet bzw. hier eine passende Fehlerhilfe.
Danach kann die Einwahl mit wvdial 6630
gestartet werden. Statt 6630 gibt man den Name des Profils an.
Wenn man auch das Standard-gateway automatisch eingestellt haben möchte (und nicht nur die DNS-Server), muss man wvdial als root starten:
sudo wvdial 6630
siehe auch: KPPP: Most Frequently Asked questions
kppp (in Ubuntu 6.06 dapper, nicht in Ubuntu 7.04 feisty) meldet Fehler Couldn't find interface ppp0: No such device
:
auth
suchen und es gegen noauth
austauschen.They are saying to remove „auth“ and replace it with „noauth“ in /etc/ppp/options Also, remove it from the kppp config menu.
Wenn die Verbindung geklappt hat und man trotzdem keine Daten empfängt: klappt ein ping auf eine bekannte IP? Beispielweise ping 85.25.136.135 (für diesen Server?).
route add default gw 10.6.6.6
. 10.6.6.6 sollte durch die richtige IP des Gateways ersetzt werden, diese findet sich im Verbindungsstatistikfenster neben „Adresse auf Fremdrechner“ (bei mir 10.6.6.6).nameserver 62.134.11.4 nameserver 195.182.110.132
enthalten. Wenn nicht, dann ändern (sudo nano /etc/resolv.conf).
Wenn man sein Headset lediglich für Sprache (z.B. VoIP) einsetzen will, reicht die mäßige Soundqualität (8000khz mono) aus.
Das Modul snd_bt_sco
richtet eine Soundkarte (für ALSA) ein, auf die dann jedes Programm zugreifen kann. Dazu muss das Modul vorher mit
sudo modprobe snd_bt_sco
geladen werden. Danach taucht sie in der Liste der Soundkarten auf, was man mit
cat /proc/asound/cards
überprüfen kann. Dauerhaft kann man das Modul in der /etc/modules
eintragen (einfach snd_bt_sco in einer eigenen Zeile eintragen und abspeichern).
Nachdem man mit hcitool scan
die MAC-Adresse des entsprechende Gerätes herausbekommen hat, verbindet man sich zum Headset mit
btsco -v MAC
Die Qualität dürfte für Sprache reichen, für mehr muss man A2DP einrichten (siehe unten). Ausführlichere Informationen bietet die Seite von Christoph Langner noch ausführlicher (und einfacher) ist die Seite von Ubuntuusers für Bluetooth-headsets.
Wenn beide Geräte A2DP (Advanced Audio Distribution Profile) beherrschen kann Audio in hoher Qualität angehört werden. Dazu muss man in seiner Linux-Distribution A2DP-Unterstützung aktivieren.
Ab Ubuntu 7.10 (gutsy), bzw. bei ähnlich aktuellen Distributionen, dürfte die Einrichtung mit dem Paket bluetooth-alsa
(aus „universe“) sehr viel einfacher sein.
Auf 7.04 (feisty) ist leider ein etwas umständlicherer Weg nötig:
.a2dprc
anlegen (gedit ~/.a2dprc
) und mit diesem Inhalt füllen: [a2dpd] rate=44100 sbcbitpool=53 flags=0 enablereversestereo=1 enableautoconnect=1 timeout=2000 cmdplay=xmms --play cmdpause=xmms --pause cmdprev=xmms --rew cmdnext=xmms --fwd cmdnew=xmms --play cmdstop=xmms --stop enableavrcp=1 enablerereadconfig=1 enabledebug=1 flags=0 enablestdin=1 enableredirectalsa=0 address=XX:XX:XX:XX:XX:XX alsaoutput=
unter address
muss die korrekte MAC-Adresse eingetragen werden!
.asoundrc
(gedit ~/.asoundrc
) und mit diesem Inhalt füllen:pcm.headset { @args [BDADDR TIMEOUT] @args.BDADDR { type string default "00:13:1B:00:1F:02" } @args.TIMEOUT { type integer default 6000 } type sco bdaddr $BDADDR timeout $TIMEOUT } ctl.headset { type sco } pcm.a2dpd { type a2dpd }
sudo a2dpd
I now have stereo bluetooth on my desktop Bluetooth-alsa HOWTO: Bluetooth headset for Skype in Feisty How to Connect a Jawbone Headset to a Bluetooth Laptop on Ubuntu Gutsy (And Then Use Skype)
Profile sind einzelne Fähigkeiten die ein Gerät versteht:
Name (Kürzel) | Funktion |
---|---|
Advanced Audio Distribution Profile (A2DP) | Übermittlung von Audiodaten in hoher Qualität (gute Headsets und Musikwiedergabe) sehr wichtig. Geräte mit A2DP |
Dial-up networking (DUN) | Internet-Einwahlverbindung |
File Transfer Profile (FTP) | Dateiübertragung |
Headset Profile (HSP) | Sprachausgabe per Headset |
Human Interface Device Profile (HID) | Eingabe |
Serial Port Profile (SPP) | Serielle Datenübertragung |
Synchronisation Profile (SYNCH) | Datenabgleich |
Für das Erstellen von (Pico-) Netzen über Bluetooth bietet sich das Paket grml-btnet
(aus dem universe) an.
Senden und empfangen von Dateien via Bluetooth