如何设置默认输出设备的ipc_perm?

如何设置默认输出设备的ipc_perm?

当我使用aplay播放一些声音时,有时会出现错误:

ALSA lib pcm_dmix.c:1071:(snd_pcm_dmix_open) unable to create IPC semaphore
aplay: main:828: audio open error: Permission denied

似乎仅当主机上的非 root 用户已经在播放某些内容,然后 Docker 容器中的 root 用户开始播放时,才会发生这种情况。当 root 在容器中播放某些内容,然后用户开始在主机上播放时,它可以正常工作。 (容器以 运行--ipc="host"。)

我不太明白为什么它会以这种方式失败,但我想尝试将IPC信号量的权限设置为666。在ipcs我可以看到它们当前是660。

为此,我需要ipc_perm 0666在 asound.conf 中进行设置,但我不知道如何做到这一点默认设备。

我知道我可以创建一个新的设备与

pcm.foo {
  ipc_perm 0666
}

但我想将其设置为默认设备,而不删除默认设备配置的其余部分。

答案1

在写问题时我注意到我已经有了

defaults.pcm.card 1
defaults.ctl.card 1

在 my 中asound.conf选择默认输出设备的硬件设备。

所以我尝试了更多的运气而不是判断

defaults.pcm.ipc_perm 0666

它起作用了。

相关内容