BT Audio not working

Hello everyone.

After an update, radio playback stopped working through Elisa and the Advanced Radio widget via Bluetooth headphones.

Online video is fine.
Elisa and Advanced Radio work fine through regular headphones.

Is this a KDE update issue or kernel?

Thx.

Maybe related to input-from-bluetooth-device-recently-failed ?

1 Like

Thanks. Maybe. I’ll wait for updates. It doesn’t work in Build 20260203 either.

No news? Nobody knows?

I have no idea what might be behind the problem you describe, but you could start by sharing the results from pactl list cardsto see which profiles are listed as active/available/off etc.

Also, pactl info output.

pactl info

Server Name: PulseAudio (on PipeWire 1.5.85)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: bluez_output.14:06:A7:45:32:9D
Default Source: bluez_input.14:06:A7:45:32:9D

pactl list cards

Card #1873
	Name: alsa_card.pci-0000_01_00.1
	Driver: alsa
	Owner Module: n/a
	Properties:
		device.enum.api = "udev"
		device.api = "alsa"
		media.class = "Audio/Device"
		api.alsa.path = "hw:0"
		api.alsa.card = "0"
		api.alsa.card.name = "HDA NVidia"
		api.alsa.card.longname = "HDA NVidia at 0x84080000 irq 17"
		device.plugged.usec = "4448640"
		device.bus_path = "pci-0000:01:00.1"
		sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0"
		device.bus = "pci"
		device.subsystem = "sound"
		device.vendor.id = "0x10de"
		device.vendor.name = "NVIDIA Corporation"
		device.product.id = "0x228e"
		device.product.name = "GA106 High Definition Audio Controller"
		device.name = "alsa_card.pci-0000_01_00.1"
		device.description = "GA106 High Definition Audio Controller"
		device.nick = "HDA NVidia"
		device.icon_name = "audio-card-analog-pci"
		api.alsa.use-acp = "true"
		api.acp.auto-profile = "false"
		api.acp.auto-port = "false"
		api.dbus.ReserveDevice1.Priority = "-20"
		api.alsa.split-enable = "true"
		api.dbus.ReserveDevice1 = "Audio0"
		spa.object.id = "2"
		factory.id = "15"
		client.id = "41"
		object.id = "69"
		object.serial = "1873"
		object.path = "alsa:acp:NVidia"
		alsa.card = "0"
		alsa.card_name = "HDA NVidia"
		alsa.long_card_name = "HDA NVidia at 0x84080000 irq 17"
		alsa.driver_name = "snd_hda_intel"
		alsa.mixer_name = "Nvidia GPU 9f HDMI/DP"
		alsa.components = "HDA:10de009f,103c8a17,00100100"
		alsa.id = "NVidia"
		device.string = "0"
	Profiles:
		off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
		output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 5900, available: no)
		output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no)
		output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no)
		output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
		pro-audio: Pro Audio (sinks: 4, sources: 0, priority: 1, available: yes)
	Active Profile: off
	Ports:
		hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, availability group: Legacy 1, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 1"
				device.icon_name = "video-display"
				card.profile.port = "0"
			Part of profile(s): output:hdmi-stereo, output:hdmi-surround, output:hdmi-surround71
		hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, availability group: Legacy 2, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 2"
				device.icon_name = "video-display"
				card.profile.port = "1"
			Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-surround-extra1, output:hdmi-surround71-extra1
		hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, availability group: Legacy 3, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 3"
				device.icon_name = "video-display"
				card.profile.port = "2"
			Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-surround-extra2, output:hdmi-surround71-extra2
		hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, latency offset: 0 usec, availability group: Legacy 4, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 4"
				device.icon_name = "video-display"
				card.profile.port = "3"
			Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-surround-extra3, output:hdmi-surround71-extra3

