docker 如何在VSCode开发容器中使用USB/COM端口?

8wtpewkr  于 2023-04-29  发布在  Docker
关注(0)|答案(2)|浏览(252)

在VSCode(Debian Linux)的开发容器中,我想使用COM端口通过连接到Windows主机的USB设备(通过WSL2)进行通信。如何使COM端口在容器内可用?

编辑:

对于WSL2,目前还没有官方支持。
到目前为止,WSL 2不包括串行支持或USB设备支持。
在GitHub上跟踪相应的功能请求。

xv8emn3q

xv8emn3q1#

2021年7月:截至目前,WSL 2不包括串行支持或USB设备支持。
2021年11月更新:相同的FAQ指出:
Skanda Hazarika报告:
∮ ∮ ∮ ∮
如果您是Windows Subsystem for Linux的活跃用户,并且希望直接从运行在WSL下的Linux示例访问USB设备,那么您将很高兴地知道在这方面已经取得了重大进展。
感谢微软对开源**dorssel/usbipd-win项目的贡献,您现在可以在WSL中享受USB passthrough访问。
这意味着最终用户可以在Linux的Windows子系统下执行诸如刷新Android设备之类的任务,否则Linux子系统不支持这些任务。
usbipd-win项目旨在创建一个解决方案,用于将本地连接的USB设备共享到其他机器,包括Hyper-V访客和WSL 2。然而,官方的WSL 2 Linux内核过去缺乏对
USB/IP protocol**的支持,需要用户自己构建内核。
自WSL内核版本 www.example.com ,所需的参数是开箱即用配置的,因此不需要手动重新编译。
微软还为该项目提供了一个命令行界面,既可以在Windows上共享USB设备,也可以从WSL中无缝连接。
因此,如果您有:

然后,您的VSCode应该能够通过WSL访问安装的USB驱动器。

qij5mzcb

qij5mzcb2#

2023年4月

现在可以在Windows 10中设置整个USB访问链,并使用Docker假设Ubuntu在WSL2上。
1.确保你的WSL内核至少是5。10.60(可以在windows cmd行中使用wsl --status进行检查)
1.运行上述步骤on the Microsoft page
1.设置后,您应该看到设备带有lsusbapt install usbutils

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0483:3748 STMicroelectronics ST-LINK/V2
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

1.这是可能的,你仍然没有看到它在/dev。在这种情况下,您需要在/etc/udev/rules.d中创建一个99-platformio-udev.rules文件,并添加您的usb设备的定义。请参阅github页面以获取可能也包含您所选设备的列表。
1.在此之后,您可能需要重新加载udev配置。注意:我发现我的设备实际上在/dev/bus/usb...下,而不是/dev/ttyUSB

sudo udevadm control --reload
sudo service udev restart

1.最后将"--device=/dev/..."添加到.devcontainer文件runArgs部分或docker run ...命令中。确保您在容器中拥有root权限。(以root登录或使用--privileged登录)

相关问题