$ neofetch
OS: Pop!_OS 21.10 x86_64
Kernel: 5.15.8-76051508-generic
我有两个蓝牙设备:扬声器SoundCore Boost
和耳机EDIFIER W830BT
。
当我尝试使用系统音量设置更改耳机音量时,它确实有效。耳机上还有用于控制音量的按钮,这些按钮也可以工作(它们可以改变 Linux 中的系统音量)。
但在 Linux 中改变蓝牙扬声器的音量不会影响实际音量。另一方面,使用扬声器上的音量按钮确实会改变 Linux 中的系统音量(当我使用设备按钮时,Linux 中的音量条会按预期变化)。
另外,当我在 Linux 中将系统音量静音时,它确实会影响扬声器(声音静音)。
总结 - 蓝牙设备可以工作,声音可以播放,我可以使用设备的按钮更改音量,但只有扬声器音量无法通过 Linux 系统音量控制(静音除外)。
我移除并再次配对了扬声器,但这没有帮助。
对于这两种设备,Output Device configuration
设置为Hight Fidelity Playback (A2DP Sink)
。
相同的扬声器在 macOS 上运行良好(更改系统音量会影响扬声器音量)。
$ 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
关于如何解决问题有什么想法吗?
编辑1:
我使用旧内核启动了实时 LTS 版本
$ neofetch
OS: Pop!_OS 20.04 LTS x86_64
Kernel: 5.13.0-7620-generic
事实证明,该版本没有问题——系统声音控制按预期影响了我的蓝牙扬声器的音量。
我还启动了当前系统的实时版本(以确认我安装的版本没有问题)并且存在音量控制问题。
所以我的猜测是,内核5.15.8-76051508-generic
对蓝牙和声音控制的处理方式与5.13.0-7620-generic
.
编辑2:
我将内核版本降级为5.13.0
.
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.13/
我下载了4个文件并安装了
$ 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 没有 GRUB 并且使用kernelstub
https://github.com/isantop/kernelstub/blob/master/README.md
我使用以下命令更改了内核版本(其中 xxx 是所需的内核版本)
$ sudo kernelstub -v -k /boot/vmlinuz-xxx-generic -i /boot/initrd.img-xxx-generic
重新启动后,我发现我正在使用内核5.13.0-051300-generic
,但这并不能解决音量控制问题。
$ uname -r
5.13.0-051300-generic
所以我的猜测是,在和Pop!_OS
之间发生了一些变化,破坏了我的蓝牙扬声器的正确音量控制,这不是内核的错。20.04 LTS
21.10
答案1
在 Pulseaudio 的配置中禁用绝对音量。
编辑文件
/etc/pulse/default.pa
并更改线路
load-module module-bluetooth-discover
到
load-module module-bluetooth-discover avrcp_absolute_volume=false
该解决方案的功劳在于https://www.reddit.com/user/mmstick/ https://www.reddit.com/r/pop_os/comments/s2y0hf/pop_os_2110_brake_bluetooth_device_volume_control/
不幸的是,上述解决方案不再为我工作(内核5.19.0-76051900-generic
)
,但我找到了另一个目前适合我的解决方案:https://askubuntu.com/a/1350436