Card #1874
	Name: alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic
	Driver: alsa
	Owner Module: n/a
	Properties:
		device.enum.api = "udev"
		device.api = "alsa"
		media.class = "Audio/Device"
		api.alsa.path = "hw:1"
		api.alsa.card = "1"
		api.alsa.card.name = "sof-hda-dsp"
		api.alsa.card.longname = "HP-OMENbyHPLaptop17_ck1xxx--8A17"
		device.plugged.usec = "5076138"
		device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card1"
		device.bus = "pci"
		device.subsystem = "sound"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "0x51c8"
		device.product.name = "Alder Lake PCH-P High Definition Audio Controller"
		device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
		device.description = "Alder Lake PCH-P High Definition Audio Controller"
		device.nick = "sof-hda-dsp"
		device.icon_name = "audio-card-analog-pci"
		api.alsa.use-acp = "true"
		api.acp.auto-profile = "false"
		api.acp.auto-port = "false"
		api.dbus.ReserveDevice1.Priority = "-20"
		api.alsa.split-enable = "true"
		api.dbus.ReserveDevice1 = "Audio1"
		spa.object.id = "4"
		factory.id = "15"
		client.id = "41"
		object.id = "68"
		object.serial = "1874"
		object.path = "alsa:acp:sofhdadsp"
		alsa.card = "1"
		alsa.card_name = "sof-hda-dsp"
		alsa.long_card_name = "HP-OMENbyHPLaptop17_ck1xxx--8A17"
		alsa.driver_name = "snd_soc_skl_hda_dsp"
		alsa.mixer_name = "Realtek ALC245"
		alsa.components = "HDA:8086281c,80860101,00100000 HDA:10ec0245,103c8a17,00100001 cfg-dmics:2"
		alsa.id = "sofhdadsp"
		device.string = "1"
	Profiles:
		off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
		HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2): Play HiFi quality Music (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2) (sinks: 4, sources: 2, priority: 10300, available: yes)
		HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker): Play HiFi quality Music (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker) (sinks: 4, sources: 2, priority: 10200, available: yes)
		pro-audio: Pro Audio (sinks: 5, sources: 3, priority: 1, available: yes)
	Active Profile: HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
	Ports:
		[Out] HDMI3: HDMI / DisplayPort 3 Output (type: HDMI, priority: 700, latency offset: 0 usec, availability group: HDMI/DP,pcm=5, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "HDMI/DP,pcm=5"
				device.icon_name = "video-display"
				card.profile.port = "0"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[Out] HDMI2: HDMI / DisplayPort 2 Output (type: HDMI, priority: 600, latency offset: 0 usec, availability group: HDMI/DP,pcm=4, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "HDMI/DP,pcm=4"
				device.icon_name = "video-display"
				card.profile.port = "1"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[Out] HDMI1: HDMI / DisplayPort 1 Output (type: HDMI, priority: 500, latency offset: 0 usec, availability group: HDMI/DP,pcm=3, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "HDMI/DP,pcm=3"
				device.icon_name = "video-display"
				card.profile.port = "2"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[Out] Speaker: Speaker (type: Speaker, priority: 100, latency offset: 0 usec, availability unknown)
			Properties:
				port.type = "speaker"
				device.icon_name = "audio-speakers"
				card.profile.port = "3"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker)
		[In] Mic2: Stereo Microphone (type: Mic, priority: 200, latency offset: 0 usec, availability group: Mic, available)
			Properties:
				port.type = "mic"
				port.availability-group = "Mic"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "4"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[In] Mic1: Digital Microphone (type: Mic, priority: 100, latency offset: 0 usec, availability unknown)
			Properties:
				port.type = "mic"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "5"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[Out] Headphones: Headphones (type: Headphones, priority: 200, latency offset: 0 usec, availability group: Headphone, available)
			Properties:
				port.type = "headphones"
				port.availability-group = "Headphone"
				device.icon_name = "audio-headphones"
				card.profile.port = "6"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)

Card #1921
	Name: bluez_card.14_06_A7_45_32_9D
	Driver: module-bluez5-device.c
	Owner Module: n/a
	Properties:
		device.api = "bluez5"
		device.bus = "bluetooth"
		media.class = "Audio/Device"
		device.name = "bluez_card.14_06_A7_45_32_9D"
		device.description = "WH-CH520"
		device.alias = "WH-CH520"
		device.vendor.id = "usb:054c"
		device.product.id = "0x0ead"
		device.form_factor = "headset"
		device.icon_name = "audio-headset-bluetooth"
		device.string = "14:06:A7:45:32:9D"
		api.bluez5.icon = "audio-headset"
		api.bluez5.path = "/org/bluez/hci0/dev_14_06_A7_45_32_9D"
		api.bluez5.address = "14:06:A7:45:32:9D"
		api.bluez5.device = ""
		api.bluez5.class = "0x240404"
		api.bluez5.connection = "connected"
		bluez5.profile = "off"
		spa.object.id = "0"
		factory.id = "15"
		client.id = "41"
		object.id = "126"
		object.serial = "1921"
	Profiles:
		off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
		a2dp-sink-sbc: High Fidelity Playback (A2DP Sink, codec SBC) (sinks: 1, sources: 1, priority: 132, available: yes)
		a2dp-sink-sbc_xq: High Fidelity Playback (A2DP Sink, codec SBC-XQ) (sinks: 1, sources: 1, priority: 131, available: yes)
		a2dp-sink: High Fidelity Playback (A2DP Sink, codec AAC) (sinks: 1, sources: 1, priority: 133, available: yes)
		headset-head-unit-cvsd: Headset Head Unit (HSP/HFP, codec CVSD) (sinks: 1, sources: 1, priority: 5, available: yes)
		headset-head-unit: Headset Head Unit (HSP/HFP, codec MSBC) (sinks: 1, sources: 1, priority: 6, available: yes)
	Active Profile: a2dp-sink
	Ports:
		headset-input: Handsfree (type: Headset, priority: 0, latency offset: 0 usec, available)
			Properties:
				port.type = "headset"
			Part of profile(s): a2dp-sink-sbc, a2dp-sink-sbc_xq, a2dp-sink, headset-head-unit-cvsd, headset-head-unit
		headset-output: Headphones (type: Headset, priority: 0, latency offset: 0 usec, available)
			Properties:
				port.type = "headset"
				device.icon_name = "audio-headphones-bluetooth"
			Part of profile(s): a2dp-sink-sbc, a2dp-sink-sbc_xq, a2dp-sink
		headset-hf-output: Handsfree (type: Headset, priority: 0, latency offset: 0 usec, available)
			Properties:
				port.type = "headset"
				device.icon_name = "audio-headset-bluetooth"
			Part of profile(s): headset-head-unit-cvsd, headset-head-unit

That output confirms everything seems to be ok with respect to the audio stack at least.

KDE remembers per-application routing, so first check the Plasma audio widget while Elisa or Advanced Radio Player are playing. Make sure the stream is not muted, and actually attached to the Bluetooth device

If that looks correct, the next step is to see what PipeWire is doing internally.

Run pw-topin a terminal and then start playback in one of those apps, and see whether a stream appears at all and/or it’s linked to the Bluetooth sink.

You could also check pactl list sink-inputs while the stream plays to see which sink the stream is attached to.

Elisa

pactl list sink-inputs
Sink Input #160
        Driver: PipeWire
        Owner Module: n/a
        Client: 159
        Sink: 55
        Sample Specification: float32le 2ch 44100Hz
        Channel Map: front-left,front-right
        Format: pcm, format.sample_format = "\"float32le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
        Corked: no
        Mute: no
        Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
                balance 0,00
        Buffer Latency: 0 usec
        Sink Latency: 0 usec
        Resample method: PipeWire
        Properties:
                media.type = "Audio"
                media.category = "Playback"
                media.role = "music"
                media.name = "elisa"
                stream.is-live = "true"
                node.name = "elisa"
                node.want-driver = "true"
                node.target = "55"
                node.autoconnect = "true"
                node.dont-reconnect = "true"
                media.class = "Stream/Output/Audio"
                port.group = "stream.0"
                adapt.follower.spa-node = ""
                object.register = "false"
                factory.id = "9"
                clock.quantum-limit = "8192"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                client.id = "91"
                object.id = "93"
                object.serial = "160"
                node.driver-id = "55"
                module-stream-restore.id = "sink-input-by-media-role:music"

There is sound on wired headphones, but not on Bluetooth.

You mentioned that there is sound on wired headphones but not on Bluetooth. So, not surprising that the Elisa stream is still attached to the wired sink, but did you try switching the output device in the Plasma audio widget while Elisa is playing?

This line in the pactl output
module-stream-restore.id = "sink-input-by-media-role:music"
suggests Elisa previously played on wired. PipeWire’s stream-restore remembers this and routes audio based on that.

Report back with what happens if you try to change to BT headphone output via the Plasma audio widget. Again, make sure nothing muted, or set too low.

It just won’t let me switch to BT headphones.
I’ve already tested other headphones, same story. The Gnome doesn’t have this problem.

Can you run:

> bluetoothctl
[Fairbuds XL]# devices Connected
Device 9C:0C:35:D4:56:F8 Fairbuds XL
[Fairbuds XL]# info 9C:0C:35:D4:56:F8
Device 9C:0C:35:D0:C6:98 (public)
        Name: Fairbuds XL
        Alias: Fairbuds XL
        Class: 0x00240418 (2360344)
        Icon: audio-headphones
        Paired: yes
        Bonded: yes
        Trusted: yes
        Blocked: no
        Connected: yes
        LegacyPairing: no
        UUID: Serial Port               (00001101-0000-1000-8000-00805f9b34fb)
        UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
        UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Cont.. (0000110f-0000-1000-8000-00805f9b34fb)
        UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
        UUID: Headset HS                (00001131-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        Modalias: bluetooth:v000ApFFFFdFFFF
        Battery Percentage: 0x64 (100)

Please use the MAC address you get with “devices Connected” for the info command and please share the complete output like above.

Still trying to get a better handle on this (hard when not over your shoulder to see for ourselves). :slight_smile:

While Elisa is playing, trying changing the sink with
pactl move-sink-input 160 bluez_output.14_06_A7_45_32_9D
and report back. (160 is the sink-input ID from your output.)

We need to know if it moves successfully, or you get an error.

Ok, that is a useful data point. Only failing with the Plasma desktop?

It might be useful to test behaviour with a new user as well. Create one, and then log in as that user, and test.

The only problem is with Plasma.
I switched to Gnome.
Thanks so much for your help.

Understood. From what you’ve posted, this is a Plasma-specific issue. Switching desktops is of course your choice, but without further testing we won’t identify what’s actually causing it in Plasma, and it appears you didn’t try testing with new user.

1 Like

I’ll check today.

[WH-CH520]# info 14:06:A7:45:32:9D
Device 14:06:A7:45:32:9D (public)
        Name: WH-CH520
        Alias: WH-CH520
        Class: 0x00240404 (2360324)
        Icon: audio-headset
        Paired: yes
        Bonded: yes
        Trusted: yes
        Blocked: no
        Connected: yes
        LegacyPairing: no
        UUID: Vendor specific           (00000000-deca-fade-deca-deafdecacaff)
        UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
        UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Cont.. (0000110f-0000-1000-8000-00805f9b34fb)
        UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
        UUID: Headset HS                (00001131-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: Vendor specific           (8901dfa8-5c7e-4d8f-9f0c-c2b70683f5f0)
        UUID: Vendor specific           (956c7b26-d49a-4ba8-b03f-b17d393cb6e2)
        UUID: Vendor specific           (df21fe2c-2515-4fdb-8886-f12c4d67927c)
        Modalias: usb:v054Cp0EADd1000
        Battery Percentage: 0x64 (100)

pactl move-sink-input 160 bluez_output.14_06_A7_45_32_9D
Failure: No such entity

Thanks for the bluetoothctl output, this and the fact that things run for gnome shows the BT connection is not the problem.

What you can try is run qpwgraph both for gnome (working) and KDE (not working) and compare things.

For me that gives (audio playing in the chrome webbrowser) and after re-arranging the icons:

I can’t use Gnome anymore. I did a clean install.
Goodvibes - works via BT


Elisa - not work

Advanced Radio widget - not work