Forum: Mikrocontroller und Digitale Elektronik USB Bluetooth Stick Probleme zwischen W10, Linux, Raspi


von Mitch S. (logis5s5)


Lesenswert?

Hallo,

habe ein nerviges Dauerproblem beim Wechseln meines Bluetooth Sticks 
zwischen diversen Betriebssystemen.

Ständig ist eine ordnungsgemässe Funktion nur möglich mit: Gerät 
entfernen und neu suchen und neu verbinden erforderlich.

Hardware:

Sender ist ein Logitech BT 4 Stick
Empfänger ist ein Bluetooth Audioverstärker.

BT Stick hängt an einem USB Hub.
Hub hängt an einem manuellem 4 fach USB Umschalter

Per Umschalter werden diverse PCs mit diversen OS als Sender ausgewählt.
Quasi ein USB only KVM

Maus, Tastatur, CAMs, Massenspeicher WLAN Sticks etc. funktionieren 
problemlos. Nur der BT Stick zickt.

Software:

Linux Mint 20.3, Raspian Bullseye, W10

Lösung:

???

scheint irgendwie eine unterschiedliche OS BT Key/ID Behandlung zu sein.

Wer kann mir insofern helfen, damit mein BT Audio mit allen OS 
problemlos
funktioniert ?

Edit: Ups falsches Forum, Sollte nach Software, sorry...

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Mitch S. schrieb:
> habe ein nerviges Dauerproblem beim Wechseln meines Bluetooth Sticks
> zwischen diversen Betriebssystemen.

Das ist so by Design. Was Du machst, ist ein Angriff auf die Bluetooth 
Verschlüsselung (Angreifer nutzt die selbe MAC Adresse wie der "echte" 
Host).

Abhilfe: Kaufe für jeden Host seinen eigenen USB Blueooth Stick. Die 
Geräte merken sich die Bluetooth Verschlüsselungs Keys in Abhängigkeit 
von der Hardware (MAC), und die Keys werden nicht auf den Stick 
übertragen und sind damit auf jedem Host unterschiedlich.

von Mitch S. (logis5s5)


Lesenswert?

Vielleicht könnte ein Mod bitte nach PC Hard- & Software verschieben ?


Zurück zum Thema
Leider ist die vorgehend beschriebene Abhilfe hier keine Option.

Mir geht es in meinem Umschalt Wechselszenario nicht um eine Maximierung 
der BT Sticks sondern um eine funktionierende Verschlankung des USB 
Peripheriezoos.

Trotzdem Dank für die ungewollte indirekte Suchhilfe. Denke jetzt als 
Workaround irgendwie an BT Cloning / Spoofing als mögliche 
Softwarelösung.

Ich hab aber erhebliche Defizite zur zielgenauen Herangehensweise:

Was ist hier vergleich- u. nachvollziehbar (per Tool oder Log) wirklich 
der Showstopper der USB Umschaltung ?
Betroffen wären vermutlich auch alle DUAL Boot und Virtualsystem ?

KLar irgendeine Software Konfig Kombi, aber welche genau ?
Wäre BT Cloning wirklich eine erfolgversprechende Software Lösung ?
Wird da auch was OS spezifisches auf den BT Stick geschrieben und der 
Stick selbst blockt erstmal ein anderes OS ?


Faktencheck:
a) Derzeitige BT Stick MAC bleibt für alle OS konstant

b) Ein Pairing (=Keyerzeugung, also Verschlüsselung ?) zum BT Verstärker 
findet ersichtlich nicht statt da keine Abfrage.

Also konstante MAC, kein Verschlüsselungs Key, nur irgendeine USB BT 
Gerätezuordnung und deshalb in meinen Augen also nichts 
sicherheitskritisches.

Wo sind diese funktionsentscheidenden, unterschiedlichen BT Parameter 
der OS hinterlegt  einsehbar  vergleichbar / ändebar ?

Probanden sind wie schon erwähnt W10 (bald W11), Mint 20 (bald 21), 
seltener Raspi Bullseye.

Bin bereit nachvollziehbar in die Welt der Halb- Voll-, Hell- und 
Dunkelbits von BT einzutauchen.

Zielführende Tips zum lockeren Einstieg (erstmal W10, Mint 20)?

Wäre schön wenn letztlich doch noch meine Wunsch Konstellation 'One BT 
Audio Stick for all Systems' machbar wäre.

von Frank K. (fchk)


Lesenswert?

Der einfachere Weg wäre eine USB-Soundkarte plus ein BT-Audiotransmitter 
am Ausgang der USB-Soundkarte. Damit wäre das gesamte BT-Thema erledigt.

fchk

von Mitch S. (logis5s5)


Lesenswert?

Jo, wäre sicherlich auch möglich.

Da wird dann aber zusätzlich ziemlich oft D/A, A/D, D/A hin und her 
konvertiert. Ist quali- und auch grössenmässig vermutlich nicht so der 
Burner gegenüber dem eigentlich ja funktionierendem D/D USB BT 
Minisender Knubbelchen.

von Frank K. (fchk)


Lesenswert?

Mitch S. schrieb:

