Frequent Bluetooth Disconnects on Fedora 35

I just picked up a DIY edition with the AX210 module (no vPro). It seemed at first like it all “just worked” on Fedora 35, but I’ve found that when I use my Bluetooth headphones, they will frequently disconnect. But not in the way I’m used to. The laptop basically just stops sending audio to it, and shows it as disconnected, but my headphones don’t seem to “notice” for a minute, and once they finally do (I hear the beep boop that it uses to tell me that) it seems to quickly reconnect (boop beep) and then audio streaming resumes.

A few relevant package versions:

  • Linux kernel: 5.16.12-200.fc35.x86_64
  • bluez-5.63-1.fc35.x86_64
  • gnome-bluetooth-3.34.5-2.fc35.x86_64

journalctl output around this happening is a bit noisy, but likely the most relevant messages:

logs

When I fire up the bluetooth settings and connect my headphones:

Mar 09 21:48:58 framework-lappy systemd[1725]: Started Application launched by gnome-shell.
Mar 09 21:48:58 framework-lappy systemd[1725]: Started Application launched by gnome-shell.
Mar 09 21:48:59 framework-lappy gnome-bluetooth-panel.desktop[15721]: ../src/intel/isl/isl.c:2208: FINISHME: ../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available.
Mar 09 21:48:59 framework-lappy systemd[1725]: Starting Bluetooth OBEX service...
Mar 09 21:48:59 framework-lappy obexd[15775]: OBEX daemon 5.63
Mar 09 21:48:59 framework-lappy systemd[1725]: Started Bluetooth OBEX service.
Mar 09 21:49:00 framework-lappy bluetoothd[922]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Mar 09 21:49:01 framework-lappy bluetoothd[922]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Mar 09 21:49:01 framework-lappy bluetoothd[922]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Mar 09 21:49:02 framework-lappy systemd[1725]: Reached target Bluetooth.
Mar 09 21:49:04 framework-lappy bluetoothd[922]: /org/bluez/hci0/dev_00_01_00_00_89_F1/sep1/fd0: fd(43) ready
Mar 09 21:49:04 framework-lappy kernel: input: SB221 (AVRCP) as /devices/virtual/input/input45
Mar 09 21:49:04 framework-lappy systemd-logind[940]: Watching system buttons on /dev/input/event31 (SB221 (AVRCP))
Mar 09 21:49:04 framework-lappy wireplumber[2206]: Failed to register battery provider. Error: org.freedesktop.DBus.Error.UnknownMethod
Mar 09 21:49:04 framework-lappy wireplumber[2206]: BlueZ Battery Provider is not available, won't retry to register it. Make sure you are running BlueZ 5.56+ with experimental features to use Battery Provider.

then, a lot of messages like this:

Mar 09 21:49:05 framework-lappy bluetoothd[922]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed

And then, around when the sound stops:

Mar 09 21:49:34 framework-lappy wireplumber[2206]: 0x55e46ade0168: error 24
Mar 09 21:49:34 framework-lappy wireplumber[2206]: 0x55e46ade0168: ioctl fail: Bad file descriptor
Mar 09 21:49:34 framework-lappy bluetoothd[922]: src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)
Mar 09 21:49:34 framework-lappy wireplumber[2206]: Failed to release transport /org/bluez/hci0/dev_00_01_00_00_89_F1/sep1/fd0: Method "Release" with signature "" on interface "org.bluez.MediaTransport1" doesn't exist
Mar 09 21:49:34 framework-lappy gsd-media-keys[2339]: Unable to get default sink

And this this starts repeating periodically (along with the Manager is NULL error above):

Mar 09 21:49:40 framework-lappy bluetoothd[922]: src/profile.c:record_cb() Unable to get Hands-Free Voice gateway SDP record: Host is down

Any advice would be greatly appreciated! These same headphones haven’t had issues like this working with my phone, macbook, windows desktop, etc, so it seems to be specific to either Fedora 35’s software, or the Framework hardware.

1 Like

