ubuntuusers.de

Bluetooth will nicht mehr

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.10 (Kinetic Kudu)
Antworten |

MasterQ

Avatar von MasterQ

Anmeldungsdatum:
12. März 2023

Beiträge: Zähle...

Hallo,

ich hatte meinen XBox One Controller per Bluetooth verbunden und es hat auch kurzzeitig funktioniert. Jetzt kann ich den Controller nicht mehr verbinden.

Praktisch alle Aktionen in bluetoothctl schlagen fehl mit ähnlichen Meldungen: "org.bluez.Error.Busy" oder auch "org.bluez.Error.Failed".

Man kann nun viele Artikel im Netz bezüglich dieser Meldungen finden, aber keine der Lösungsvorschläge hat bisher bei mir funktioniert.

  • rmmod und modprobe btusb

  • rfkill block und unblock bluetooth

  • Neuinstallation von bluez

Alles hat nichts gebracht.

Hat jemand noch einen Vorschlag, was ich probieren könnte?

Mein Adapter wird folgendermaßen erkannt: Bus 001 Device 004: ID 0bda:8771 Realtek Semiconductor Corp. Bluetooth Radio

Mein Verdacht ist, dass das Tool bei den Einstellung nicht 100%ig tut. Weil manchmal kann ich per bluetoothctl was erreichen, so die Verbindung zu einem Lautsprecher. Aber alle Erfolge sind irgendwie nicht rekonstruierbar. GUI und bluetoothctl scheinen sich gegenseitig zu stören.

Gruß

Joachim

MasterQ

(Themenstarter)
Avatar von MasterQ

Anmeldungsdatum:
12. März 2023

Beiträge: 190

Ich bin ein bisschen weiter.

Es scheitert beim Pairing:

Obwohl es mir gelungen scheint, den XBox Controller mit der Option "LegacyPairing: no" mit scan zu finden, kommt der Prompt zur PIN-Eingabe.

[bluetoothctl]# info EC:83:50:B6:A3:90
Device EC:83:50:B6:A3:90 (public)
	Name: Xbox Wireless Controller
	Alias: Xbox Wireless Controller
	Class: 0x00000508
	Icon: input-gaming
	Paired: no
	Bonded: no
	Trusted: yes
	Blocked: no
	Connected: no
	LegacyPairing: no
[bluetoothctl]# pair EC:83:50:B6:A3:90
Attempting to pair with EC:83:50:B6:A3:90
[CHG] Device EC:83:50:B6:A3:90 Connected: yes
[CHG] Device EC:83:50:B6:A3:90 Connected: no
[CHG] Device EC:83:50:B6:A3:90 Connected: yes
Request PIN code
[agent] Enter PIN code: [CHG] Device EC:83:50:B6:A3:90 Connected: no
[agent] Enter PIN code: Request canceled
Failed to pair: org.bluez.Error.AuthenticationCanceled

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 744

Hallo auch,

ohne Adapter mal?(falls Du dem MS Adapter meinst) Ich weiß aber nicht wie aktuell das ist.

https://wiki.ubuntuusers.de/Howto/XBox_ONE_Wireless_Controller_%C3%BCber_Bluetooth_nutzen/

GUI und bluetoothctl scheinen sich gegenseitig zu stören.

Inst. mal _blueman_. Vllt. kommst Du eher dahinter.

MasterQ

(Themenstarter)
Avatar von MasterQ

Anmeldungsdatum:
12. März 2023

Beiträge: 190

https://wiki.ubuntuusers.de/Howto/XBetooth_nutzen/

Das ist noch aktuell. Danach hatte ich letzte Woche meinen Gamepad eingerichtet und da es ging auch.

Das eigentliche Problem scheint zu sein, dass das System versucht, den XBox Controller zu verbinden und an einer PIN-Eingabe scheitert. Das hat zur Folge, dass der Controller als verbunden angezeigt wird und ein, zwei Sekunden später schon nicht mehr.

Es klemmt somit am sogenannten Legacy Pairing.

Da muss ich mal schaun, wie ich hciconfig dazu bringe, sspmode permanet auf 1 zu halten.

