使用WSL2时,发现其无法直接识别到宿主机上插入的USB设备。

可利用USPIPD-WIN项目进行连接。

以下以USRP B210设备连接为例,展示连接过程:

安装USBIPD-WIN 项目

参考连接 USB 设备 | Microsoft Learn,我选择通过.msi文件安装:

  1. 转到 usbipd-win 项目的最新发布页
  2. 选择 .msi 文件,该文件将下载安装程序。 (你可能会收到一条警告,要求你确认你信任此下载)。
  3. 运行下载的 usbipd-win_x.msi 安装程序文件。(选最新版就行)

最终获得:

  • 名为 usbipd 的服务(显示名称:USBIP 设备主机)。 可使用 Windows 中的“服务”应用检查此服务的状态。
  • 命令行工具 usbipd。 此工具的位置将添加到 PATH 环境变量。
  • 名为 usbipd 的防火墙规则,用于允许所有本地子网连接到服务。 可修改此防火墙规则以微调访问控制。

在安装完USBIPD-WIN项目后,基本已经可以直接进行附加USB设备的流程了,但如果WSL2版本较老,或需要特殊设备的驱动,则可能需要升级WSL2版本或编译内核。(详见WSL support · dorssel/usbipd-win Wiki (github.com))

运行 WSL 内核 5.10.60.1 或更高版本的最新 Windows 版本已经支持 USB 转串口适配器和闪存嵌入式开发板等常见应用。只有在需要特殊驱动程序时,才需要为 WSL 2 构建自己的内核。

附加 USB 设备

在附加 USB 设备之前,请确保 WSL 命令行已打开(确保WSL2保持活动状态)。

以下命令(除第4步外)在管理员模式下 的PowerShell中运行(实际上,只有第二步需要管理员权限,而第二步共享过一次后似乎会一直保持共享状态,之后可以跳过此步,也无需使用管理员模式):

  1. 先列出所有连接到 Windows 的 USB 设备。 列出设备后,选择并复制要附加到 WSL 的设备总线 ID(使用BUSID字段即可)。

    udbipd list

  1. 在附加 USB 设备之前,必须使用命令 usbipd bind 来共享设备,从而允许它附加到 WSL。 这需要管理员权限。 选择要在 WSL 中使用的设备总线 ID,然后运行以下命令。 运行命令后,请再次使用命令 usbipd list 验证设备是否已共享。

    由图可知,USRP B210设备的BUSID为2-1,故运行:

    usbipd bind --busid 2-1

    对于某台设备,似乎是执行过一次该命令后便持久有效,重新插入设备或重启主机之后依然为Shared状态

  2. 若要附加 USB 设备,请运行以下命令。 (此处无需管理员权限)请注意,只要 USB 设备连接到 WSL,Windows 将无法使用它。 附加到 WSL 后,任何作为 WSL 2 运行的分发版本都可以使用 USB 设备。 使用 usbipd list 验证设备是否已附加。

    usbipd attach --wsl --busid 2-1

    执行完后设备的状态转变为Attached

  3. WSL2下,运行以下命令列出附加的USB设备:

    lsusb

  4. 在 WSL 中完成设备使用后,可物理断开 USB 设备,或者从 PowerShell 运行此命令:

    usbipd detach --busid 2-1

参考资源

连接 USB 设备 | Microsoft Learn

WSL2连接USB存储设备(保姆级教程,真正做到你奶奶来了也能成功)_wsl2 usb-CSDN博客

WSL support · dorssel/usbipd-win Wiki (github.com)

