如何设置多用户 Pulseaudio 蓝牙配置

如何设置多用户 Pulseaudio 蓝牙配置

在调查我的工作站(Ubuntu 22.04)中的零星蓝牙连接问题时,我发现同一台计算机中由其他用户启动的其他pulseaudio实例以某种方式从pulseaudio捕获蓝牙接收器并从我的pulseaudio实例中窃取设备。设置是我将工作站用作带显示器的桌面,但其他同事也通过SSH使用工作站。

bluetoothctl发生这种情况时,我可以在 中看到来自我的用户和其他人的设备user

user@ws:~$ bluetoothctl
Agent registered
[CHG] Controller <...> Pairable: yes
[CHG] Controller <...> Pairable: yes
[WH-1000XM5]# info <MAC address of device>
Device <MAC address of device> (public)
    Name: WH-1000XM5
    Alias: WH-1000XM5
    Class: 0x00240404
    Icon: audio-headset
    Paired: yes
    Trusted: yes
    Blocked: no
    Connected: yes
    WakeAllowed: yes
    [...]
[WH-1000XM5]#

但我看不到pulseaudio中的水槽,无论是来自pavucontrol还是来自pactlpacmd

user@ws:~$ pactl list short sinks

0   alsa_output.pci-0000_01_00.1.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
1   alsa_output.usb-Generic_USB_Audio-00.iec958-stereo  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED

并且耳机无法使用。

据报道蓝牙耳机根据 Arch Wiki,当 GDM 启动自己的pulseaudio 守护进程并窃取接收器时,就会发生这种情况。就我而言,pulseaudio 守护进程是由其他用户启动的。

理想情况下,由于蓝牙耳机是个人的,因此只有我的用户应该能够看到该设备,并且当然我的脉冲音频守护程序应该保持接收器的独占所有权。

为了解决这个问题,我最初的想法是从系统范围的配置文件中删除蓝牙配置/etc/pulse/default.pa,并仅加载我的个人文件中的蓝牙模块~/.config/pulse

但是,这可能会阻止其他用户使用他们的我的工作站上有蓝牙耳机。这种情况很少见,我可能永远不需要这样的东西,但我很想听到其他可能避免此问题的解决方案(如果有)。

相关内容