Andere Sachen waren, dass ein "scan on" solange läuft, bis man das abschaltet. Ansonsten kommt ein "Busy". Ein Reboot brachte mich auch weiter. Wurden zunächst nur 9 Buttons erkannt, sind es jetzt 14.

Da hatten sich einige Sachen untereinander verklemmt. Und wichtig ist auch, dass man bluetoothctl Zeit lässt. So wurde z.B. angezeigt, dass das Pairing fehl geschlagen war und beim zweiten Versuch direkt danach kam die Meldung, dass das Pairing schon existierte. Was auch der Fall war. So was verwirrt natürlich.

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 744

Andere Sachen waren, dass ein "scan on" solange läuft, bis man das abschaltet.

Ist glaube bei bluetoothctl normal. Der Controller falls registriert muss auch dann erst wieder zuvor entfernt werden.

Lösche mal den Controller in blueman und mache über die Ubuntu GUI neues Suchen/Paaren. Dann in Blueman rein und falls nicht gesetzt Trust/Vertrauenswk.(Stern) setzen. Dann schauen ob Verbindung zustande kommt.

am sogenannten Legacy Pairing.

Was ist damit gemeint?, mal den Gockel fragen...

-

Ok, ist nur der aktive Status. Meine Güte.

So was verwirrt natürlich.

Deine letzten Absätze verwirren schon allein. Also am Besten Schritt für Schritt.

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 744

mgl. Fehlerausgaben:

systemctl status bluetooth.service
journalctl --since "today" | egrep -i blue

Legacy Pairing. Falls es Jmd. interessiert.

MasterQ

(Themenstarter)
Avatar von MasterQ

Anmeldungsdatum:
12. März 2023

Beiträge: 190

Marant-- schrieb:

Hallo auch,

ohne Adapter mal?(falls Du dem MS Adapter meinst) Ich weiß aber nicht wie aktuell das ist.

Den original MS-Adapter hatte ich nicht drin. Sonst kriegt der sich der mit anderem Zeugs noch in die Haare. Der MS-Adapter meldet sich aber auch nicht als Bluetooth-Gerät.

Marant-- schrieb:

Deine letzten Absätze verwirren schon allein. Also am Besten Schritt für Schritt.

Sorry, bin ja selber verwirrt.

Marant-- schrieb:

mgl. Fehlerausgaben:

systemctl status bluetooth.service
journalctl --since "today" | egrep -i blue

beide bringen eine Menge. Leider lässt sich das nicht mehr meinen Aktionen von vorhin zuordnen.

Ich werde morgen hier besser aufpassen und auch versuchen, die Meldungen zu verfolgen.

Allerdings bin ich grad per Bluetooth verbunden und habe keine Probleme mehr, mich zu verbinden. Vielleicht habe ich das Problem ja wegverwirrt. 😛

Morgen wird's sich zeigen, ob ich mich wieder ohne Aufwand verbinden kann.

Ich melde mich, wenn's dann noch klemmt.

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 744

Das wäre einfacher, macht Ausgabe Live:(also Terminal offen lassen)

journalctl -f | egrep -i blue

MasterQ

(Themenstarter)
Avatar von MasterQ

Anmeldungsdatum:
12. März 2023

Beiträge: 190

Moinsen, auf ein Neues!

Im frisch gebooteten System habe ich den Verbindungsknopf am XBox Controller gedrückt und ... es passiert nix. Keine Eintrage im Journal. Irgendwann gibt der Controller auf und schaltet sich ab.

Dann ein hciconfig hci0 sspmode 1 abgesetzt. Weiterhin eine Einträge im Journal.

Daraufhin bluetooth neu gestartet um die Änderungen zu übernehmen. Mehrere Zeilen erscheinen im Journal:

1
2
3
4
...
Mär 22 10:03:48 SatinaL dbus-daemon[786]: [system] Rejected send message, 0 matched rules; type="error", sender=":1.80" (uid=1000 pid=1901 comm="/usr/bin/wireplumber" label="unconfined") interface="(unset)" member="(unset)" error name="org.bluez.Profile1.Error.NotImplemented" requested_reply="0" destination=":1.3" (uid=0 pid=783 comm="/usr/lib/bluetooth/bluetoothd" label="unconfined")
Mär 22 10:03:48 SatinaL dbus-daemon[786]: [system] Activating via systemd: service name='org.bluez' unit='dbus-org.bluez.service' requested by ':1.80' (uid=1000 pid=1901 comm="/usr/bin/wireplumber" label="unconfined")
Mär 22 10:03:48 SatinaL dbus-daemon[786]: [system] Successfully activated service 'org.bluez'

