当我使用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
它起作用了。