staging.inyokaproject.org

Bluetooth-Gerät per Kommandozeile koppeln

Achtung!

Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.

Hinweis:

Diese Howto-Anleitung wurde zuletzt von Newman68 am 25.03.2021 unter Ubuntu Mate 20.10 und Ubuntu Budgie 20.10 erfolgreich getestet.

Die Kopplung eines Ubuntu-Desktop-Rechners mit einem Bluetooth-Gerät kann normalerweise durch Bedienung in der GUI erfolgen, beispielsweise beim Gnome-Desktop im System-Menü (rechts oben) per Einstellungen → Bluetooth.

In diesem Howto wird am Beispiel des Bluetooth-Lautsprechers Yamaha YAS-106 ein alternativer Weg über die Kommandozeile beschrieben.

Anleitung

Diese Anleitung beruht auf im Internet gefundenen Blog-Einträgen.

Eine Kopplung zweier Bluetooth-Geräte erfordert immer drei Schritte:

  1. Pairing: Die beiden Kommunikationspartner müssen wechselseitig die Bluetooth-Adresse der Gegenstelle kennen.

  2. Trust: Sie müssen sich auch gegenseitig vertrauen. Dazu kann optional der Austausch von Passworten (PINs) vereinbart werden. Dies wird aber in diesem Howto nicht besprochen.

  3. Connect: Es muss eine Verbindung aufgebaut werden. Ein Schließen dieser Verbindung bedeutet nicht Verlust des Vertrauens oder Vergessen der Adresse; somit kann später die Verbindung ohne die beiden ersten Schritte wieder hergestellt werden.

Voraussetzungen

Die Bluetooth-Schnittstelle muss natürlich eingeschaltet sein. Dies kann auf der Kommandozeile mit dem Befehl rfkill überprüft und ggf. auch geändert werden:

rfkill list
rfkill unblock bluetooth 

Bei manchen Desktop-Varianten muss man rfkill als root ausführen, z.B. durch ein voran gestelltes sudo.

Die Aufhebung einer Blockierung auf Hardware-Ebene erfordert die Betätigung des Hardware-Schalters am Gerät.

Erstmalige Kopplung

Danach kann man mit dem Befehl

bluetoothctl 

in den interaktiven Modus von bluetoothctl wechseln, Rückmeldung bei Erfolg wie:

Agent registered
[CHG] Controller C0:E4:34:2C:D1:C2 Pairable: yes

Innerhalb des Programms dann

[bluetooth]# scan on 

eingeben - die Erfolgsmeldung lautet z.B. (mit einer Liste an gefundenen Bluetooth-Devices, angeführt vom eigenen Controller CHG):

Discovery started
[CHG] Controller C0:E4:34:2C:D1:C2 Discovering: yes
[NEW] Device 78:BD:BC:5F:57:58 [TV] UE48JU6450
[NEW] Device C8:84:47:3E:94:86 YAS-106 Yamaha 
[NEW] Device C8:B2:1E:58:64:2F SANITAS SBF70
[CHG] Device 78:BD:BC:5F:57:58 LegacyPairing: yes
[NEW] Device 10:ED:0D:C8:01:BA 10-ED-0D-C8-01-BA
[DEL] Device 10:ED:0D:C8:01:BA 10-ED-0D-C8-01-BA
[NEW] Device 10:ED:0D:C8:01:BA 10-ED-0D-C8-01-BA
...

Mögliche Fehler

  1. Ist der Bluetooth-Controller aus (z.B. wenn in /etc/bluetooth/main.conf der Controller durch den Befehl AutoEnable=false) defaultmäßig deaktiviert oder im Flugmodus, folgt eine Fehlermeldung (hier für den Flugmodus):

    Failed to start discovery: org.bluez.Error.NotReady
  2. Das Device ist bereits mit einem anderen Controller verbunden. Dann steht es diesem Rechner nicht zur Verfügung!

Wird das gesuchte Device aufgelistet, das fortlaufende Scannen mit dem Befehl

[bluetoooth]# scan off 

stoppen, die Adresse des gesuchten Devices mit der Maus markieren & in de Zwischenablage kopieren Strg + + C .

Mit

[bluetooth]# pairable on 

den Controller bereit machen, sich einem Device als Controller anzubieten - Erfolgsmeldung lautet:

Changing pairable on succeeded

Dann tatsächlich den Controller dem gewünschten Device anbieten (pairing):

[bluetooth]# pair C8:84:47:3E:94:86 

(Adresse aus der Zwischenablage einfügen mit Strg + + V .)

Meldung:

Attempting to pair with C8:84:47:3E:94:86
[CHG] Device C8:84:47:3E:94:86 Connected: yes
[CHG] Device C8:84:47:3E:94:86 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device C8:84:47:3E:94:86 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device C8:84:47:3E:94:86 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device C8:84:47:3E:94:86 ServicesResolved: yes
[CHG] Device C8:84:47:3E:94:86 Paired: yes
Pairing successful
[DEL] Device 65:A7:98:66:90:98 65-A7-98-66-90-98
[DEL] Device E0:4F:43:A6:70:09 AbilityBT_A0HBKC001514
[DEL] Device 10:ED:0D:C8:01:BA 10-ED-0D-C8-01-BA
[CHG] Device C8:84:47:3E:94:86 ServicesResolved: no
[CHG] Device C8:84:47:3E:94:86 Connected: no
[DEL] Device 78:BD:BC:5F:57:58 [TV] UE48JU6450
[DEL] Device C8:B2:1E:58:64:2F SANITAS SBF70

Das Device in die Liste der vertrauenswürdigen Geräte aufnehmen:

[bluetooth]# trust C8:84:47:3E:94:86 
[CHG] Device C8:84:47:3E:94:86 Trusted: yes
Changing C8:84:47:3E:94:86 trust succeeded

und schließlich die benutzbare Verbindung herstellen:

[bluetooth]# connect C8:84:47:3E:94:86 
Attempting to connect to C8:84:47:3E:94:86
[CHG] Device C8:84:47:3E:94:86 Connected: yes
Connection successful
[CHG] Device C8:84:47:3E:94:86 ServicesResolved: yes

Nun sollte das Device systemweit benutzbar sein. Das Programm mit

[bluetooth]# exit 

verlassen.

im Falle eines Lautsprechers sollte dieser jetzt als PulseAudio-Ausgabe aufgelistet werden:

pactl list sinks short 

Wiederherstellung der Kopplung

Nach Abbau der Verbindung, z.B. nach einem Neustart muss die Bluetooth-Verbindung entweder

  • über den Bluetooth-Manager

  • oder über die Konsole mit

    bluetoothctl
    [bluetooth]# connect C8:84:47:3E:94:86 

erneuert werden. Pairing und Trust bleiben erhalten, bis man es explizit widerruft.

Diese Revision wurde am 8. Oktober 2022 12:35 von karzer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Howto