我目前正在努力在 WSL2 上安装 v4l2loopback
。
一些上下文:
最近,我读到了关于 create a virtual video device in 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
我用谷歌搜索了一下,发现 issue在 GitHub 上,其中提到了类似的输出(对于另一个工具)。 在那里,有人提到 WSL2 Kernel Config可以进行调整以添加更多模块(也许并且希望其中一个可以使 v4l2-loopback 工作 😂 或至少我认为如此)。
我还用谷歌搜索以查看 custom WSL builds但我不太确定我需要什么才能让它发挥作用,或者即使我正朝着正确的方向前进。
为了使 v4l2loopback
工作,我错过了什么吗?
如果只有自定义 WSL2 构建可以工作,我应该如何进行?
提前致谢🤘
最佳答案
我对WSL不熟悉...
-- 啊,看来 WSL 根本没有 linux 内核:看 https://unix.stackexchange.com/questions/594470/wsl-2-does-not-have-lib-modules . 所以构建 v4l2loopback mod 是没有用的;即使您能够构建它,也没有任何东西,没有内核,可以加载它!
也许您的替代方案是在 Windows 机器上运行 Virtualbox(它是免费的,可用于 Windows),并在其中加载您自己选择的真正的 Linux 发行版。然后构建 v4l2loop 模块,安装内核开发头文件后,安装 mod(构建后,以 root 身份执行 insmod v4l2loop.ko
)并使用它。
因此,您已经上路了。更优雅,也更容易。还将让您在“熟悉 Linux”阶梯上进行巨大而重要的攀登,并可能熟悉虚拟机(?)。
我肯定会这样做。
关于windows-subsystem-for-linux - 在 WSL2 中安装 v4l2loopback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63142749/