I think, I got the same problem, also on a DIY framework running Fedora 35. When using my bluetooth headset, watching for example youtube, it gets disconnected without the headset recognizing it and the video keeps running without sound output! Headset does not reconnect by its own, so I have to reconnect it manually by clicking disconnect and connect afterwards several times even.
Kind of annoying…

Good, I’m probably not crazy then! My next thing to try is to boot a Ubuntu live USB, to see if I can rule out the hardware.

I’ve noticed a similar issue on Linux when plugged to a bluetooth speaker and wonder if the problem is not related to this issue :

If it’s the case it’s probably not an issue with Framework (maybe an intel driver issue on the linux side as suggested at the end of the thread ?)
I do not have a windows install so I did not test if I was reproducing the issue on that OS.

I also see there’s an updated firmware package in Fedora today, which includes updates for this chip:

% dnf check-update --changelogs iwlax2xx-firmware
Last metadata expiration check: 0:07:45 ago on Wed 16 Mar 2022 09:51:44 PM EDT.

iwlax2xx-firmware.noarch 20220310-130.fc35 updates
Changelogs for iwlax2xx-firmware-20220310-130.fc35.noarch

  • Update to upstream 20220310 release
  • Update AMD cpu microcode
  • ath11k: add links for WCN6855 hw2.1
  • ath11k: WCN6855 hw2.0: add WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
  • ath11k: WCN6855 hw2.0: add board-2.bin and regdb.bin
  • add firmware for MT7986
  • update firmware for MT7921 WiFi device
  • update firmware for mediatek bluetooth chip(MT7921)
  • amdgpu: update picasso/raven/raven2 VCN firmware
  • amdgpu: Update GPU firmwares to the 21.50 release
  • amdgpu: add firmware for SDMA 5.2.7 IP block
  • amdgpu: add firmware for PSP 13.0.8 IP block
  • amdgpu: add firmware for DCN 3.1.6 IP block
  • amdgpu: add firmware for GC 10.3.7 IP block
  • rtw89: 8852a: update fw to v0.13.36.0
  • iwlwifi: add/Update new FWs from core68-60 release
  • Update Intel Bluetooth FW for 7265/8260/8265/9260/9462/9560/AX2xx
  • Update AMD SEV firmware
  • Mellanox: Add new mlxsw_spectrum firmware xx.2010.1406
  • rtl_bt: Update RTL8852A BT USB firmware to 0xDFB7_6D7A
  • rtl_bt: Update RTL8822C BT USB firmware to 0x19B7_6D7D
  • rtl_bt: Update RTL8822C BT UART firmware to 0x15B7_6D7D
  • wfx: update to firmware 3.14
  • wfx: add antenna configuration files

I"ll apply that update and see if it helps/hurts.

So far, so good, had a good 30 minutes watching YouTube videos w/ my bluetooth headphones with zero interruptions, after applying that OS update (which included updated bluetooth firmware, along with an updated Linux kernel).

:crossed_fingers:

4 Likes

Also did the update this morning and my JBL bluetooth headset is up and running without any issues until now. Great and thanks for the hint!

2 Likes

Hi there!
I’m running into the same issue under Fedora 41 and would love to fix it.
@pioto , do you know what CLI I should use step by step to aplly the same type of fix as yours back in 2022?

My speaker works for a few minutes. Then the sound disconnects, but the bluetooth still shows up as connected…

P.S.: My two cents: It might because it is a “High Definition Audio” speaker, since I don’t encounter the issue with other speakers, nor on Windows 11 (I have a dual boot). Or because it is both a speaker/projector.
Cheers!


When it was still active (less than 2 min), I tried to change the sound codec. I tried all of them, but it didn’t help.

Are you also using the AX210 card? I’ve kept the original, older, AX201 card in my Framework over the course of upgrading it since 2021, and my Bluetooth gadgets haven’t had any disconnection issues.

As I don’t have any other wifi/bt cards to test, I’m curious if this is something affecting certain hardware more than others or if it has to do with kernel updates?

I’d love to tell you, but I have no clue. How could I figure this out (without disassembling the laptop)?

Hmm, I believe that wifi card should show up as a PCI device.
What’s the result of running the following command? (feel free to do a code paste here)
lspci | grep Network