我正在运行wireplumber
++ pipewire
,pipewire-pulse
但 HDMI 电缆无法发出任何声音。 pactl list sinks
显示我所有的音频设备,SUSPENDED
并journalctl --user -u pipewire
显示每个设备的错误消息墙,如下所示
spa.audioadapter: params Spa:Enum:ParamId:EnumFormat: 0:0 (follower format) Device or resource busy
spa.alsa: '_ucm0001.hw:Audio,3': playback open failed: Device or resource busy
我认为问题是其他东西锁定了我的设备/dev/snd
# fuser -fv /dev/snd/*
USER PID ACCESS COMMAND
/dev/snd/controlC0: cheez 1383 F.... pipewire
cheez 1388 F.... wireplumber
root 3710 F.... pulseaudio
/dev/snd/controlC1: cheez 1388 F.... wireplumber
root 3710 F.... pulseaudio
/dev/snd/pcmC0D0p: root 3710 F...m pulseaudio
/dev/snd/pcmC0D1c: root 3710 F...m pulseaudio
/dev/snd/pcmC0D1p: root 3710 F...m pulseaudio
/dev/snd/pcmC0D2c: root 3710 F...m pulseaudio
/dev/snd/pcmC0D3p: root 3710 F...m pulseaudio
/dev/snd/pcmC1D9p: root 3710 F...m pulseaudio
/dev/snd/seq: cheez 1383 F.... pipewire
我没有pulseaudio
安装过。我有pipewire-pulse
。为什么 root 会锁定我的声卡?我怎样才能解锁
答案1
谢谢@cheezsteak 的指点。对于遇到同样问题的其他人,Home Assistant 的存储库已建议防止容器控制主机的声卡。
只需创建一个包含以下内容的文件 /etc/udev/rules.d/89-pulseaudio.rules :
DRIVERS=="bcm2835_audio", ENV{PULSE_IGNORE}="1"
如果需要,将“bcm2835_audio”替换为您卡的驱动程序,您可以使用以下命令找到它
udevadm info -a -p $(udevadm info -q path -n /dev/snd/controlC0)