当前位置: 首页 > news >正文

连接 USB 设备

转载自:https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb

 

本指南将演练使用 USB/IP 开源项目 usbipd-win 将 USB 设备连接到 WSL 2 上运行的 Linux 分发版所需的步骤。

在 Windows 计算机上配置 USB/IP 项目可以实现常见的开发者 USB 场景,例如刷写 Arduino 或访问智能卡读卡器。

先决条件

  • 运行 Windows 11(内部版本 22000 或更高版本)。 (Windows 10 支持是可能的,请参阅以下说明)。
  • 需要具有 x64 或 ARM64 处理器的计算机。 (x86 目前不支持 usbipd-win)。
  • WSL 已安装并设置为最新版本。
  • 已安装并 设置为 WSL 2 的 Linux 分发版。

 备注

若要检查 Windows 版本和内部版本号,请选择 Windows 徽标键 + R,键入 winver,选择“ 确定”。 您可以通过选择 开始>设置>Windows 更新>检查更新来更新到最新的 Windows 版本。 若要检查 Linux 内核版本,请打开 Linux 分发版并输入以下命令: uname -a 若要手动更新到最新内核,请打开 PowerShell 并输入命令: wsl --update

 重要

WSL 现在通过 Microsoft 应用商店支持 Windows 10 和 Windows 11,这意味着 Windows 10 用户现在可以访问最新的内核版本,而无需从源进行编译。 请参阅 适用于 Windows 10 和 11 的 WSL,现已在微软应用商店中普遍可用 ,了解如何更新到受微软应用商店支持的 WSL 版本。 如果无法更新到支持应用商店的 WSL 版本并自动接收内核更新,请参阅 USBIPD-WIN 项目存储库 ,了解如何通过生成启用了自己的 USBIP 的 WSL 2 内核将 USB 设备连接到 WSL 2 上运行的 Linux 分发版。

安装 USBIPD-WIN 项目

WSL不提供本机连接USB设备的支持,因此需要安装开源项目usbipd-win。

内核要求

若要将 USBIPD 与适用于 Linux 的 Windows 子系统配合使用(WSL),需要具有 5.10.60.1 或更高版本的 Linux 内核版本。 如果已安装的内核版本早于 5.10.60.1,则可以通过先关闭 WSL wsl --shutdown的任何正在运行的实例来更新它,然后运行以下命令: wsl --update

在 WSL 上安装 USBIPD

  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 的防火墙规则,用于允许所有本地子网连接到服务。 可修改此防火墙规则以微调访问控制。

连接 USB 设备

在附加 USB 设备之前,请确保 WSL 命令行处于打开状态。 这会使 WSL 2 轻型 VM 保持运行。

 备注

此文档假定已安装 usbipd-win 5.0.0 或更高版本

  1. 通过以 管理员 模式打开 PowerShell 并输入以下命令列出连接到 Windows 的所有 USB 设备。 列出设备后,选择并复制要附加到 WSL 的设备总线 ID。

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

    usbipd bind --busid 4-4
  3. 若要附加 USB 设备,请运行以下命令。 (不再需要使用提升的管理员提示。确保 WSL 命令提示符处于打开状态,以使 WSL 2 轻型 VM 保持活动状态。 请注意,只要 USB 设备连接到 WSL,Windows 将无法使用它。 一旦连接到 WSL,任何在 WSL 2 上运行的发行版都可以使用该 USB 设备。 请确认设备是否已连接 usbipd list。 在 WSL 提示符下,运行 lsusb 以验证 USB 设备是否已列出,并且可以使用 Linux 工具与之交互。

    PowerShell
    usbipd attach --wsl --busid <busid>
  4. 打开 Ubuntu(或首选 WSL 命令行),并使用以下命令列出附加的 USB 设备:

    Bash
    lsusb

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

  5. 在 WSL 中使用设备后,可以物理断开 USB 设备的连接,或者从 PowerShell 运行以下命令:

    PowerShell
    usbipd detach --busid <busid>

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

有关视频演示,请参阅 WSL 2:连接 USB 设备(选项卡与空格显示)。

http://www.hskmm.com/?act=detail&tid=30403

相关文章:

  • SpringBoot-day1(快速上手SpringBoot,SpringBoot简介,SpringBoot基础配置,属性配置,yaml文件) - a
  • Chroma私有化:本地部署完整方案
  • 嵌入式-C++面经2
  • PHP转Go系列 | 如何将 PHP 项目快速迁移到 Go 上?
  • 详细介绍:【OpenHarmony】用户文件服务模块架构
  • 详细介绍:全新 CloudPilot AI:嵌入 Kubernetes 的 SRE Agent,降本与韧性双提升!
  • “环境变量”是什么, 为什么要配置环境变量 --初学者
  • AI元人文:对大模型的召唤——未来哪吒
  • https与http区别思维拓扑图 - krt
  • Java 装饰器模式(Decorator) - krt
  • Python INI 文件读写利器 configparser
  • tcp/ip五层协议模型--思维拓扑图 - krt
  • springboot模式与应用案例--思维拓扑图 - krt
  • DAY04
  • AlexNet vs LeNet 对比实验
  • QT:获取文件信息之创建日期方法created()方法--废弃
  • 排列组合 容斥 总结
  • 10.13每日总结
  • 新学期每日总结(第7天)
  • 20232422 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • Day 9
  • 14 10.13
  • 日志|前端框架Vue
  • oop.shiyan1
  • 玄机——第一章 应急响应-Linux日志分析 wp
  • 第四周第五天4.5
  • 深入解析:flutter AudioPlayer的使用问题及处理
  • 11 10.10
  • 12 10.11
  • P3330 [ZJOI2011] 看电影