Behebung von Bluetooth-Problemen
Bluetooth ist ein Nahfeld-Funkprotokoll, das zur Verbindung verschiedener Geräte mit geringer Bandbreite (wie Tastaturen, Mäuse und Headsets) verwendet wird. Neuere Versionen verfügen über einen Energiesparmodus mit etwas höherer Bandbreite und Reichweite.
Die Bluetooth-Lösung besteht aus einem Benutzermodus-Daemon namens bluetoothd, der über einen Management-Port im Kernel mit den Hardwaretreibern kommuniziert. Anwendungen, die mit dem bluetoothd-Daemon kommunizieren möchten, nutzen dafür eine D-Bus-API. Dies umfasst auch die verschiedenen Bluetooth-Applets von GNOME.
Bluetooth-Probleme identifizieren
Wurde die Bluetooth-Hardware gefunden?
-
make sure bluetooth was found and enabled (note hci0: and 'UP RUNNING'):
$ hciconfig hci0: Type: Primary Bus: USB BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 1021:4 SCO MTU: 96:6 UP RUNNING PSCAN RX bytes:15047 acl:0 sco:0 events:2433 errors:0 TX bytes:599323 acl:0 sco:0 commands:2431 errors:0 -
If the command returns nothing (no hci: info), then there is a hardware issue
$ lsusb -v | grep Bluetooth | grep DeviceProtocol bDeviceProtocol 1 Bluetooth -
If the lsusb command returns nothing, there is no hardware, a dmesg output would be needed
-
If the lsusb commands returns Bluetooth, then check for attached driver
$ lsusb -t | grep Wireless |__ Port 4: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 4: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M -
If Driver is empty,
lsusb -voutput would be needed to add ids -
If hciconfig shows output but not UP
$ hciconfig up -
Liste der gekoppelten Geräte:
$ bluetoothctl [bluetooth]# show [bluetooth]# devices [bluetooth]# info <mac addr of any device you have problems with>
Läuft der bluetoothd-Daemon?
-
Verify under systemd bluetooth is 'Active' and 'enabled'
$ systemctl status bluetooth ● bluetooth.service - Bluetooth service Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2017-10-04 16:07:40 EDT; 1 day 22h ago Docs: man:bluetoothd(8) Main PID: 27427 (bluetoothd) Status: "Running" Tasks: 1 (limit: 4915) CGroup: /system.slice/bluetooth.service └─27427 /usr/libexec/bluetooth/bluetoothd -
Überprüfen Sie, ob obex für die Ausführung konfiguriert ist (um Dateien vom Telefon zu übertragen)
$ systemctl --global --user is-enabled obex
enabled
Einfaches Debugging
Die meisten Bluetooth-Probleme treten im Paket bluez (bluetoothd), also im Benutzermodus-Daemon, auf.
-
Bearbeiten Sie
/usr/lib/systemd/system/bluetooth.service -
add
-dto ExecStart line as option to bluetoothd -
save and quit
$ systemctl daemon-reload
$ systemctl restart bluetooth
Das Debugging ist aktiviert und kann dabei helfen, die Ursache einiger Bluetooth-Probleme zu ermitteln.
$ journalctl -r -u bluetooth > /tmp/bluetoothd.out
Behebung von Firmware-Problemen
Es kann vorkommen, dass die Firmware von Bluetooth-Adaptern in einen Zustand gerät, in dem sie sich nicht mehr mit bestimmten (oder allen) Bluetooth-Geräten koppeln lässt. Solche Probleme lassen sich möglicherweise durch einen Neustart des Adapters beheben.
Bei einem Laptop mit integriertem Bluetooth-Adapter könnte dies folgendermaßen erreicht werden:
-
Rufen Sie die Firmware-Einstellungen (BIOS) des Laptops auf und deaktivieren Sie den integrierten Adapter.
-
Speichern Sie die Einstellungen und starten Sie den Laptop neu
-
Rufen Sie die Firmware-Einstellungen ein zweites Mal auf und aktivieren Sie den Bluetooth-Adapter erneut.
-
Speichern Sie und starten Sie neu.
-
Versuchen Sie nun, das Gerät erneut zu koppeln.
Want to help? Learn how to contribute to Fedora Docs ›