在 WSL2 中安装 v4l2loopback

Install v4l2loopback in WSL2

我目前正在努力 v4l2loopback 在 WSL2 上进行安装。

一些上下文:

最近,我阅读了有关 create a virtual video device in Linux 的内容,然后从图像或视频文件中模拟其输出。

这对于测试或开发目的非常重要,例如为了将一个虚拟网络摄像头附加到 android 模拟器以循环再现视频文件。

经过一番研究,我得出的结论是我不想使用桌面应用程序,即使在 CI 或类似的环境中也可能很容易 运行,因此 v4l2loopback看起来不错,但我目前是 Windows 用户。

我在我的机器上启用了 WSL2,下载了存储库,并尝试执行存储库描述中的 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;即使你能够构建它,也没有任何东西,没有内核,可以加载它!

也许您的替代方案是 运行 Virtualbox(它是免费的,可用于 Windows)在您的 windows 机器上,并加载真正的 Linux 发行版你自己的选择。然后构建 v4l2loop module,安装内核开发头文件后,安装 mod(构建后,以 root 身份执行 insmod v4l2loop.ko)并使用它。

因此,您已经上路了。更优雅,也更容易。还将让您在 'getting familiar with Linux' 阶梯上进行一次巨大而重要的攀登,并可能熟悉虚拟机(?)。

我肯定会这样做。