windows-subsystem-for-linux - 在 WSL2 中安装 v4l2loopback

标签 windows-subsystem-for-linux wsl-2 v4l2loopback

我目前正在努力在 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/

相关文章:

javascript - 如何在环回中多次切换模型的数据源? AttachTo 不起作用

goland - 如何在 wsl2 golang 中设置 goroot

docker - 无法访问在 WSL2 中运行的 Docker 容器

ffmpeg 水平翻转网络摄像头到虚拟摄像机

windows-subsystem-for-linux - 如何在 WSL 和 Windows 10 中组织编程语言和库

ubuntu - Windows10 WSL2 Ubuntu/Debian # 无网络

linux - 如何在 ffmpeg 中捕获标准输出流然后将其通过管道传输到 v4l2loopback

docker - 使用 WLS2 在 Docker 桌面上启用 Ingress Controller

ubuntu - 如何将 Windows 10 WSL 2 Linux 发行版移动到另一个位置

c - WSL : Function not implemented