blueman-project / blueman

Blueman is a GTK+ Bluetooth Manager
GNU General Public License v3.0
1.26k stars 191 forks source link

can't connect to huawai FreeBuds 4i #1623

Closed iamlambda closed 2 years ago

iamlambda commented 2 years ago

blueman: 2.1.2 Distribution: Linux Mint 20.2 Desktop environment: Cinnamon 5.0.6

First, blueman-manager doesn't recognize my earbuds (HUAWAI FreeBuds 4i) as earbuds but as "Miscellaneous". When I try to connect to them it outputs the following:

Connection Failed: Software caused connection abort

here's a picture of the software when getting the error:

errorbluetooth Moreover, when I try to use cinnamon's default bluetooth software, the earbuds are detected as "unknown": bluetooth I've been looking for a solution for hours on the internet (this, that, etc.) but found nothing. Does anyone have an idea that would solve my problem? Thanks in advance

cschramm commented 2 years ago

Please provide the output of blueman-applet --loglevel debug that contains the failed connection attempt.

iamlambda commented 2 years ago

So I've switched to arch linux so I don't have the same setup as when I started this issue. Here's what I got so far: after searching 3 or 4 times in a row, my ear buds finally got recognized by the software. However, it still cannot connect properly. 2021-11-06-180336_737x507_scrot

and here's the ouput of blueman-applet --loglevel debug right after getting the Connection Failed. https://pastebin.com/5ejRiVwV

p166 commented 2 years ago

hi all, i have the same problem on mint 20.2 cinnamon 5.0.6

https://pastebin.com/zuLZfjqi

infirit commented 2 years ago

@iamlambda I don't see a connection attempt.

@p166 I see nothing special in your log. Does it stay connected with bluetoothctl connect 1C:91:9D:56:33:EC

iamlambda commented 2 years ago

What am I supposed to do then?

cschramm commented 2 years ago

Start blueman-applet with logging, then try to connect so that we see it in the output.

iamlambda commented 2 years ago

Weirdly enough, I don't see any error message on the output of blueman-applet --loglevel debug when getting the error message on bluman-manager. https://pastebin.com/KdSMSaCf

infirit commented 2 years ago

@iamlambda as I asked p166, does connecting it with bluetoothctl connect 14:DE:39:0D:3E:1F make it work?

iamlambda commented 2 years ago

Nope it does not :

Attempting to connect to 14:DE:39:0D:3E:1F
Failed to connect: org.bluez.Error.Failed le-connection-abort-by-local
cschramm commented 2 years ago

Sorry for letting this drown. So, we have a "Software caused connection abort" with no visible call to our agent. The logs of bluetooth.service might give you details on the issue. Otherwise, you can try checking if there's communication to our agent e.g. with sudo dbus-monitor --system path=/org/bluez/agent/blueman.

iamlambda commented 2 years ago

here's the output of systemctl status bluetooth.service

● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2022-02-05 14:32:52 CET; 6min ago
       Docs: man:bluetoothd(8)
   Main PID: 2709 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 19092)
     Memory: 2.0M
        CPU: 78ms
     CGroup: /system.slice/bluetooth.service
             └─2709 /usr/lib/bluetooth/bluetoothd

Feb 05 14:38:28 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:29 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:29 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:30 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:31 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:31 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:32 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:33 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:33 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Feb 05 14:38:35 lambda bluetoothd[2709]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed

Reposting the output of blueman-applet --loglevel debug since it seems to be different : https://pastebin.com/2iD5MnWr. It just gives the output and close itself, whereas before it was printing the output and remained listening.

cschramm commented 2 years ago

So there's nothing from bluetoothd when you try to connect? You could try with debugging enabled (https://github.com/blueman-project/blueman/wiki/Troubleshooting#debugging-bluez) or check D-Bus as mentioned above to see if blueman is even involved.

The new blueman-applet log looks like there is another instance already running.

iamlambda commented 2 years ago

