码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • WSL2连接USB设备(以USRP B210为例)


    使用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)

  • 相关阅读:
    redis6.2(三)Redis事务操作、Redis持久化(RDB、AOF)
    uni-app 5小时快速入门 3 创建uni-app工程(下)
    vue 添加NProgress进度条插件
    Python自动化测试之request库(五)
    【STM32 CubeMX】移植u8g2(一次成功)
    Redis--list列表
    低代码合作开发的3个竞争优势是什么?
    SpringBoot的核心原理(扒笔记记录)
    力扣hot100——第4天:19删除链表的倒数第N个节点、20有效的括号、21合并两个有序链表
    简单有效的记录日常收支
  • 原文地址:https://www.cnblogs.com/n0ne/p/18297345
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号