WSL2连接USB设备(以USRP B210为例)的更多相关文章

  1. 使用WSL2连接USB设备

    目录 要求 安装 第一步 在Window安装usbipd 第二步 在WSL里安装USBIP 工具和硬件数据库 使用方法 22.3.19 微软官方文档:连接 USB 设备 | Microsoft Doc ...

  2. Ubuntu物理机中解决VirtualBox虚拟机无法连接USB设备的问题

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=611 问题描述: 在安装完VirtualBox的USB控制器扩展(关于在VirtualBox中安装USB控制器扩展的 ...

  3. 虚拟机中不能连接usb设备解决办法

    虚拟机中不能连接usb设备解决办法 1.点击开始->运行,在对话框中输入"services.msc",确定,打开windows服务管理器.2.在服务列表中选中"VM ...

  4. C# 实现自定义的USB设备与上位机进行通信(上位机部分)

    因为以前没用过USB,对USB也不了解,于是上网查了很多资料,不过网上的资料都是零零散散,不清不楚的,于是我自己总结了一下,下面几个链接是网上这么多零散资料里,我觉得比较有参考意义的. USB设备连接 ...

  5. 宿主机与虚拟机系统的USB设备切换

    有时候我们需要在虚拟机的操作系统中进行一些USB设备的测试,但默认情况下USB设备是在宿主机系统里面的,那这个时候我们就要进行切换才能够达到目的,具体要怎么操作呢?下面讲解一下:   1. Ctrl+ ...

  6. 如何查看USB方式连接Android设备的外接设备信息

    1,USB存储设备(如:U盘,移动硬盘): //USB存储设备 插拔监听与 SD卡插拔监听一致. private USBBroadCastReceiver mBroadcastReceiver; In ...

  7. usb-host一步一步学(二)安卓在usb-host模式下列出当前连接的usb设备

    之前写了一个简单的例子usb-host一步一步学(一)安卓在usb-host模式下列出当前连接的usb设备,下面的这个例子是获取各种usb设备.usb接口以及usb连接点(endpoint) 正如上一 ...

  8. vmware 桌面虚拟化 horizon view 介绍(使用微软的RDP协议或vmware 专有的PCoIP协议,连接到虚拟桌面,并且可以使用本地的USB设备、本地存储)

    虚拟化(一):虚拟化及vmware产品介绍 虚拟化(二):虚拟化及vmware workstation产品使用 虚拟化(三):vsphere套件的安装注意及使用 虚拟化(四):vsphere高可用功能 ...

  9. usb-host一步一步学(一)安卓在usb-host模式下列出当前连接的usb设备

    在本次尝试中,我的安卓手机(HTC One X) 通过OTG线作为usb主机模式列出当前插入的usb设备,版本要求minSDKVersion="12". 没有外设的情况下,结果如下 ...

  10. windodws pyusb hub端口对应连接的usb设备

    源码: 1 #!/usr/bin/python 2 import sys 3 import usb.core 4 # find USB devices 5 dev = usb.core.find(fi ...

随机推荐

  1. ctfshow_web_1(困难题)

    CTFshow web1(困难题) 根据前面做题经验,看见登录框基本都是跑一下爆破,弱口令等等 这里用 dirmap 目录爆破爆出来有一个 www.zip 把他下载下来 看了 login.php 和 ...

  2. 在 WPF 中集成 ASP.NET Core 和 WebView2 用于集成 SPA 应用

    背景 我们有些工具在 Web 版中已经有了很好的实践,而在 WPF 中重新开发也是一种费时费力的操作,那么直接集成则是最省事省力的方法了. 修改项目文件 我们首先修改项目文件,让 WPF 项目可以包含 ...

  3. C#语言:散修笔记

    文章目录 前言 数组的几种定义方法 out 和 ref 的区别 可变参数params 静态方法与非静态方法 >❀什么时候使用静态和非静态 构造函数 >❀类中方法的重载 >❀在类中输出 ...

  4. C语言:如何删除超链接

    单独写出一个函数出来,基本思想就是用fscanf一个一个字符读取出来,(文本流只能用fscanf,不能用fgetc等用于二进制流的函数,不然会导致乱码)遇到<的时候就停止读取,先把之前存进cop ...

  5. C语言:如何打印星星

    //打印星星                  //k是两个上下部分都一样的空格      /*i        j               k                    k      ...

  6. 经验分享:春招零Offer,5月份还有机会吗?

    先说答案:5 月份依然有拿到 Offer 的机会. 5月份春招结束了吗? 对于应届大学生来说(也就是今年暑假毕业的学生),5 月中旬春招就陆续结束了,但是 5 月份会有很多补录的机会. 对于非应届的大 ...

  7. C# dynamic动态对象赋值

    dynamic 如果接收的是匿名对象,是无法为属性赋值的,而如果是接收的定义对象,又无法扩展字段. 解决办法序列化为json字符串,然后用Dictionary反序列化,就能赋值了.也能扩展新的字段. ...

  8. NOIP模拟59

    T1 柱状图 解题思路 二分答案+线段树check 显然对于最后的限制,我们希望向上移的和向下移的柱子数尽量接近. 因此枚举每一个柱子当做最高的一个的时刻,二分找到一个当前最优解更新答案. 开两棵线段 ...

  9. 第一次线上 OOM 事故,竟和 where 1 = 1 有关

    这篇文章,聊聊一个大家经常使用的编程模式 :Mybatis +「where 1 = 1 」. 笔者人生第一次重大的线上事故 ,就是和使用了类似的编程模式 相关,所以印象极其深刻. 这几天在调试一段业务 ...

  10. 算法金 | 10 大必知的自动化机器学习库(Python)

    大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 一.入门级自动化机器学习库 1.1 Auto-Sklearn 简介: Auto-Skl ...