首页 > 其他分享 >WSL2连接 USB 设备

WSL2连接 USB 设备

时间:2023-02-27 18:11:33浏览次数:46  
标签:usbipd USB Windows WSL wsl WSL2 连接 设备

先决条件

  • 运行 Windows 11(内部版本 22000 或更高版本)。 (可提供 Windows 10 支持,请参见下面的注释)

  • Linux 发行版已安装并设置为 WSL 2

  • 运行 Linux 内核 5.10.60.1 或更高版本

    备注

    若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定” 。 可通过选择“开始”>“设置”>“Windows 更新”>“检查更新”来更新到最新的 Windows 版本。

    若要检查 Linux 内核版本,请打开 Linux 发行版并输入命令:uname -a。 若要手动更新到最新内核,请打开 PowerShell 并输入命令:“wsl --update”。

    重要

    建议使用 Windows 11 将 USB 设备连接到在 WSL 2 上运行的 Linux 发行版。 但是,按照 USBIPD-WIN 项目报告中的说明,通过构建你自己的支持 USBIP 的 WSL 2 内核,可使用 Windows 10 连接 USB 设备。

安装 USBIPD-WIN 项目

WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目。

  1. 转到 usbipd-win 项目的最新发布页

  2. 选择 .msi 文件,该文件将下载安装程序。 (你可能会收到一条警告,要求你确认你信任此下载)。

  3. 运行下载的 usbipd-win_x.msi 安装程序文件。

    备注

    或者,也可使用 Windows 程序包管理器程序 (winget) 来安装 usbipd-win 项目。 如果已安装 winget,只需使用命令 winget install --interactive --exact dorssel.usbipd-win 安装 usbipd-win 即可。 如果你省略了 --interactive,winget 可能会立即重启计算机(如果这是安装驱动程序所必需的操作)。

    这将安装:

    • 名为 usbipd 的服务(显示名称:USBIP 设备主机)。 可使用 Windows 中的“服务”应用检查此服务的状态。

    • 命令行工具 usbipd。 此工具的位置将添加到 PATH 环境变量。

    • 名为 usbipd 的防火墙规则,用于允许所有本地子网连接到服务。 可修改此防火墙规则以微调访问控制。

在 Linux 中安装 USBIP 工具和硬件数据库

USB/IP 项目完成安装后,需要安装用户空间工具和 USB 硬件标识符数据库。 这些说明适用于 Ubuntu, 其他分发可能需要不同的 usbip 客户端包

在 Ubuntu 上运行以下命令:点击此指令最新参考链接

 sudo apt install linux-tools-virtual hwdata
 sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/ * /usbip 20

此时,一个服务正在 Windows 上运行以共享 USB 设备,并且在 WSL 中安装了必要的工具来连接到共享设备。

附加 USB 设备

如果安装了多个版本的wsl,则可先查看wsl的默认分支:wsl -l -v

切换默认WSL使用wsl --set-default <Distribution Name>

在附加 USB 设备之前,请确保 WSL 命令行已打开。 这将使 WSL 2 轻型 VM 保持活动状态。

  1. 通过以管理员模式打开 PowerShell 并输入以下命令,列出所有连接到 Windows 的 USB 设备:

     usbipd wsl list
  2. 选择要附加到 WSL 的设备总线 ID,然后运行此命令。 WSL 会提示你输入密码以运行 sudo 命令。 要附加的 Linux 发行版必须是默认分发版。 (参阅 comands FOR WSL Doc Basic ,以更改默认分发) 。

    • 首次连接要使用 powershell 的管理员模式:

       usbipd wsl attach --busid <busid>
    • 使用wsl的bash指令:

       usbip list -r $HOSTNAME.local     #查看已连接过的设备信息,如记得busid,该命令非必须执行命令
       sudo usbip attach -r $HOSTNAME.local -b <busid>  #连接USB设备,注意替换<busid>
  3. 打开 Ubuntu(或首选的 WSL 命令行),使用以下命令列出附加的 USB 设备:

     lsusb

    你应会看到刚刚附加的设备,并且能够使用常规 Linux 工具与之交互。 根据你的应用程序,你可能需要配置 udev 规则以允许非根用户访问设备。

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

     usbipd wsl detach --busid <busid>

若要详细了解此操作的工作原理,请参阅 Windows 命令行博客GitHub 上的 usbipd-win 存储库

有关视频演示,请参阅 WSL 2:连接 USB 设备(制表符与空格显示)

标签:usbipd,USB,Windows,WSL,wsl,WSL2,连接,设备
From: https://www.cnblogs.com/huanliu/p/17161382.html

相关文章

  • wsl2 通过桥接网络实现被外部局域网主机直接访问
    wsl2通过桥接网络实现被外部局域网主机直接访问背景介绍之所以有这个需求的主要原因是需要用WSL和外部机器人硬件调试分布部署的ROS系统,WSL2是在windows主机内部建立的......
  • 性能压测过程中常见连接错误分析
    1、在压测过程中报错:连接超时(ConnectTimeout)产生原因:1)、可能是压测工具本身有连接超时设置引起a)、如在Jmeterhttp请求页面,advanced页签,有timeout设置,可以对发送请求......
  • HHDESK局域网连接功能
    近年来,许多单位和部门根据实际需要都组建了局域网,这为日常事务处理带来了极大的便利。然而也有许多的局域网相互独立,未实现真正意义上的信息共享。因此,网络互联在这种环境......
  • 配置ssh连接git
    在学习GitHub上的开源代码时,为了方便经常需要通过git从github克隆代码,如果是首次从github克隆代码时经常会碰到下面的提示:Warning:Permanentlyadded'github.com,20.20......
  • AMD Xilinx Linux 2022.1 USB Gadget使用
    问题有客户使用Linux中的USBGadget功能,把MPSoC器件做USB从设备。在执行“mkdirfunctions/.”时,得到错误“Deviceorresourcebusy”。mkdir:can'tcreatedirectory......
  • echart折线图异常多出一条连接线
     开发背景:vue3父传子,父中调子组件echarts图表问题:第一次进入数据图表正常,再次进入不更新图表数据的情况下,图表异常多出来一条开始到结尾的连接线原因:上次数据没清空解......
  • WSL2 网络不可用 ping:: Temporary failure in name resolution
    突然有一天,WSL虚拟机的网络不可用了。Ping报错ping:www.baidu.com:Temporaryfailureinnameresolution参考了这篇博客link.后我这里的解决方法如下:1打开/etc......
  • LDAP Admin连接AD域与OpenLdap
    LDAPAdmin版本:1.8.3域为kittlen.com账号为:administrator21.128为AD域所在地址21.127为OpenLdap所在地址Username填写方式不同如果连接进去无法进行用户的添加操作,可以选......
  • 列式数据库clickhouse的JDBC连接Demo
    列式数据库clickhouse的JDBC连接Demo1、JDBC代码:packagecom.fs.idc.qh.util;importru.yandex.clickhouse.ClickHouseConnection;importru.yandex.clickhouse.Clic......
  • php怎么连接sqlsrv
    连接MicrosoftSQLServer数据库时,可以使用PHP中的sqlsrv扩展程序来连接数据库。以下是连接MicrosoftSQLServer数据库的一些示例代码:首先,确保已经安装并启用sq......