发布: 更新时间:2024-07-12 08:52:14
使用WSL2时,发现其无法直接识别到宿主机上插入的USB设备。
可利用USPIPD-WIN项目进行连接。
以下以USRP B210设备连接为例,展示连接过程:
参考
连接 USB 设备 | Microsoft Learn
,我选择通过.msi文件安装:
最终获得:
usbipd
usbipd
usbipd
在安装完USBIPD-WIN项目后,基本已经可以直接进行附加USB设备的流程了,但如果WSL2版本较老,或需要特殊设备的驱动,则可能需要升级WSL2版本或编译内核。(详见
WSL support · dorssel/usbipd-win Wiki (github.com)
)
运行 WSL 内核 5.10.60.1 或更高版本的最新 Windows 版本已经支持 USB 转串口适配器和闪存嵌入式开发板等常见应用。只有在需要特殊驱动程序时,才需要为 WSL 2 构建自己的内核。
在附加 USB 设备之前,请确保 WSL 命令行已打开(确保WSL2保持活动状态)。
以下命令(除第4步外)在
管理员模式
下 的
PowerShell
中运行(实际上,只有第二步需要管理员权限,而第二步共享过一次后似乎会一直保持共享状态,之后可以跳过此步,也无需使用管理员模式):
先列出所有连接到 Windows 的 USB 设备。 列出设备后,选择并复制要附加到 WSL 的设备总线 ID(使用BUSID字段即可)。
udbipd list
在附加 USB 设备之前,必须使用命令
usbipd bind
来共享设备,从而允许它附加到 WSL。
这需要管理员权限
。 选择要在 WSL 中使用的设备总线 ID,然后运行以下命令。 运行命令后,请再次使用命令
usbipd list
验证设备是否已共享。
由图可知,USRP B210设备的BUSID为2-1,故运行:
usbipd bind --busid 2-1
对于某台设备,似乎是执行过一次该命令后便持久有效,重新插入设备或重启主机之后依然为
Shared
状态
若要附加 USB 设备,请运行以下命令。 (此处无需管理员权限)请注意,只要 USB 设备连接到 WSL,Windows 将无法使用它。 附加到 WSL 后,任何作为 WSL 2 运行的分发版本都可以使用 USB 设备。 使用
usbipd list
验证设备是否已附加。
usbipd attach --wsl --busid 2-1
执行完后设备的状态转变为
Attached
在
WSL2
下,运行以下命令列出附加的USB设备:
lsusb
在 WSL 中完成设备使用后,可物理断开 USB 设备,或者从 PowerShell 运行此命令:
usbipd detach --busid 2-1
连接 USB 设备 | Microsoft Learn
WSL2连接USB存储设备(保姆级教程,真正做到你奶奶来了也能成功)_wsl2 usb-CSDN博客
WSL support · dorssel/usbipd-win Wiki (github.com)