Ubuntu 19.10 上的 Chromium 没有声音

Ubuntu 19.10 上的 Chromium 没有声音

Pulseaudio 正在守护进程模式下运行,我能够通过 aplay、vlc 等播放声音,所以我知道声音正在正常工作。

chromium 运行时 dmesg 的输出表明 apparmor 正在阻止对声音设备的访问:

[Mon Feb 24 16:54:34 2020] audit: type=1400 audit(1582581275.262:2277): apparmor="DENIED" operation="mkdir" profile="snap.chromium.chromium" name="/run/user/1000/" pid=16304 comm="mkdir" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
[Mon Feb 24 16:54:42 2020] audit: type=1400 audit(1582581283.250:2278): apparmor="DENIED" operation="open" profile="snap.chromium.chromium" name="/dev/snd/controlC0" pid=16275 comm="chrome" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
[Mon Feb 24 16:54:42 2020] audit: type=1400 audit(1582581283.618:2279): apparmor="DENIED" operation="open" profile="snap.chromium.chromium" name="/dev/snd/controlC0" pid=16275 comm="chrome" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
[Mon Feb 24 16:54:42 2020] audit: type=1400 audit(1582581283.618:2280): apparmor="DENIED" operation="open" profile="snap.chromium.chromium" name="/dev/snd/controlC0" pid=16275 comm="chrome" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
[Mon Feb 24 16:54:42 2020] audit: type=1400 audit(1582581283.750:2281): apparmor="DENIED" operation="open" profile="snap.chromium.chromium" name="/dev/snd/controlC0" pid=16275 comm="chrome" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
[Mon Feb 24 16:54:42 2020] audit: type=1400 audit(1582581283.750:2282): apparmor="DENIED" operation="open" profile="snap.chromium.chromium" name="/dev/snd/controlC0" pid=16275 comm="chrome" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
[Mon Feb 24 16:58:48 2020] audit: type=1400 audit(1582581529.770:2284): apparmor="DENIED" operation="open" profile="snap.chromium.chromium" name="/dev/snd/controlC0" pid=16275 comm="chrome" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0

我已通过 systemctl stop apparmor 停止了 apparmor。

编辑:#1:

19 processes are in enforce mode.
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (1227) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (1622) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (1633) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (1686) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (1690) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (3354) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (12295) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (12414) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (16471) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (17290) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (20617) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (22088) snap.chromium.chromium
   /snap/chromium/1036/usr/lib/chromium-browser/chrome (23416) snap.chromium.chromium

我省略了不相关的过程。Chromium snap 处于强制模式。

我不认为问题出在 pulseaudio 上,而是出在 Chromium snap 的配置上。如上面的日志所示,它显然阻止了对声音设备的访问。

答案1

装甲保护Linux服务并有两种类型的配置文件模式:执行抱怨。在投诉模式下,系统不会强制执行任何规则。它只会记录违规尝试

因此,您可以检查您的守护进程应用了哪种配置文件模式:

$ sudo apt-get install apparmor-utils
$ sudo apparmor_status

您需要使用aa-complain命令将您的 pulseaudio 守护进程添加到投诉模式:

$ sudo aa-complain /usr/bin/pulseaudio # path to your daemon could be different

如果执行命令whereis pulseaudio时没有显示路径,请使用命令查看它在系统中的位置。apparmor_status

答案2

我已通过以下方式暂时禁用 apparmor 配置文件:

  1. 跑步apparmor_parser -R <path to profile>
  2. 通过符号链接永久禁用配置文件<path to profile> /etc/apparmor.d/disable/<profile-to-disable>

相关内容