3

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

一些上下文:

最近,我读到了关于在 Linux 中创建一个虚拟视频设备,然后从图像或视频文件模拟它的输出。

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

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

我在我的机器上启用了 WSL2,下载了 repo,并尝试执行makerepo 描述中的命令。

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-loopback 工作,或者至少我认为)。

我还用谷歌搜索了自定义 WSL 构建,但我不确定我需要什么才能让它工作,或者即使我朝着正确的方向前进。

为了v4l2loopback工作,我错过了什么吗?

如果只有自定义 WSL2 构建可以工作,我应该如何进行?

提前致谢

4

1 回答 1

2

我对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”阶梯上取得巨大而重要的进展,并可能熟悉虚拟机(?)。

我肯定会去的。

于 2020-08-01T23:28:12.610 回答