极智开发 | 让wsl2读取宿主机usb设备

欢迎关注我的公众号 [极智视界],获取我的更多经验分享

大家好,我是极智视界,本文介绍一下 让wsl2读取宿主机usb设备的方法。

邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq

默认安装的 wsl2 是不支持读取宿主机的 usb 设备的,这里就是要解决这个问题

前提条件

  • win11 的版本需要 >= Build 22000,win10 也有可能支持; ==> 查看版本的方法:win键 + R,输入 winver;

极智开发 | 让wsl2读取宿主机usb设备_第1张图片

  • 需要是 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设备_第2张图片

然后转到 wsl2 中,使用如下命令可以查看已经链接的 USB 设备:

lsusb

这样就大功告成了。

好了,以上分享了 让wsl2读取宿主机usb设备的方法,希望我的分享能对你的学习有一点帮助。


【极智视界】

《极智开发 | 让wsl2读取宿主机usb设备》

畅享人工智能的科技魅力,让好玩的AI项目不难玩。邀请您加入我的知识星球,星球内我精心整备了大量好玩的AI项目,皆以工程源码形式开放使用,涵盖人脸、检测、分割、多模态、AIGC、自动驾驶、工业等。不敢说会对你学习有所帮助,但一定非常好玩,并持续更新更加有趣的项目。https://t.zsxq.com/0aiNxERDq

​​​​​

你可能感兴趣的:(精选,wsl2,win11,子系统,usbipd,linux)