我目前正在WSL2上安装v4l2loopback
。
一些上下文:
最近,我读到一篇关于在Linux中创建虚拟视频设备,然后从图像或视频文件中模拟其输出的文章。
这对于测试或开发目的非常重要,例如,为了将一个将视频文件作为循环再现的虚拟网络摄像头连接到android模拟器。
经过一些研究,我得出的结论是,我不想使用桌面应用程序,即使在CI或类似环境中运行也可能很容易,因此v4l2loopback看起来不错,但我目前是Windows用户。
我在机器上启用了WSL2,下载了repo,并尝试像repo描述中那样执行make
命令。
Building v4l2-loopback driver...
make -C /lib/modules/`uname -r`/build M=/home/angel/v4l2loopback modules
make[1]: *** /lib/modules/4.19.84-microsoft-standard/build: No such file or directory. Stop.
make: *** [Makefile:43: v4l2loopback.ko] Error 2
我在谷歌上搜索了一下,在GitHub上发现了这个问题,其中提到了类似的输出(针对另一个工具(。有人提到,WSL2内核配置可以进行调整,以添加更多模块(也许,希望其中一个模块可以在v4l2环回中工作😂或者至少我认为是这样(。
为了查看自定义的WSL构建,我也在谷歌上搜索了一下,但我真的不确定我需要什么才能让它发挥作用,甚至不确定我是否朝着正确的方向前进。
为了使v4l2loopback
发挥作用,我错过了什么吗?
在只有自定义WSL2构建才能工作的情况下,我应该如何继续?
提前感谢🤘
我不熟悉WSL。。。
--啊,看来WSL根本没有linux内核:请参阅https://unix.stackexchange.com/questions/594470/wsl-2-does-not-have-lib-modules。所以构建v4l2loopback模式是没有用的;即使您能够构建它,也没有任何东西,没有内核可以加载它!
也许对你来说,一个替代方案可能是在你的Windows机器上运行Virtualbox(它是免费的,适用于Windows(,并在其中加载你自己选择的真正的Linux发行版。然后在安装内核开发头之后构建v4l2loop模块,并安装mod(在构建之后,就像root用户做insmod v4l2loop.ko
一样(并使用它。
因此,你正在路上。更优雅,更容易。此外,你还将在"熟悉Linux"的阶梯上进行一次巨大而重要的攀登,以及熟悉虚拟机(?(。
我肯定会这么做。