有没有办法将摄像头传递到 Windows Subsystem for Linux?此功能将使我现在所做的一切都变得容易得多。我知道有一个关于 USB 支持的功能请求,但目前有解决方法吗?我可以在主机上设置摄像头流并在 Ubuntu 终端上访问“联网”流吗?
编辑:澄清
答案1
可惜,目前 WSL 不支持摄像头设备。如果您希望在未来版本中看到此功能,请在以下位置查找并点赞或提出问题:WSL UserVoice 页面。
答案2
虽然我还没有尝试过,但最近的一些发展应该可以让你间接地实现这一点。
首先,来自微软的这个开发博客详细介绍了新的 WSL2 内核对 USB/IP 的支持,以及启用它所需的步骤。从高层次来看:
- 根据 devblog,需要 Windows 11(尽管请参见下文了解在 Windows 10 上执行此操作的可能性)。
- 使用 更新至 5.10.60.1 内核版本
wsl --update
。 - 安装最新版本的usbip-win
- 安装 USB/IP 的用户空间工具以及 USB 设备的硬件数据库。
- 将工具添加到
sudoers
secure_path - 作为 Windows 管理员,使用
usbipd
- 通过以下方式检查设备是否已连接到 WSL:
lsusb
还要注意的是,一些在 WSL 中运行 Home Assistant 的人在 Windows 11 之前就已经成功使用 USB/IP。请参阅这个答案以供我撰写,以及详细介绍此内容的 Home Assistant 帖子的链接。
答案3
这是我使用的一个解决方法:
我通过 HTTP 将 USB 和内置摄像头视频作为 MJPEG 数据传输,并在 WSL 中接收它。这适用于 WSL1 和 2。
我写了一个三步指南: https://gist.github.com/soerenkoh/a964caf0ca958c4e3a9cdac125615c2f