Previous article
Artikeleinzelansicht Next article

Soundübertragung mit Bluetooth

Veröffentlicht am in Kategorie Technik

Kunibert hatte bereits mehrere Artikel zu dem Thema Sound-Übertragung vom Desktop-PC zu einem Analog-Gerät bzw. bluetooth-fähigen Gerät (zum Beispiel Kopfhörer) verfasst. Allerdings änderte sich seine Hardware- als auch Software-Konfiguration mehrmals, so dass vieles „Schnee von gestern“ ist. Die Lösung mittels HTTP-Streaming (PC mit VLC-Player-Anwendung als Server; ausgedientes Smartphone mit VLC-Player als Client und per Kabel mit Analog-Gerät verbunden) bewährte sich nicht als praktikabel.

„Digital Natives“ werden die Problematik vermutlich gar nicht verstehen. Sie besitzen smarte Geräte der neusten Generation, wischen zweimal auf ihrem smarten Phone und die Verbindung steht. Das setzt aber voraus, dass man ständig neue Geräte kauft und die Altgeräte schrotten kann. Das ist weder nachhaltig noch kostengünstig und setzt außerdem Kompromisse bzw. Einschränkungen bei der grafischen Darstellung und den Konfigurationsmöglichkeiten voraus. Mit einem klassischer Desktop-PC mit großem Monitor und bewährter Mausbedienung lässt sich dagegen gut arbeiten. Der Nachteil ist, dass viele dieser PCs keine Bluetooth-Hardware verbaut haben bzw. hatten und somit ein Bluetooth-Adapter, zum Beispiel ein sogenannter Bluetooth-USB-Stick, verwendet werden muss. Diese Adapter sind zwar relativ kostengünstig erwerbbar, müssen aber auch vom verwendetem Betriebssystem erkannt bzw. betrieben werden können.

Kuniberts l-e-t-z-t-e PC-Software-Konfiguration war ein Dual-Boot-System mit Linux-Ubuntu-Lubuntu-18 und Microsoft-Windows-11 Betriebssystemen und einer gemeinsamen Microsoft-Windows-NTFS-Daten-Partition. Grundsätzlich kann Linux zwar das NTFS-Dateisystem lesen und beschreiben aber einige wenige Linux-Anwendungen hatten Probleme mit dem NTFS-Rechte-System, zum Beispiel Snap-Anwendungen und der Pulse-Audio-Server. Microsoft-Windows-11 hatte zunächst keine Probleme bei der Erkennung und dem Betrieb des verwendeten Adapters mittels der grafischen Systemsteuerung. Als dann aber Probleme auftauchten, war kein Kommando-Tool standardmäßig vorhanden um deren Ursache nachzugehen. Linux-Ubuntu-Lubuntu-18 erkannte zunächst den Adapter nicht, sondern erst nach dem Linux-backports-modules und Firmware nachinstalliert wurde. Bei dem dann erfolgten Betrieb erschwerte der nicht einwandfreie laufende Pulse-Audio-Server die Eruierung der Ursachen bei auftretenden Störungen. Unter beiden Systemen trat das Problem auf, das die Geräte zwar gekoppelt werden konnten, die Verbindung aber unmittelbar danach sofort wieder getrennt wurde.

Kuniberts a-k-t-u-e-l-l-e PC-Software-Konfiguration ist ein reines Linux-System, also Lubuntu-22 und einem Linux-Datei-System auf der Datenpartition. Snap-Anwendungen und der Pulse-Audio-Server funktionieren so einwandfrei. Komischerweise lässt sich der grafische Bluetooth-Manager hier nicht installieren, möglicherweise ist die Software gesperrt, weil defekt. Das ist aber nicht tragisch, da man mit dem Kommando-Tool „bluetoothct“ sehr gut arbeiten kann. Der einzige Nachteil ist, dass man die Kommandos nicht vergessen darf, was nach einiger Zeit des Nichtgebrauchs sehr oft vorkommt und man korrekt in die Konsole eintippen muss. Auch ist die Verwendung der Alias-Bezeichnung der Geräte leider nicht möglich, so dass man zum Verbinden die „unhandliche“ Mac-Adresse der jeweiligen Geräte verwenden muss.

Konkretes Beispiel für eine Kopplung mit dem Kommado-Tool „bluetoothctl“

Um mit bluetoothctl Geräte verbinden zu können, muss der Bluetooth-Dienst einwandfrei arbeiten. Bei Problemen mit dem Verbinden, sollte man den Dienst kontrollieren. Gegebenenfalls hilft ein Neustart des Dienstes, manchmal hilft es auch den Adapter erneut einzustöpseln.

