我正在使用没有ALSA的snd-dummy模块可用的docker映像。我需要模拟声卡。我不需要(或不想)听音频。
基于我所做的许多搜索,我相当确定我想使用ALSA的snd-dummy模块来模拟声卡,本质上是/ dev / null。
查看ALSA Matrix:Module-dummy指南,它指出,如果“ modinfo soundcore”返回您具有此模块,则无需重新编译内核。
在我的情况下,我没有“ soundcore”或“ sound”可用。我知道这意味着我必须重新编译内核。对我来说,重新编译docker映像的内核是一个新概念。 Docker对我来说是一个新概念。
Docker映像: https://github.com/fcwu/docker-ubuntu-vnc-desktop
ALSA Matrix snd-dummy: https://www.alsa-project.org/main/index.php/Matrix:Module-dummy
这对我来说是一个潜在的解决方案吗?: https://github.com/torvalds/linux/blob/master/sound/drivers/dummy.c
将〜/ .asoundrc替换为以下内容并运行“ alsactl restore”时,我得到以下输出。另外,我的主机的音量也受影响。
# .asoundrc
pcm.dummy {
type hw
card 0
}
ctl.dummy {
type hw
card 0
}
$实际还原
alactl:load_state:1683:无法打开/var/lib/alsa/asound.state 读取:没有这样的文件或目录找到硬件:“ HDA-Intel” “ Realtek ALC269VB”“ HDA:10ec0269,10280446,00100100 HDA:80862805,80860101,00100000“” 0x1028“” 0x0446“硬件是
使用通用方法初始化发现硬件:“虚拟”“虚拟”
混合器“”“”“”“硬件使用通用方法初始化
答案 0 :(得分:1)
我认为解决方案是将声音设备安装到docker中,这里的问题是您必须使用privileged
:
docker run -v /dev/snd:/dev/snd --privileged myImage ...
更新 您还可以插入内核模块snd-aloop并指定2作为主机上声音循环设备的索引:
sudo modprobe snd-aloop index=2
docker run -it --rm -p 6080:80 --device /dev/snd -e ALSADEV=hw:2,0 dorowu/ubuntu-desktop-lxde-vnc