Verbindungsknopf am Controller gedrückt.

in bluetoothctl zeigt sich folgendes:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[bluetooth]# info EC:83:50:B6:A3:90
Device EC:83:50:B6:A3:90 (public)
	Name: Xbox Wireless Controller
	Alias: Xbox Wireless Controller
	Class: 0x00000508
	Icon: input-gaming
	Paired: yes
	Bonded: yes
	Trusted: yes
	Blocked: no
	Connected: no
	WakeAllowed: yes
	LegacyPairing: no
	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v045Ep02E0d0903
[CHG] Controller 00:E0:43:89:8E:03 Discovering: yes
[CHG] Controller 00:E0:43:89:8E:03 Class: 0x007c0104
[CHG] Controller 00:E0:43:89:8E:03 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
...

Die letzte Zeile kommt mehrfach.

Journal bleibt stumm.

Sonst passiert ... beim ersten mal heute, hat sich der Controller verbunden. Und jetzt beim zweiten mal (nach Reboot) verbindet er sich nicht und schaltet wieder ab.

Versuche ich es aus bluetoothctl. kommt

1
2
3
[bluetooth]# connect EC:83:50:B6:A3:90
Attempting to connect to EC:83:50:B6:A3:90
Failed to connect: org.bluez.Error.Failed br-connection-create-socket

Systemctl zeigt im ganzen Verlauf keine Veränderung

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@SatinaL:/home/joachim# systemctl status bluetooth
● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; preset: enabled)
     Active: active (running) since Wed 2023-03-22 10:03:48 CET; 4min 49s ago
       Docs: man:bluetoothd(8)
   Main PID: 4700 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 76988)
     Memory: 860.0K
        CPU: 24ms
     CGroup: /system.slice/bluetooth.service
             └─4700 /usr/lib/bluetooth/bluetoothd

Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSource/faststream
Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSource/faststream_duplex
Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSink/opus_05
Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSource/opus_05
Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSource/opus_05_51
Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSource/opus_05_71
Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Mär 22 10:03:48 SatinaL bluetoothd[4700]: Endpoint registered: sender=:1.80 path=/MediaEndpoint/A2DPSource/opus_05_pro
Mär 22 10:03:55 SatinaL bluetoothd[4700]: src/profile.c:record_cb() Unable to get Hands-Free Voice gateway SDP record: Host is down

bis zum Verbindungsversuch. Danach hagelt es

1
2
3
4
5
6
7
8
9
Mär 22 10:03:55 SatinaL bluetoothd[4700]: src/profile.c:record_cb() Unable to get Hands-Free Voice gateway SDP record: Host is down
Mär 22 10:09:55 SatinaL bluetoothd[4700]: src/profile.c:ext_start_servers() L2CAP server failed for Message Notification: setsockopt(L2CAP_OPTIONS): Invalid argument (22)
Mär 22 10:09:55 SatinaL bluetoothd[4700]: src/profile.c:ext_start_servers() L2CAP server failed for Message Access: setsockopt(L2CAP_OPTIONS): Invalid argument (22)
Mär 22 10:09:55 SatinaL bluetoothd[4700]: src/profile.c:ext_start_servers() L2CAP server failed for Phone Book Access: setsockopt(L2CAP_OPTIONS): Invalid argument (22)
Mär 22 10:09:55 SatinaL bluetoothd[4700]: src/profile.c:ext_start_servers() L2CAP server failed for File Transfer: setsockopt(L2CAP_OPTIONS): Invalid argument (22)
Mär 22 10:09:55 SatinaL bluetoothd[4700]: src/profile.c:ext_start_servers() L2CAP server failed for Object Push: setsockopt(L2CAP_OPTIONS): Invalid argument (22)
Mär 22 10:09:57 SatinaL bluetoothd[4700]: Failed to set mode: Authentication Failed (0x05)
Mär 22 10:15:20 SatinaL bluetoothd[4700]: profiles/input/device.c:ioctl_is_connected() Can't get HIDP connection info
Mär 22 10:15:25 SatinaL bluetoothd[4700]: profiles/input/device.c:control_connect_cb() connect to EC:83:50:B6:A3:90: Host is down (112)