> Ich hab aber erhebliche Defizite zur zielgenauen Herangehensweise:
>
> Was ist hier vergleich- u. nachvollziehbar (per Tool oder Log) wirklich
> der Showstopper der USB Umschaltung ?
> Betroffen wären vermutlich auch alle DUAL Boot und Virtualsystem ?
>
> KLar irgendeine Software Konfig Kombi, aber welche genau ?
> Wäre BT Cloning wirklich eine erfolgversprechende Software Lösung ?
> Wird da auch was OS spezifisches auf den BT Stick geschrieben und der
> Stick selbst blockt erstmal ein anderes OS ?

Du hast einen Stick, der nur die allerunterste Schicht des 
BT-Protokolls, nämlich HCI implementiert. HCI ist nur die allerunterste 
Schicht, die nur rohe Pakete senden und empfangen kann. Alles andere, 
und damit auch irgendwelche Assoziationen, IDs etc laufen auf dem Host, 
und das ist also immer unterschiedlich. Es ist noch nicht einmal gesagt, 
dass die BD Address auf dem Stick gespeichert ist - die kann auch vom 
Host generiert werden.

Es gibt auch USB-Sticks, die einen kompletten BT-Stack beinhalten, z.B. 
für HID (Tastaturen/Mäuse), damit BT-Tastaturen auch im BIOS 
funktionieren, oder SPP für serielle Verbindungen. Da hat der Host dann 
nichts mehr mit BT zu tun.

Ich habe Dir nicht umsonst den Rat mit der USB-Soundkarte und dem 
BT-Sender gegeben. Alles andere wird Dir heftige Kopfschmerzen 
verursachen. Jedes Windows- oder Linux-Update bringt die Gefahr, dass Du 
von vorne anfangen musst. Und da BT-Audio eh nur komprimiert ist, wirst 
Du sicher mit dem verlorenden LSB an Rauschen leben können.

fchk

von Mitch S. (logis5s5)


Lesenswert?

OK,

i surrender nachdem mich Wiki kurzfristig zum BT Stack Experten gemacht 
hat

Diese Stacks sind BT Chip- u. Herstellerspezifisch hochkomplexe (z.B. 
APTx)
proprietäre, oft lizensierte Kommunikationsdienste zwischen Chip und PC 
Software für Audio, Netzwerk, was der Geier was noch alles. Da ist 
angesagtes Kopfweh noch ziemlich milde ausgedrückt.

Kann mich jetzt wieder an einen älteren XP Bluesoleil Stick mit riesigem 
Funktionsangebot per Lizenzkey erinnern. Lang ists her.

Aber alles zurück auf Start und neuer Lösungsansatz.

Meine ursprüngliche manuelle Nervlösung mit:

   BT Gerät entfernen, neu koppeln und verbinden

müsste doch in Linux und Windows automatisiert durch die USB 
Initialisierung beim Umschalten irgendwie macrogesteuert scriptbar 
gemacht werden.

Anyone any functional ideas ? Ihr könntet schlagartig berühmt werden. 
Zumindest bei mir. Oder gibt es da schon was passendes ?

von Mitch S. (logis5s5)


Lesenswert?

So,

hab mal ein erstes grob funktionierendes Scriptgrundgerüst als Spielerei 
für Linux und meinen Logitech BT Stick und meinen BT Audio Receiver 
entworfen.
Alles vorest ohne Errorchecks und Programm Schleifen

verwendete non admin tools : lsusb u. bluetoothctl

Die cli cmds ersetzen die bisher erforderlichen halben Dutzend 
Mausklicks der blueman applet GUI.


Vielleicht mag ja jemand mit seinem BT Stick ausprobieren ?
Unterstützung u. Verbesserungen sind natürlich willkommen

Jetzt fehlt dann noch ein Pendant für W10 powershell. Da muss ich mich 
aber erst komplett neu (r)einarbeiten.



