$ 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
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?
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
I downgraded the kernel version to
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
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.