Jetzt stellt sich mir die Frage, warum es beim ersten mal heute geklappt hat mit dem Verbinden und jetzt nimmer.

OK, reboot und mal schaun, was so passiert

--EDIT--

Vor dem Reboot aber doch noch mal den Bluetooth Service neu gestartet und Controller Button gedrückt. Pling, sofort hatte sich der Controller verbunden. Was sagt man dazu!

Wie krieg ich eigentlich die hci configuration auf sspmode 1 jetzt in den Bootprozess integriert?

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 744

Zur Not geht's auf diesem Weg:

bash -c "service bluetooth restart"

Ausgelöst etwa per Taste oder udev.

–- Obwohl, udev ist da ne blöde Idee.

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 744

Also, habe mir mal vom Sohnemann Controller geholt und probiert, Der machte das selbe Spiel. Nach Paarung An/Aus. Bei mir meldet auch noch udev mit Ton. Also An Ton , Aus Ton, in Schleife, war nett.

So hat's dann dauerhaft funktioniert:

BT-Device löschen, etwa mit Blueman. Dann nachsehen ob tatsächlich "1" gesetzt ist in:

cat /sys/module/bluetooth/parameters/disable_ertm

Steht die nicht drin, dann eintragen. Dann Blueman/Geräte wieder aufmachen. Das Device suchen lassen. Dann rechte Maustaste auf Einrichten. Dann auf Kopplung. Nochmal rechte Maustaste auf Vertrauenswürdigkeit. Game Controller ausschalten. Wieder Ein sollte dann ab sofort klappen.

edit

Nach Neustart: Geht wieder nicht, na sowas, Was steht denn in

cat /sys/module/bluetooth/parameters/disable_ertm

Wieder "N". Also muss das wieder gesetzt werden.

Ok, gepennt, das war das Temporäre, jetzt das Dauerhafte:

Für die dauerhafte Deaktivierung installiert man folgendes Paket.

sysfsutils

Befehl zum Installieren der Pakete:

sudo apt-get install sysfsutils

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

Danach kann man in der Datei /etc/sysfs.conf folgende Zeile anhängen:

module/bluetooth/parameters/disable_ertm = 1

Damit die Änderungen wirksam werden, wird im Anschluss der sysfsutils Dienst neu gestartet:

sudo service sysfsutils restart Zitierter Text

Das probiere ich jetzt mal..

So, das überlebt den Neustart. 👍

MasterQ

Zeig mal was bei Dir zu finden ist in der:

cat /etc/sysfs.conf

und

dpkg -l sysfsutils

MasterQ

(Themenstarter)
Avatar von MasterQ

Anmeldungsdatum:
12. März 2023

Beiträge: 190

Also das mit ertm hatte ich schon eingerichtet.

1
2
3
4
joachim@SatinaL:~$ cat /etc/sysfs.conf 
# gelöscht
# JH 2023-03-10
module/bluetooth/parameters/disable_ertm = 1
1
2
3
4
5
6
7
8
9
joachim@SatinaL:~$ dpkg -l sysfsutils
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name           Version      Architektur  Beschreibung
+++-==============-============-============-====================================
ii  sysfsutils     2.1.1-3      amd64        sysfs query tool and boot-time setup
joachim@SatinaL:~$ 

Aber ertm ist was anderes wie diese LegacyPairing, das mit hciconfig gesetzt bzw. abgeschaltet wird. Nicht wervechseln!

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 744

Also das mit ertm hatte ich schon eingerichtet.

Dann bin ich jetzt wohl raus. Mir gehen die Optionen aus.

Aber ertm ist was anderes wie diese LegacyPairing, das mit hciconfig gesetzt bzw. abgeschaltet wird. Nicht wervechseln!

Wäre "LegacyPairing" der Punkt würde es auch so in der Infokarte des (aktiven) Devices erscheinen ist meine Vermutung. Hier ist das nicht der Fall und die Verbindung ist OK. Nur darum ging es mir. s. Anhang