/usr/lib/bluetooth/bluetoothd -n -d output : https://pastebin.com/21PEkwQi I didn't post the output of sudo dbus-monitor --system path=/org/bluez/agent/blueman because it doesn't seem to say anything, it just prints

signal time=1644075483.273767 sender=org.freedesktop.DBus -> destination=:1.62 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.62"
signal time=1644075483.273797 sender=org.freedesktop.DBus -> destination=:1.62 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.62"

when using the command and stay quiet when trying to connect to the earbuds.

EDIT : output of blueman-applet --loglevel debug after reboot because why not, even tho it doesn't seem to say much... https://pastebin.com/X7BxtBZ9

EDIT 2 : I tried on a windows machine and with a live session of Mint, it now works for some reason. However, I still can't connect on Arch Linux, neither with bluetoothctl connect 14:DE:39:0D:3E:1F nor with blueman.

cschramm commented 2 years ago

If nothing shows up in sudo dbus-monitor --system path=/org/bluez/agent/blueman either bluetoothd does not try to ask an agent at all or a different one than blueman's - or none - is registered, so it seems like blueman cannot be at fault.

So identical hardware works fine in Mint but leads to le-connection-abort-by-local in Arch? Seems like a firmware issue.

The immediate jump from

src/device.c:device_connect_le() Connection attempt to: 14:DE:39:0D:3E:1F

to

bluetoothd[901]: src/device.c:att_connect_cb() connect to 14:DE:39:0D:3E:1F: Connection refused (111)

is weird. Anything in dmesg?

iamlambda commented 2 years ago

I have no clue what to look for in that output so I give it to you : https://pastebin.com/B5m3HaCr Also, I tried downgrading bluez to 5.55-3 but it still doesn't work. Also tried to install linux-lts, but for some reason, I could't get startx to work with linux-lts. I'm out of ideas...

cschramm commented 2 years ago

The primary idea was if anything shows up when trying to connect. Normally bluetoothd debugging would indicate some communication with an authorization agent and the connection abort gets issued if that fails or whatever. In your case it does not seem to try to consult an agent at all, so maybe the abort is caused by the driver.

Secondary idea was to find issues from the initialization in dmesg. There's nothing, not even a single Bluetooth: hci0: line saying anything about the driver or firmware. That's another surprise to me, but I'm mostly familiar with Intel drivers and others might be much more quiet.

The guys over at the BlueZ project might be more helpful.

Another path I'd try is to find the chipset (hardware ID via lspci or lsusb) and a) search the Internets if others discuss possibly related issues and b) check what drivers and firmware packages are required and make sure they are in place.

iamlambda commented 2 years ago

First of all, I'd like to thank you for your support, even tho my problem wasn't related to blueman, you kept helping me. As you said, I found the ID of my dongle, and it's 0a12:0001, and guess what I found on the arch wiki...

The device ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) has a regression bug, and currently only works in the kernel version ≤ 3.9.11.

I'm just gonna buy another dongle, do you have any suggestion so I'm sure it will work on linux? Thanks again for your help. <3

infirit commented 2 years ago

I have a csr dongle and it works perfectly. However, there are a lot of cheap dongle with fake csr chips in them. They cause lots of issues. Was it a really cheap dongle?

iamlambda commented 2 years ago

no it wasn't, I went to one of the most famous tech store in my city and looked for a bluetooth dongle, there was only one (the one I bought). When I looked at the back of the package, it didn't mention Linux on the compatibility section, so I asked one of the seller if it was compatible and he was like : "what's linux?". Do you know about any dong model I can buy on Amazon?

cschramm commented 2 years ago

currently only works in the kernel version ≤ 3.9.11

doesn't work out as your Linux Mint should have 5.4.0 or something.

However, there's a lot of recent activity at https://bugzilla.kernel.org/show_bug.cgi?id=60824. I skimmed through it but it mostly looks like issues on initialization which does not seem to match your case at all. Also, if the problem is a new set of fake clones, I do not get why the Mint kernel would work.

iamlambda commented 2 years ago

