前言
因一些其他不原因,不能在windows物理机上进行嵌入式开发,只能在WSL环境下进行编程开发。但是又遇到了需要本地物理机(windows系统)共享USB外接设备(嵌入式开发板)给WSL内程序使用。网上找了很多方法(博主当时应该是有用的)可能有由于时间或者版本原因,在我这都不太适用。
注意:我这篇日志时间是2025-04-16。主要查看你的版本是否和我的匹配。
先上链接:
WSL连接 USB 设备(Windows官网): https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb
WSL(Ubuntu)连接 Windows 的 USB 设备(完结)https://www.cnblogs.com/likkoliu/p/18157046
电脑信息
物理机系统
Windows 版本
版本 Windows 10 专业版
版本号 22H2
PowerShell版本 # $psversiontable 或者 $host 可查询
PSVersion 5.1.19041.4046
WSL系统信息
WSL内核版本:# $uname -a 可查询
Linux RDRJ-yangzhiheng 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
WSL系统版本: # $lsb_release -a 可查询
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
操作步骤
1、安装USBIPD-WIN项目
以 管理员权限打开PowerShell,输入一下命令安装即可。
winget install --interactive --exact dorssel.usbipd-win
如果省略了 --interactive,winget 可能会立即重启计算机(如果这是安装驱动程序所必需的操作)。
2、查看USB设备
在PowerShell里输入以下指令,可以查看到物理机上连接到的USB设备信息。重点记一下USBID这个编号。
usbipdlist
3、修改设备属性
使用以下指令设置USB设备属性为共享。
usbipd bind --busid <BUSID> #前面查询到的待共享设备<BUSID>
usbipd list #查看验证设备共享属性<STATE>
4、挂载USB设备
执行以下指令,将USB设备挂载到WSL中。注意,USB 设备挂在到 WSL后,Windows 将无法访问)。
usbipd attach --wsl -b <BUSID> #前面查询到的待共享设备<BUSID>
5、WSL中配置使用设备
在WSL输入以下指令可检索到挂载的USB设备。
lsusb
注意:在WSL使用USB设备期间,之前打开的PowerShell命令窗口不能关闭,否则会导致WSL中USB设备连接失败。需重新以 管理员权限打开PowerShell执行第4步。
6、断开USB设备
在 WSL 中完成设备使用后,可物理断开 USB 设备,或者从 PowerShell运行此命令:
usbipd detach --busid <busid> #前面查询到的共享设备<BUSID>
总结
以上是我的配置过程希望对你有用。
码字不易,转正请注明出处。