$ neofetch
OS: Pop!_OS 21.10 x86_64
Kernel: 5.15.8-76051508-generic
I have two Bluetooth devices: a speaker SoundCore Boost
and headphones EDIFIER W830BT
.
When I'm trying to change the volume on headphones using system volume settings it does work. Headphones also have buttons on them for controlling volume and those buttons also work (they change system volume in Linux).
But on a Bluetooth speaker changing volume in Linux doesn't affect the actual volume. On the other hand, using volume buttons on the speaker does change the system volume in Linux (and the volume level bar in Linux changes as expected when I use the device's buttons).
Also, when I mute system volume in Linux it does affect the speaker (sound mutes).
Summarizing - Bluetooth devices work, sound plays, I can change volumes using devices' buttons but only the speaker volume can't be controlled via Linux system volume (except muting).
I removed and paired again the speaker but that didn't help.
For both devices, Output Device configuration
is set to Hight Fidelity Playback (A2DP Sink)
.
The same speaker works well on macOS (changing system volume affects the speaker volume).
$ bluetoothctl devices
Device 00:22:37:59:E0:A5 SoundCore Boost
Device 5C:C6:E9:30:68:EA EDIFIER W830BT
$ bluetoothctl show
Controller 38:DE:AD:1B:85:90 (public)
Name: xxxx
Alias: xxxx
Class: 0x007c010c
Powered: yes
Discoverable: no
DiscoverableTimeout: 0x000000b4
Pairable: no
UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: OBEX Object Push (00001105-0000-1000-8000-00805f9b34fb)
UUID: Message Access Server (00001132-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: IrMC Sync (00001104-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (00005005-0000-1000-8000-0002ee000001)
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Phonebook Access Server (0000112f-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Handsfree Audio Gateway (0000111f-0000-1000-8000-00805f9b34fb)
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: OBEX File Transfer (00001106-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d053C
Discovering: no
Roles: central
Roles: peripheral
Advertising Features:
ActiveInstances: 0x00 (0)
SupportedInstances: 0x05 (5)
SupportedIncludes: tx-power
SupportedIncludes: appearance
SupportedIncludes: local-name
Any ideas on how to solve the problem?
Edit 1:
I booted live LTS version with an older kernel
$ neofetch
OS: Pop!_OS 20.04 LTS x86_64
Kernel: 5.13.0-7620-generic
And it turned out that there's no issue with that version - system sound control affects the volume of my Bluetooth speaker as expected.
I also booted the live version of my current system (to confirm that there's no issue with my installed version) and the issue with volume control was present.
So my guess is that kernel 5.15.8-76051508-generic
does something with Bluetooth and sound control differently than 5.13.0-7620-generic
.
Edit 2:
I downgraded the kernel version to 5.13.0
.
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.13/
I downloaded 4 files and installed them
$ ls
linux-headers-xxx_all.deb
linux-headers-xxx-generic_xxx.deb
linux-image-usigned-xxx-generic_xxx.deb
linux-modules-xxx-generic_xxx.deb
$ sudo dpkg -i *.deb
Pop!_OS doesn't have GRUB and uses kernelstub
https://github.com/isantop/kernelstub/blob/master/README.md
I changed the kernel version using the following command (where xxx is the desired kernel version)
$ sudo kernelstub -v -k /boot/vmlinuz-xxx-generic -i /boot/initrd.img-xxx-generic
After the reboot, I see that I'm using kernel 5.13.0-051300-generic
but that doesn't solve the problem with volume control.
$ uname -r
5.13.0-051300-generic
So my guess is that Pop!_OS
changed something between 20.04 LTS
and 21.10
that broke proper volume control in my Bluetooth speaker and it's not the kernel's fault.