bt_check_skeleton.sh
1
#! /bin/bash
2
3
# bluetoothctl is my new script friend
4
# Vers 0.1
5
# 14/8/22
6
7
#### noch absolut unklar ist 
8
#### wo das script später in systemd events einhängt wird.
9
#### evtl usb event bei BT Device Plugin Neuerkennung?
10
11
#########################
12
# Übersicht alle BT cmd 
13
# bluetoothctl --help
14
#########################
15
16
# start script skeleton
17
#
18
##########################################################################
19
# some essential vars meines USB / BT Kombi
20
#
21
# my BT USB Chip ID from lsusb vendor:product
22
USB_ID_Logitech="0a12:0001"               
23
#
24
# my BT Audio Receiver Amp MAC from bluetoothctl devices list
25
BT_MAC_Amp="84:06:90:8A:7E:21"            
26
##########################################################################
27
#
28
#
29
clear
30
#
31
echo gleich gehts los
32
#
33
sleep 2 && echo
34
#
35
echo check ob richtiges USB Device vorhanden
36
#
37
#if # wenn kein Logitech vorhanden dann fertig (to do: if condition)
38
lsusb -d $USB_ID_Logitech                
39
#fi
40
41
#
42
sleep 3 && echo
43
#
44
# ansonsten weiter mit bluetooth cmd geraffel
45
echo weiter gehts mit bluetooth checking
46
#
47
48
#echo schalte erstmal Bluetooth ein && echo
49
#bluetoothctl power on         # vermutl. überflüssig ?
50
51
sleep 3 && echo
52
53
# zeige gefundene BT
54
echo zeige gefundene BT
55
bluetoothctl devices
56
57
sleep 3 && echo
58
59
# STEP 1
60
# mein BT Receiver Gerät entfernen, blinde Annahme Device ist vorhanden
61
bluetoothctl remove $BT_MAC_Amp      #84:06:90:8A:7E:21
62
63
sleep 3 && echo
64
65
# Step 2
66
# jetzt alle BT Devices der Umgebung neu suchen (timeout kürzer / länger
67
# evtl. noch feintunen)
68
bluetoothctl --timeout 5 scan on
69
70
sleep 3 && echo
71
72
# gefundene BT Devices zeigen
73
bluetoothctl devices
74
75
sleep 3 && echo
76
77
# STEP 3
78
# meine BT Receiver Audio MAC neu connecten
79
bluetoothctl connect $BT_MAC_Amp      #84:06:90:8A:7E:21
80
81
sleep 3 && echo
82
83
# kurze Gegenprobe, Gerät trennen
84
bluetoothctl disconnect $BT_MAC_Amp   #84:06:90:8A:7E:21
85
86
sleep 3 && echo
87
88
# nochmal connecten
89
bluetoothctl connect $BT_MAC_Amp      #84:06:90:8A:7E:21
90
91
sleep 3 && echo
92
93
# all done
94
echo skeleton done und exit
95
96
sleep 5 && echo
97
98
exit

von c-hater (Gast)


Lesenswert?

Mitch S. schrieb:

> i surrender nachdem mich Wiki kurzfristig zum BT Stack Experten gemacht
> hat
>
> Diese Stacks sind BT Chip- u. Herstellerspezifisch hochkomplexe (z.B.
> APTx)
> proprietäre, oft lizensierte Kommunikationsdienste zwischen Chip und PC
> Software für Audio, Netzwerk, was der Geier was noch alles. Da ist
> angesagtes Kopfweh noch ziemlich milde ausgedrückt.

Du hast ganz offensichtlich das eigentliche Problem immer noch nicht 
verstanden. Das sind nicht die Dienste, die der wie auch immer geartete 
Software-Protokollstack bereitstellt. Das ist Pillepalle.

Das Problem ist vielmehr, dass die allermeisten BT-Dingles keine eigene 
Logik für das Pairing besitzen und auch keinen Speicher für die 
Pairing-Keys. Das passiert alles im Treiber und nicht auf dem Dongle 
selber. Im Extremfall hat der Dongle nichtmal eine eigene MAC, sondern 
auch die stammt aus dem Treiber. Und die MAC ist die grundlegende Sache, 
an der das Pairing hängt.

> Meine ursprüngliche manuelle Nervlösung mit:
>
>    BT Gerät entfernen, neu koppeln und verbinden
>
> müsste doch in Linux und Windows automatisiert durch die USB
> Initialisierung beim Umschalten irgendwie macrogesteuert scriptbar
> gemacht werden.

Machbar? Ja. Sinnvoll? Definitiv nicht. Die Anschaffung eines 
zusätzlichen BT-Dongle wird um ein Vielfaches günstiger kommen...

von Mitch S. (logis5s5)


Lesenswert?

Hmm,

ich bin zwar etwas verunsichert, aber irgendwie schreiben wir inhaltlich 
doch aneinander vorbei. Vielleicht bin ich auch zu unpräzise und schreib 
zu viel Text.

Mein Problem ist kein Pairing.

Es findet kein Pairing zum BT Receiver statt. (s. unten Punkt b)
Der BT Receiver "läuft frei" und connected zum ersten gekoppelten BT 
Device welches Audio transmitted.

Mitch S. schrieb:

> Faktencheck:
> a) Derzeitige BT Stick MAC bleibt für alle OS konstant
>
> b) Ein Pairing (=Keyerzeugung, also Verschlüsselung ?) zum BT Verstärker
> findet ersichtlich nicht statt da keine Abfrage.
>
> Also konstante MAC, kein Verschlüsselungs Key, nur irgendeine USB BT
> Gerätezuordnung und deshalb in meinen Augen also nichts
> sicherheitskritisches.

bei a) mein Fehler, richtig BT Receiver MAC konstant.


Ich denke mein Problem  mit dem OS Verhalten kann mit folgendem 
reduzierten Szenario nachvollzogen werden:

1 USB BT Audio Sender, 1 BT Receiver Amp oder Headset ohne Pairing,
1 Linux PC, 1 W10 PC

den BT Sender in Linux koppeln und testen
den BT Sender in W10 koppeln und testen

dann BT Sender Stick mal umstecken und testen und wieder zurück

Nun sollten die ersten inkonsistenten Verbindungsprobleme sichtbar sein.
Sie können bei mir nur durch die eingangs beschriebene Nervprozedur 
umgangen werden und werden bald durch die begonnene Scriptgeschichte 
behoben sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.