ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Einrichtung

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/bluetooth.png Bluetooth ist eine Nahfeld-Funktechnik, die meist zur Kommunikation mit tragbaren Geräten wie z.B. Mobiltelefonen dient. Auch externe Peripheriegeräte wie Tastaturen, Zeigegeräte (Computer-Mäuse), Kopfhörer mit Mikrofon (Headsets) oder normale Kopfhörer können angebunden werden. Die notwendige Funkschnittstelle ist bei diesen Geräten bereits eingebaut. Beim Computer lässt sie sich via USB (Bluetooth-Dongle) nachrüsten, falls nicht bereits vorhanden.

Bei einer Standardinstallation von Ubuntu ist Bluetooth bereits über das Benachrichtigungsfeld im Panel installiert. Dieser Artikel gibt Hinweise, wie man das bei anderen Desktop-Umgebungen nachholt. In dieser Anleitung geht es nur um die grundsätzliche Einrichtung der Verbindung. Einzelne Anwendungen werden in separaten Artikeln besprochen.

Installation

Folgende Pakete müssen für ein korrektes Funktionieren von Bluetooth installiert sein [1]:

Allgemein

Ubuntu 12.04

  • bluez-utils

  • libopenobex1

Befehl zum Installieren der Pakete:

sudo apt-get install bluez-utils libopenobex1 

Oder mit apturl installieren, Link: apt://bluez-utils,libopenobex1

zur Nutzung der GUI unter GNOME oder Unity:

  • gnome-bluetooth

Befehl zum Installieren der Pakete:

sudo apt-get install gnome-bluetooth 

Oder mit apturl installieren, Link: apt://gnome-bluetooth