Status des Bluetooth-Dienstes abfragen
Dazu das Kommando „sudo systemctl status bluetooth.service“ eingeben. Ein fehlerfreier Betrieb wird so ähnlich wie die folgende Ausgabe angezeigt.

kunibert@HP:~$ sudo systemctl status bluetooth.service
● bluetooth.service – Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-04-01 18:57:55 CEST; 3s ago
Docs: man:bluetoothd(8)
Main PID: 2536 (bluetoothd)
Status: „Running“
Tasks: 1 (limit: 9258)
Memory: 776.0K
CPU: 105ms
CGroup: /system.slice/bluetooth.service
└─2536 /usr/lib/bluetooth/bluetoothd

Apr 01 18:57:55 HP bluetoothd[2536]: Starting SDP server
Apr 01 18:57:55 HP bluetoothd[2536]: Bluetooth management interface 1.21 initialized
Apr 01 18:57:55 HP bluetoothd[2536]: Endpoint registered: sender=:1.45 path=/MediaEndpoint/A2DPSink/sbc
Apr 01 18:57:55 HP bluetoothd[2536]: Endpoint registered: sender=:1.45 path=/MediaEndpoint/A2DPSource/sbc
Apr 01 18:57:55 HP bluetoothd[2536]: Endpoint registered: sender=:1.45 path=/MediaEndpoint/A2DPSink/sbc_xq_453
Apr 01 18:57:55 HP bluetoothd[2536]: Endpoint registered: sender=:1.45 path=/MediaEndpoint/A2DPSource/sbc_xq_453
Apr 01 18:57:55 HP bluetoothd[2536]: Endpoint registered: sender=:1.45 path=/MediaEndpoint/A2DPSink/sbc_xq_512
Apr 01 18:57:55 HP bluetoothd[2536]: Endpoint registered: sender=:1.45 path=/MediaEndpoint/A2DPSource/sbc_xq_512
Apr 01 18:57:55 HP bluetoothd[2536]: Endpoint registered: sender=:1.45 path=/MediaEndpoint/A2DPSink/sbc_xq_552
Apr 01 18:57:55 HP bluetoothd[2536]: Endpoint registered: sender=:1.45 path=/MediaEndpoint/A2DPSource/sbc_xq_552
kunibert@HP:~$

Das Kommandotool „bluetoothctl“ starten
Nach der Konsoleneingabe von „bluetoothctl“ gelangt man in den interaktiven Modus von bluetoothctl, der mit dem Prompt „[bluetooth]#“ angezeigt wird.

kunibert@HP:~$ bluetoothctl
Agent registered
[CHG] Controller 8C:88:2B:42:E1:5C Pairable: yes
[bluetooth]#

Registrierte Geräte auflisten lassen
Mit dem bluetoothctl-Kommando „devices“ werden die registrierten Geräte mit ihren MAC-Adressen und den Alias-Bezeichnungen gelistet.

[bluetooth]# devices
Device 60:8A:10:34:AD:1F R-S202D Yamaha
Device 00:00:00:96:8B:DD Transista
Device 00:58:56:5B:9A:8E IBH 2100-BK
[bluetooth]#

Gerät koppeln
In diesem Beispiel wird das Gerät mit der Bezeichnung „IBH 2100-BK“ gekoppelt. Leider ist die Verwendung der Alias-Bezeichnung nicht möglich. An das bluetoothctl-Kommando „connect“ ist die MAC-Adresse des Gerätes als Argument anzuhängen. Nach erfolgreicher Kopplung nimmt das Prompt die Bezeichnung des Gerätes an.

[bluetooth]# connect 00:58:56:5B:9A:8E
Attempting to connect to 00:58:56:5B:9A:8E
[CHG] Device 00:58:56:5B:9A:8E Connected: yes
Connection successful
[CHG] Device 00:58:56:5B:9A:8E ServicesResolved: yes
[IBH 2100-BK]#

Quellen und weiterführende Informationen
https://wiki.ubuntuusers.de/Bluetooth/Einrichtung
https://wiki.ubuntuusers.de/Howto/Bluetooth-Ger%C3%A4t_per_Kommandozeile_koppeln/


Kommentar schreiben (Keine Registrierung erforderlich)

Kunibert freut sich über Kommentare und Fragen. Um den möglichen Missbrauch der Kommentarfunktion zu erschweren, ist die Beantwortung einer Frage erforderlich. Kunibert bedankt sich für das Verständnis!

Die Mailadresse wird nicht veröffentlicht.

 

Die automatische Benachrichtigung kann - sofern gewünscht, auch nach dem Absenden diese Kommentares - in den Benachrichtigung selber, jederzeit selbständig deaktiviert werden.