-

"LegacyPairing hciconfig"

Lies mal Hier:

https://stackoverflow.com/questions/12888589/linux-command-line-howto-accept-pairing-for-bluetooth-device-without-pin

Vllt. hast Du 'ne BT Maus um nach dem Paaren mal zu schauen was bei der bei "LegacyPairing" steht.

Bilder

MasterQ

(Themenstarter)
Avatar von MasterQ

Anmeldungsdatum:
12. März 2023

Beiträge: 190

Wäre "LegacyPairing" der Punkt würde es auch so in der Infokarte des (aktiven) Devices erscheinen ist meine Vermutung. Hier ist das nicht der Fall und die Verbindung ist OK. Nur darum ging es mir. s. Anhang

?? Schau auf deinen Screenshot, da steht's doch. Oder versteh ich dich falsch? Legacy Pairing muss ausgeschaltet sein, damit es funktioniert! Siehe man hciconfig. sspmode 1 schaltet aus. mit sspmode 0 erhalte ich seltsamerweise eine Fehlermeldung (5).

Heute morgen ist LegacyPairing übrigens direkt nach dem Booten ausgeschaltet. Die Tage vorher musste ich es per Hand disablen. Komisch?

Lies mal Hier:

https://stackoverflow.com/questions/12888589/linux-command-line-howto-accept-pairing-for-bluetooth-device-without-pin

Kannte ich schon

Vllt. hast Du 'ne BT Maus um nach dem Paaren mal zu schauen was bei der bei "LegacyPairing" steht.

Ich habe noch einen Lautsprecher gekoppelt. Auch dort steht ein "no", d.h ausgeschaltet und keine PIN-Abfrage. So muss es sein!

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 744

Wäre "LegacyPairing" der Punkt würde es auch so in der Infokarte des (aktiven) Devices erscheinen ist meine Vermutung. Hier ist das nicht der Fall und die Verbindung ist OK. Nur darum ging es mir. s. Anhang

?? Schau auf deinen Screenshot, da steht's doch. Oder versteh ich dich falsch? Legacy Pairing muss ausgeschaltet sein, damit es funktioniert!

Habe ich falsch ausgedrückt. Gemeint war

'Wäre "LegacyPairing" aktiv der Punkt..'

Also, ich habe hier an die 20 Devices gekoppelt, bei Keinem erscheint sowas wie

"LegacyPairing ja"

Siehe man hciconfig. sspmode 1 schaltet aus. mit sspmode 0 erhalte ich seltsamerweise eine Fehlermeldung (5).

Ok, vllt. kommen wir der Sache jetzt langsam näher.

Ausgabe hier:

***

hciconfig hci0 sspmode
hci0:	Type: Primary  Bus: USB
	BD Address: XX  ACL MTU: 1021:4  SCO MTU: 96:6
	Simple Pairing mode: Enabled

Muss jetzt mal darüber Nachdenken.

Heute morgen ist LegacyPairing übrigens direkt nach dem Booten ausgeschaltet.

Da steht "Simple Pairing mode: Disabled" ? (blöde Frage, ich weiss)

Die Tage vorher musste ich es per Hand disablen. Komisch?

Siehe ***. Das Du Das Ausschalten musst ist schon komisch würde ich sagen. Ne Antwort habe ich allerdings auch nicht wenn das hier aktiv ist und kein Gerät so gepaart ist. Ich schau mal nach einer BT Maus, ob die wenigstens so gepaart wird. Bei einem HID könnte man das ja annehmen.

edit

~/sspmode.log

Setze das mal in Deinen Autostart, ich machs hier auch(ob sich irgendein Zusammenhang offenbart), kannst das in *.sh gepackt auch zwischendurch mal ausführen.

notify-send "sspmode:" "$(hciconfig hci0 sspmode)";echo "$(hciconfig hci0 sspmode)" >> ~/sspmode.log

Das gibt aller 5 Min Meldung in Schleife aus(in .*sh und starten) (es könnte auch nur das in Autostart)

#!/bin/bash
while true; do notify-send "sspmode:" "$(hciconfig hci0 sspmode)";echo "$(hciconfig hci0 sspmode)" >> ~/sspmode.log;sleep 300; done
Antworten |