欢迎关注我的公众号 [极智视界],获取我的更多经验分享
大家好,我是极智视界,本文介绍一下 让wsl2读取宿主机usb设备的方法。
邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq
默认安装的 wsl2 是不支持读取宿主机的 usb 设备的,这里就是要解决这个问题
前提条件
- win11 的版本需要 >= Build 22000,win10 也有可能支持; ==> 查看版本的方法:win键 + R,输入 winver;
- 需要是 x64/x86 处理器的机器,目前 usbipd-win 是不支持 Arm64 的,至于 usbipd-win 是什么,咱们后面再说;
- 已经安装了 wsl2,注意版本是 2;
- linux 内核 >= 5.10.60.1; ==>
uname -a
安装 USBIPD-WIN
wsl2 本身是不支持连接 usb 设备的,因此需要安装一下 usbipd-win 这个项目来帮助在 wsl2 中共享到宿主机的 usb 设备。
安装 usbipd-win 的方法如下:
- 下载 usbipd-win 的安装镜像,获取:链接
- 下载好后,直接双击进行安装就行
安装的过程很简单,但是也需要说明一下到底安装了些什么东西,主要做了下面几个事情:
- 安装了 "USBIP 设备主机" 的服务 usbipd; ==> 可以通过 win + S,输入服务来找到;
- 可执行程序 usbipd,并自动添加到了系统环境变量中;
- 调用了防火墙规则 usbipd 来允许所有的本地子网络能够连接到服务;
wsl2 中安装 USBIP 工具
如果你的 wsl2 是 ubuntu 的,可以使用如下命令:
sudo apt install linux-tools-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
wsl2 连接宿主机 USB 设备
首先打开 wsl2,比如我的 ubuntu20.04,点击打开让它保持活跃状态。
然后回到 windows,按 win +X,选择管理员权限打开终端,用如下命令查看所有连接到 windows 的 USB 设备:
usbipd wsl list
这个时候会列出连接在 windows 机器上所有的 USB 设备, 比如我的:
这里需要关注的就是两列,分别是 BUSID 和 STATE,BUSID 就是每个 USB 设备的唯一 ID,STATE 就是 USB 设备的状态,如果是 Not attached,那就是还没有挂载到 wsl2 中。
接下来要做的就是把自己想要的 USB 设备挂载到 wsl2,那么如何确定哪个 BUSID 的 USB 设备是自己想要挂载的那个呢,其实做法很简单,插拔看一下就行。比如我这里插拔后确认 BUSID 为 3-1 的 USB 设备是我想要挂载的,那么就可以使用如下命令进行挂载到 wsl2:
usbipd wsl attach --busid 3-1
需要注意的是,这里可能会提示你要升级一下 wsl,那么直接 wsl --update 就行了。
然后可以先在宿主机上还是使用刚才的命令 usbipd wsl list
查看一下 STATE,比如我的:
然后转到 wsl2 中,使用如下命令可以查看已经链接的 USB 设备:
lsusb
这样就大功告成了。
好了,以上分享了 让wsl2读取宿主机usb设备的方法,希望我的分享能对你的学习有一点帮助。
【极智视界】
《极智开发 | 让wsl2读取宿主机usb设备》
畅享人工智能的科技魅力,让好玩的AI项目不难玩。邀请您加入我的知识星球,星球内我精心整备了大量好玩的AI项目,皆以工程源码形式开放使用,涵盖人脸、检测、分割、多模态、AIGC、自动驾驶、工业等。不敢说会对你学习有所帮助,但一定非常好玩,并持续更新更加有趣的项目。https://t.zsxq.com/0aiNxERDq