Zur Nutzung der GUI unter Xfce:

  • blueman (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install blueman 

Oder mit apturl installieren, Link: apt://blueman

Ubuntu 16.04, Unity und 64-Bit-Architektur

Gültig für Ubuntu 16.04 und der unter GUI Unity: in der 64-Bit-Architektur.

Nachfolgende Programme sind grundsätzlich in der Standardinstallation enthalten

  • bluez

  • bluez-cups

  • bluez-obexd

  • gnome-bluetooth

  • indicator-bluetooth

  • libbluetooth3:amd64

  • libgnome-bluetooth13:amd64

  • pulseaudio-module-bluetooth

Befehl zum Installieren der Pakete:

sudo apt-get install bluez bluez-cups bluez-obexd gnome-bluetooth indicator-bluetooth libbluetooth3:amd64 libgnome-bluetooth13:amd64 pulseaudio-module-bluetooth 

Oder mit apturl installieren, Link: apt://bluez,bluez-cups,bluez-obexd,gnome-bluetooth,indicator-bluetooth,libbluetooth3:amd64,libgnome-bluetooth13:amd64,pulseaudio-module-bluetooth

Ubuntu 16.04, LXDE und 32-Bit-Architektur

zur Nutzung der GUI LXDE: in der 32-Bit-Architektur.

Nachfolgende Programme sind grundsätzlich in der Standardinstallation enthalten

  • blueman

  • bluez

  • bluez-obexd

  • libbluetooth3:i386

Befehl zum Installieren der Pakete:

sudo apt-get install blueman bluez bluez-obexd libbluetooth3:i386 

Oder mit apturl installieren, Link: apt://blueman,bluez,bluez-obexd,libbluetooth3:i386

Prüfung

Vereinzelt werden USB-Sticks vom Computer nicht erkannt oder interne Funkschnittstellen sind defekt. Im Terminal [3] kann mit dem Befehl

lsusb | grep Bluetooth 

festgestellt werden, ob Bluetooth-Geräte am USB-Bus vorhanden sind. Dabei werden auch nähere Informationen zum Gerät angezeigt. Zum Beispiel sieht die Ausgabe der betreffenden Zeile so aus:

Bus 003 Device 004: ID 1310:0001 Roper Class 1 Bluetooth Dongle

Treiber

Gelegentlich fehlt auch der geeignete Treiber, siehe dazu Linux-backports-modules

Konfiguration

Nach der Installation muss der Bluetooth-Dienst evtl. neu gestartet werden. Dies geschieht im Terminal [3] mit dem Befehl

sudo service bluetooth restart 

bzw. mit

sudo /etc/init.d/bluetooth restart 

Sind die benötigten Pakete installiert, wird beim Einstecken des Bluetooth-Dongles normalerweise automatisch das hcid (Host Controller Interface Device) gestartet. Dieses dient als Schnittstelle zum Bluetooth-Gerät. Informationen über das Bluetooth-Gerät erhält man mit dem Befehl:

hciconfig --all 

Die Option --all sorgt dabei für eine erweiterte Informationsausgabe. Zum Beispiel sieht die Ausgabe so aus:

hci0:   Type: USB
        BD Address: 00:0B:0D:33:8E:12 ACL MTU: 120:20 SCO MTU: 64:0
        UP RUNNING PSCAN ISCAN
        RX bytes:834 acl:21 sco:0 events:51 errors:0
        TX bytes:2926 acl:39 sco:0 commands:18 errors:0
        Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: SLAVE ACCEPT
        Name: 'konidesktop-0'
        Class: 0x100100
        Service Classes:
        Device Class: Computer, Uncategorized
        HCI Ver: 1.2 (0x2) HCI Rev: 0x0 LMP Ver: 1.2 (0x2) LMP Subver: 0x757
        Manufacturer: Silicon Wave (11)

Von besonderem Interesse sind hier die BD-Hardware-Adresse in der zweiten Zeile sowie der Name und die Klasse (Class). Der Name wird automatisch vergeben und ist mit dem Namen des Computers identisch (bis auf das angehängte -0). Die Klasse gibt an, welche Geräteart mit diesem Bluetooth-Anschluss verbunden ist.

Wenn der Gerätename nicht angezeigt wird oder geändert werden soll, kann das mit folgendem Befehl leicht gemacht werden:

hciconfig hci0 name neuer_Name 

Dabei steht in diesem Beispiel hci0 für ein Bluetooth-Gerät, das mit dem Befehl hciconfig angezeigt wurde.

Verbindung mit dem Mobiltelefon

Beim Mobiltelefon muss man nun die Bluetooth-Menüpunkte durchgehen - diese sind bei jedem Gerät woanders untergebracht. Besonders wichtig ist, dass es auf "Sichtbar" eingestellt wird. Außerdem kann ein Name vergeben werden, der nachher bei der Verbindung angezeigt wird. Bei einigen Telefonen kann man sich auch die verfügbaren Dienste anzeigen lassen.

Wenn man diese Einstellungen vorgenommen hat und Bluetooth am Mobilgerät eingeschaltet ist, kann man am Computer im Terminal mit dem folgenden Befehl nach verfügbaren Mobilgeräten suchen:

hcitool scan 

Nun werden alle gefundenen Geräte (außer dem PC, der die Anfrage gestartet hat) mit ihrer Hardware-Adresse und dem Namen angezeigt. Das sieht beispielsweise so aus:

Scanning ...
        00:0E:07:73:3C:B1       K700i

Die Hardware-Adresse des Mobilgerätes ist dementsprechend eine andere als die des USB-Dongles.

Pairing

Der Begriff Pairing (Paarung) bezeichnet die (permanente) Bindung zweier Geräte aneinander. Bei Verbindungen über Bluetooth oder andere Funktechniken ist es sehr sinnvoll, wenn sich die Geräte bei jeder Verbindung automatisch identifizieren. Damit zwei Geräte aneinander gebunden werden können, müssen sie zunächst einander bekannt gemacht werden. Dies geschieht bei Bluetooth-Verbindungen durch eine gemeinsame PIN. Diese Nummer muss bei der ersten Kontaktaufnahme auf allen beteiligten Geräten kurz nacheinander eingegeben werden. Je nach Anwendung kann eine PIN auch zufällig ausgewählt werden.

Ubuntu 12.04

./pairing-edgy.png Nach dieser Eingabe wartet die Bluetooth-Schnittstelle des Rechners auf eine Anfrage zum Pairing. Diese Anfrage kann man nun z.B. vom Mobiltelefon aus einleiten, indem man es nach neuen Bluetooth-Partnern suchen lässt und nach erfolgreicher Suche einen beliebigen PIN eingibt (sobald man von dem Gerät dazu aufgefordert wurde). Bekommt der Rechner nun eine Anfrage, so erscheint ein entsprechender Hinweis und ein (blinkendes) Bluetooth-Symbol in der Panel-Leiste (siehe Bild). Das Bluetooth-Symbol muss man nun anklicken. Daraufhin wird man zur Eingabe der PIN aufgefordert. Nach Eingabe der gleichen, vierstelligen PIN auf dem Mobiltelefon und am Rechner sind die Geräte aneinander gebunden. Die Datenübertragung ist nun möglich.

Sollte das Pairing fehlschlagen (Fehlermeldung des Mobiltelefons und es erscheint kein Fenster für den Schlüssel auf dem Desktop), so muss man unter GNOME bzw. Xfce ggf. das Bluetooth-Applet von Hand starten:

bluetooth-applet 

Ubuntu 16.04

Wenn das Pairing von einem Rechner mit der GUI Unity eingeleitet wird, muss im Mobiltelefon in der Einstellung Bluetooth der Unter-Menüpunkt "sichtbar" aktiv sein.

Im rechten Teil des Unity-Panel ist das Bluetooth- Symbol zu sehen. Nach dem Anklicken öffnet ein Fenster. In der untersten Zeile dieses Fenster muss das Feld "Bluetooth-Einstellungen..." aktiviert werden.

Ein weiteres Fenster namens "Bluetooth" wird geöffnet. Im unteren rechten Teil befindet sich der Button + . Wird dieser Button betätigt, geht das Fenster "Suchen nach Geräten" auf, Im Feld Geräte erscheint das gefundene Mobiltelefon. Diese Zeile muss angeklickt werden und der Button "weiter" ist aktiviert. In der Default- Einstellung wird eine PIN automatisch generiert. Mit Betätigen des Button "weiter" wird diese sowohl auf dem Rechner als auch im Mobiltelefon angezeigt und muss auf beiden Geräten bestätigt werden.

Pairing mit bluetooth-agent (gilt für Ubuntu 12.04)

sudo bluetooth-agent PIN HARDWARE-ADRESSE 

und am Bluetooth-Gerät die PIN eingeben bzw. bestätigen. Manche Systeme benötigen gleichzeitig in einem zweiten Terminal:

sudo rfcomm connect hci0 HARDWARE-ADRESSE 

Dann kann es sein, dass der erste Befehl nur:

sudo bluetooth-agent PIN 

lauten darf.

Dual-Boot Systeme

Möchte man ein Bluetooth-Gerät auf einem Dual-Boot System oder einem Rechner mit Dongle verwenden, muss das Pairing üblicherweise beim Wechsel des Betriebssystems oder des Dongle auf den anderen Rechners jedes Mal erneut durchgeführt werden. Das liegt daran, dass während des Pairings ein zufälliger Schlüssel generiert wird, der zusätzlich zur BD-Hardware-Adresse für die Authentifizierung notwendig ist.

Die Schlüssel werden unter Ubuntu 12.04 in der Datei /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/linkkeys gespeichert.

Dabei ist XX:XX:XX:XX:XX:XX die BD-Hardware-Adresse des Bluetooth-Empfängers bzw des Dongle am eigenen Rechner. Die Datei linkkeys enthält für jedes Bluetooth-Gerät, mit dem ein Pairing durchgeführt wurde, eine eigene Zeile.

Möchte man auf einem Dual-Boot System ein Bluetooth-Gerät verwenden, muss das Pairing üblicherweise beim Wechsel des Betriebssystems jedes Mal erneut durchgeführt werden. Das liegt daran, dass während des Pairings ein zufälliger Schlüssel generiert wird, der zusätzlich zur BD-Hardware-Adresse für die Authentifizierung notwendig ist. Die Schlüssel werden in der Datei /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/linkkeys gespeichert. Dabei ist XX:XX:XX:XX:XX:XX die BD-Hardware-Adresse des Bluetooth-Empfängers am eigenen Rechner. Die Datei enthält für jedes Bluetooth-Gerät, mit dem ein Pairing durchgeführt wurde, eine eigene Zeile. Das Bluetooth-Gerät selbst merkt sich normalerweise nur die letzte BD-Hardware-Adresse und den dazugehörigen Schlüssel des letzten erfolgreichen Pairings.

Um ein erneutes Pairing zu vermeiden, muss also der Schlüssel auf dem System auslesen werden, bei dem das letzte Pairing durchgeführt wurde, und dieser in die entsprechende Zeile der Datei linkkeys eintragen werden.

sudo cat /var/lib/bluetooth/11:22:33:44:55:66/linkkeys 

Sieht die Datei linkkeys auf dem System A, mit dem das letzte Pairing durchgeführt wurde, so aus:

01:23:45:67:89:AB 0123456789ABCDEF0123456789ABCDEF 0 4
FE:DC:BA:98:76:54 FEDCBA9876543210FEDCBA9876543210 4 0

und möchte man das Gerät mit der BD-Hardware-Adresse 01:23:45:67:89:AB auch auf dem System B ohne erneutes Pairing benutzen, so muss der auf System B gespeicherte Schlüssel entsprechend angepasst werden:

01:23:45:67:89:AB 83A9238C75A8676F7DB976F310A29F23 0 4
FE:DC:BA:98:76:54 8458F987265E985A29857C2857A3857A 4 0

Die Schlüssel werden unter Ubuntu 16.04 in der Datei /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/YY:YY:YY:YY:YY/info gespeichert.

Je Bluetooth-Gerät ist ein Verzeichnis YY:YY:YY:YY:YY mit der Datei info vorhanden. Das Bluetooth-Gerät selbst merkt sich normalerweise nur die BD-Hardware-Adresse, den Rechnernamen und den dazugehörigen Schlüssel des letzten erfolgreichen Pairings.

Um ein erneutes Pairing zu vermeiden, müssen die Angaben Key, Type und PINLength auf dem System ausgelesen werden, bei dem das letzte Pairing durchgeführt wurde, und dieser in die entsprechende Zeilen des anderen Rechners oder Betriebssystems eingetragen bzw geändert werden. Im Mobiltelefon ist dann immer der erste Rechnernamen gespeicher.

Dafür eignet sich ein Dateimanager mit Root-Rechte. z.Bsp:

gksudo nautilus 

Ermittelte und in den anderen Rechner einzutragende Werte.

[LinkKey]
Key=0123456789ABCDEF0123456789ABCDEF
Type=5
PINLength=0

Eine kurze Anleitung in Englisch für den Austausch des Schlüssels für ein Windows/Linux Dual-Boot-System findet man im Blogbeitrag Bluetooth link keys on dual-boot systems 🇬🇧.

Deaktivierung beim Start bis Ubuntu 14.04

Wer nicht möchte, dass Bluetooth bei jedem Systemstart aktiviert wird, kann dies mit rfkill tun. Dazu sollte man folgenden Befehl in seine /etc/rc.local einfügen:

rfkill block bluetooth

Dadurch kann Bluetooth später einfach über das Applet wieder aktiviert werden.

Deaktivierung beim Start mit systemd ab Ubuntu 14.10

Alternativ kann man auch einen systemd Service anlegen. Dazu sollte die Datei /lib/systemd/system/disablebluetooth.service mit folgendem Inhalt erstellt werden:

#########################################################################
#
# disablebluetooth.service
# systemd service: disable bluetooth at start
#
#########################################################################

[Unit]
Description=Disable Bluetooth

[Service]
Type=oneshot
ExecStart=/usr/sbin/rfkill block bluetooth

[Install]
WantedBy=multi-user.target

# EOF

Dieser Service muss danach noch aktiviert werden.

sudo systemctl enable disablebluetooth.service  

Konfigurationsdateien

Mit der Installation von bluez-utils (in Ubuntu 12.04) bzw bluez (in Ubutu 16.04) werden unter /etc/bluetooth/ verschiedene Konfigurationsdateien angelegt. Hier müssen im Ubuntu 12.04 einige kleine Einstellungen vorgenommen werden. Bei Ubuntu 16.04 sind Änderungen nur in der Datei rfcomm.conf.dpkg-remove notwendig, wenn dieses Merkmal genutzt werden soll. Dazu benötigt man Root-Rechte.

main.conf in Ubuntu 12.04

Die Datei /etc/bluetooth/main.conf (früher hcid.conf) ist die zentrale Konfigurationsdatei für Bluetooth. Besonders wichtig ist im unteren Bereich der Eintrag class. Dieser sollte bei einem Mobiltelefon auf:

class 0x100100;

eingestellt sein. Ansonsten muss man hier eigentlich keine Änderungen vornehmen.

Sollte es Probleme beim sog. "Pairing" mit dem Mobiltelefon oder anderen Geräten geben, empfiehlt es sich hier den Eintrag

pin_helper = /usr/bin/bluez-pin

auf

pin_helper = /usr/bin/bluepin

abzuändern.

main.conf in Ubuntu 16.04

Die Datei /etc/bluetooth/main.conf ist Ubuntu 16.04 und der unter GUI Unity vorhanden aber komplett auskommentiert.

⚓︎

rfcomm.conf / rfcomm.conf.dpkg-remove

rfcomm.conf im Ubuntu 12.04 und rfcomm.conf.dpkg-remove im Ubuntu 16.04

Einige Programme benötigen zur Kommunikation eine serielle Schnittstelle. Diese wird bei Bluetooth mit rfcomm zur Verfügung gestellt. Damit lassen sich dem Mobiltelefon Modembefehle senden. Dies wird z.B. benötigt, wenn man den Akkustand abfragen oder über GPRS ins Internet gehen will. Bei der Einrichtung wird das Mobilgerät mittels seiner Hardwareadresse an ein rfcomm-device gebunden. Evtl. muss dabei auch ein Kanal angegeben werden. Wie dies genau funktioniert, wird in der jeweiligen Anleitung für die entsprechende Software erklärt.

Die Datei rfcomm.conf bzw. rfcomm.conf.dpkg-remove enthält diejenigen rfcomm-devices, die beim Systemstart schon eingerichtet werden sollen. Ein recht gutes Beispiel ist bereits in der Datei gegeben.

Nähere Informationen zum Umgang mit rfcomm sind in der rfcomm-manpage 🇬🇧 erhältlich.

Datenübertragung (Ubuntu 16.04)

Dateien vom PC zum Mobiltelefon

daten-sen.png Das Bluetooth-Symbol im Panel anklicken.

Wenn die Einstellung dem Bild entspricht und das Bluetooth-Symbol um ein Schloss- Symbol erweitert ist, besteht die Verbindung zum Mobiltelefon.

Auf das Feld "Dateien senden..." (siehe Mauszeiger im Bild) klicken und es öffnet das Fenster mit den Namen "Bluetooth-Datenübertragung". In diesem Fenster kann zwischen suchen (Lupensymbol), Abbrechen und Auswahl gewählt werden. Ist die zu sendende Datei gefunden und markiert, wird die Übertragung mit dem betätigen des Button Auswahl eingeleitet. Die Annahme am Mobiltelefon muss bestätigt werden. Bei einem Samsung GT-I8190 wird die Datei im Ordner Bluetooth abgelegt.

Dateien vom Mobiltelefon zum PC

Hinweis:

Im Wiki "GNOME-Bluetooth" unter der Überschrift Dateien an den-PC und im Wiki "gnome-user-share" unter der Überschrift Dateien über Bluetooth empfangen sind die Abschnitte für Ubuntu 16.04 getestet.

Auf der Seite "Persönliche Dateifreigabe" sind zwei Haken , wie im Wiki "Dateien über Bluetooth empfangen" beschrieben, zu setzen. Diese Seite erreicht man in der GUI Unity über die 1. Schaltfläche "Rechner durchsuchen" und gibt dort "per" ein.

Dienste

SDP (Service Discovery Protocol) dient zur Abfrage der auf dem entfernten Gerät verfügbaren Dienste (Bluetooth Profile). Welche Dienste das Gerät anbietet, lässt sich mit dem Befehl

sdptool browse 

auslesen. Verwendet man mehrere Bluetooth-Geräte, gibt man nach dem Befehl und einem Leerzeichen noch die Hardware-Adresse des gewünschten Gerätes an. Ansonsten werden alle Geräte ausgelesen. Die Liste kann unter Umständen recht lang sein und einige Dienste enthalten. Hier wird exemplarisch einer herausgegriffen:

Service Name: OBEX File Transfer
Service RecHandle: 0x1000d
Service Class ID List:
  "OBEX File Transfer" (0x1106)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 7
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX File Transfer" (0x1106)
    Version: 0x0100

Wichtig sind hier der Name des Dienstes und der Kanal, über den er läuft. Jeder Dienst läuft über einen anderen Kanal und bietet eine andere Funktion an. Der hier aufgeführte OBEX File Transfer ist für das "Herunterladen" von Dateien vom Mobiltelefon zuständig. Dies kann entweder per Kommandozeile oder mit einem Programm wie KDEBluetooth geschehen. Dabei wird oft der Kanal 7 verwendet, möglich ist aber z.B. auch Kanal 11 bei Geräten der eSerie von Nokia.

Anwendungen

Es gibt zahlreiche Programme, die Kommunikation, Datenaustausch, Synchronisation und mehr zwischen mobilen Geräten und dem Rechner über die Bluetooth-Schnittstelle ermöglichen. Diese sind im Artikel Anwendungen für Mobilgeräte zusammengefasst. Auch stationäre Computer können per Bluetooth verbunden werden.

Diese Revision wurde am 22. Januar 2017 19:14 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Hardware, Netzwerk, Kommunikation