exactly, that's what I was wondering as well. Note that it doesn't work with the plain Mint live session, it only works when I update and upgrade the packages (which updates linux-firmware btw). I guess that I'll have to find a dongle on my own hehe. Thanks again (:

EDIT : I didn't post the whole message from the arch wiki

There is a patch available for newer versions. For more information, see Kernel Bug 60824

Mint probably patched the kernel.

infirit commented 2 years ago

I can tell you the primary dongle I'm using, but it's fairly new and only got proper support recently(ish). It is the Asus BT-500. The other is a trust Manga Bluetooth 4.0 Adapter which has the CSR chip.

khairuljf commented 2 years ago

Please provide the output of blueman-applet --loglevel debug that contains the failed connection attempt. blueman-applet 12.43.35 INFO PluginManager:87 load_plugin: ['GameControllerWakelock', 'ShowConnected', 'KillSwitch', 'Networking', 'AutoConnect', 'StandardItems', 'DhcpClient', 'StatusNotifierItem', 'NetUsage', 'RecentConns', 'Menu', 'AuthAgent', 'ExitItem', 'SerialManager', 'DBusService', 'PPPSupport', 'TransferService', 'NMPANSupport', 'StatusIcon', 'DisconnectItems', 'NMDUNSupport', 'ConnectionNotifier', 'DiscvManager', 'PowerManager'] blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.GameControllerWakelock.GameControllerWakelock'> blueman-applet 12.43.35 INFO PluginManager:160 __load_plugin: loading <class 'blueman.plugins.applet.Menu.Menu'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.StatusIcon.StatusIcon'> blueman-applet 12.43.35 DEBUG Base:60 do_g_properties_changed: /org/bluez/hci0 {'Address': '84:7B:57:E2:50:08', 'AddressType': 'public', 'Name': 'khairul-pc', 'Alias': 'khairul-pc', 'Class': 1048836, 'Powered': True, 'Discoverable': False, 'DiscoverableTimeout': 180, 'Pairable': True, 'PairableTimeout': 0, 'Discovering': False, 'UUIDs': ['0000110e-0000-1000-8000-00805f9b34fb', '00001200-0000-1000-8000-00805f9b34fb', '00001132-0000-1000-8000-00805f9b34fb', '00001133-0000-1000-8000-00805f9b34fb', '0000110c-0000-1000-8000-00805f9b34fb', '00001800-0000-1000-8000-00805f9b34fb', '0000112f-0000-1000-8000-00805f9b34fb', '00001801-0000-1000-8000-00805f9b34fb', '00001106-0000-1000-8000-00805f9b34fb', '0000180a-0000-1000-8000-00805f9b34fb', '00001104-0000-1000-8000-00805f9b34fb', '00001105-0000-1000-8000-00805f9b34fb', '00005005-0000-1000-8000-0002ee000001'], 'Modalias': 'usb:v1D6Bp0246d0540', 'Roles': ['central', 'peripheral']} blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.ShowConnected.ShowConnected'> blueman-applet 12.43.35 INFO PluginManager:160 __load_plugin: loading <class 'blueman.plugins.applet.PowerManager.PowerManager'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.KillSwitch.KillSwitch'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.Networking.Networking'> blueman-applet 12.43.35 INFO Networking:35 load_nap_settings: Loading NAP settings blueman-applet 12.43.35 INFO PluginManager:160 __load_plugin: loading <class 'blueman.plugins.applet.DBusService.DBusService'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.AutoConnect.AutoConnect'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.StandardItems.StandardItems'> blueman-applet 12.43.35 WARNING PluginManager:151 __load_plugin: Not loading DhcpClient because its conflict has higher priority blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.StatusNotifierItem.StatusNotifierItem'> blueman-applet 12.43.35 WARNING PluginManager:151 load_plugin: Not loading PPPSupport because its conflict has higher priority blueman-applet 12.43.35 INFO PluginManager:160 __load_plugin: loading <class 'blueman.plugins.applet.RecentConns.RecentConns'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.AuthAgent.AuthAgent'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.ExitItem.ExitItem'> blueman-applet 12.43.35 INFO PluginManager:160 __load_plugin: loading <class 'blueman.plugins.applet.SerialManager.SerialManager'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.TransferService.TransferService'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.NMPANSupport.NMPANSupport'> blueman-applet 12.43.35 INFO PluginManager:160 __load_plugin: loading <class 'blueman.plugins.applet.DisconnectItems.DisconnectItems'> blueman-applet 12.43.35 INFO PluginManager:160 load_plugin: loading <class 'blueman.plugins.applet.NMDUNSupport.NMDUNSupport'> blueman-applet 12.43.35 INFO PluginManager:160 __load_plugin: loading <class 'blueman.plugins.applet.ConnectionNotifier.ConnectionNotifier'> blueman-applet 12.43.35 INFO PluginManager:160 __load_plugin: loading <class 'blueman.plugins.applet.DiscvManager.DiscvManager'> blueman-applet 12.43.35 INFO KillSwitch:106 io_event : killswitch registered 0 blueman-applet 12.43.35 INFO KillSwitch:122 io_event : State: True blueman-applet 12.43.35 INFO PowerManager:179 update_power_state: off False | foff False | on True | current state True | new state True blueman-applet 12.43.35 INFO KillSwitch:85 _on_connman_vanished: net.connman vanished blueman-applet 12.43.35 INFO TransferService:234 _on_dbus_name_appeared: org.bluez.obex :1.58 blueman-applet 12.43.35 INFO Applet:63 _on_dbus_name_appeared: org.bluez :1.7 blueman-applet 12.43.35 INFO Functions:114 launch : Gtk eventtime is 0, not using LaunchContext blueman-applet 12.43.35 INFO Networking:71 set_nap : set nap False blueman-applet 12.43.35 INFO BluezAgent:56 register_agent: Register Agent blueman-applet 12.43.35 ERROR AgentManager:20 on_register_failed: /org/bluez/obex/agent/blueman org.bluez.obex.Error.AlreadyExists Agent already exists blueman-applet 12.43.35 INFO ShowConnected:50 enumerate_connections: Found 0 existing connections blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.DiscvManager.DiscvManager object at 0x7f6da1f8dc30> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.ConnectionNotifier.ConnectionNotifier object at 0x7f6da1f8df00> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.NMDUNSupport.NMDUNSupport object at 0x7f6da1f8da20> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.DisconnectItems.DisconnectItems object at 0x7f6da1f8d960> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.NMPANSupport.NMPANSupport object at 0x7f6da1f8dfc0> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.TransferService.TransferService object at 0x7f6da1f8dea0> blueman-applet 12.43.35 DEBUG SerialManager:50 on_delete : Terminating any running scripts blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.SerialManager.SerialManager object at 0x7f6da1f8db70> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.ExitItem.ExitItem object at 0x7f6da1f8dd80> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.AuthAgent.AuthAgent object at 0x7f6da1f8dde0> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.RecentConns.RecentConns object at 0x7f6da1f8dcf0> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.StatusNotifierItem.StatusNotifierItem object at 0x7f6da1f8d8a0> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.StandardItems.StandardItems object at 0x7f6da1f8d6c0> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.AutoConnect.AutoConnect object at 0x7f6da1f8d450> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.DBusService.DBusService object at 0x7f6da1f8d570> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.Networking.Networking object at 0x7f6da1f8d180> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.KillSwitch.KillSwitch object at 0x7f6da1f8d0c0> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.PowerManager.PowerManager object at 0x7f6da1f8d090> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.ShowConnected.ShowConnected object at 0x7f6da1f8d060> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <StatusIcon.StatusIcon object at 0x7f6da79b5cc0 (blueman+plugins+applet+StatusIcon+StatusIcon at 0x55d1bc32fe80)> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.Menu.Menu object at 0x7f6da65fd0c0> blueman-applet 12.43.35 DEBUG BasePlugin:63 _on_plugin_delete: Deleting plugin instance <blueman.plugins.applet.GameControllerWakelock.GameControllerWakelock object at 0x7f6da65ca020>