Connected and paired bluetooth headset available for sound and not listed in pactl sinks after upgrade to Fedora 40

I upgraded to Fedora 40 XFCE recently. Everytime I do an upgrade, my bluetooth headset will require some googling and tweaking to get working properly again for variety of reasons ( missing aptx codec, bug in current version etc)

Unfortunately, this time round, I’m not able to figure out how to get it working again.
The headset is seen by Bluez, both bluetoothctl and blueman-manager shows the headset, I can connect and pair.

However. the headset does not appear in audio mixer/volume control, nor in pactl list sinks. It’s probably related/same thing

I have another bluetooth speaker that works fine.

I’ve tried removing the ~/.local/state files and restarting pipewire/wireplumber
Also tried switching from wireplumber to pipewire-media-session
There is no error in journalctl --user -u pipewire

Please advise what else can I check or try?

Add system info:
kernel 6.10.12-200.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Sep 30 21:38:25 UTC 2024 x86_64 GNU/Linux

Pipewire:
pipewire0.2-libs-0.2.7-12.fc40.x86_64
vlc-plugin-pipewire-3-2.fc40.x86_64
pipewire-codec-aptx-1.0.7-1.fc40.x86_64
pipewire-libs-1.0.8-1.fc40.i686
pipewire-1.0.8-1.fc40.i686
pipewire-alsa-1.0.8-1.fc40.i686
pipewire-libs-1.0.8-1.fc40.x86_64
pipewire-1.0.8-1.fc40.x86_64
pipewire-jack-audio-connection-kit-libs-1.0.8-1.fc40.x86_64
pipewire-pulseaudio-1.0.8-1.fc40.x86_64
pipewire-jack-audio-connection-kit-1.0.8-1.fc40.x86_64
pipewire-alsa-1.0.8-1.fc40.x86_64
pipewire-gstreamer-1.0.8-1.fc40.x86_64
pipewire-utils-1.0.8-1.fc40.x86_64
qemu-audio-pipewire-8.2.7-1.fc40.x86_64

I think wpctl is supposed to be the replacement for pactl in the wireplumber stack. Does wpctl status list your headset?

Let me swap media-session out for wireplumber and try that

wpctl doesn’t list my headset anywhere.
if I connect my bluetooth speakers (Creative Stage SE), it shows up in “Sinks”

Audio
 ├─ Devices:
 │      45. Navi 10 HDMI Audio                  [alsa]
 │      46. Raven/Raven2/Fenghuang HDMI/DP Audio Controller [alsa]
 │      47. Family 17h/19h HD Audio Controller  [alsa]
 │     114. Creative Stage SE                   [bluez5]
 │  
 ├─ Sinks:
 │      54. Raven/Raven2/Fenghuang HDMI/DP Audio Controller Digital Stereo (HDMI) [vol: 0.40]
 │      55. Family 17h/19h HD Audio Controller Digital Stereo (IEC958) [vol: 0.40]
 │  *  115. Creative Stage SE                   [vol: 0.09]

Does systemctl status --user pipewire.service list any sort of errors or warnings?

There is some configuration data and state information stored under /var/lib/bluetooth. If I were desperate, I might try stopping all the pipewire services and sockets, deleting all the data under that directory, then restarting the services. That would be a last resort though. It might make things worse.

No errors since it was last restarted. I’ve connected/reconnected the headset a few times since then and nothing.

Now the strangest thing is while I was doing these checks and going through the same steps of turning bluetooth on/off, connecting/pairing my headset… the headset now appears in wpctl and my audio control.

Audio is a bit choppy but that’s probably another issue.

1 Like

I have a headset that has given me trouble like that before. I think it might be trying to establish multiple simultaneous connections over Bluetooth and it reports connected when only one of the two connections are actually established. Oftentimes I can get it to work by disconnecting and reconnecting it again via sudo bluetoothctl disconnect <device> and sudo bluetoothctl connect <device>.

1 Like