藍牙揚聲器音量控制不起作用(但靜音起作用)
$ 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
破壞了我的藍牙揚聲器中正確的音量控制,這不是核心的錯。
在 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/