连接 USB 设备
- 项目
- 2024/02/04
本文内容
本指南将演练使用 USB/IP 开源项目 usbipd-win 将 USB 设备连接到在 WSL 2 上运行的 Linux 发行版所必要的步骤。
在 Windows 计算机上设置 USB/IP 项目将启用常见的开发人员 USB 场景,例如刷写 Arduino 或访问智能卡读取器。
先决条件
-
运行 Windows 11(内部版本 22000 或更高版本)。 (可提供 Windows 10 支持,请参见下面的注释)
-
需要具有 x64 处理器的计算机。 (x86 和 Arm64 目前不支持 usbipd win)。
-
WSL 已安装并使用最新版本进行设置。
-
Linux 发行版已安装并设置为 WSL 2。
安装 USBIPD-WIN 项目
WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目。
- 转到 usbipd-win 项目的最新发布页。
- 选择 .msi 文件,该文件将下载安装程序。 (你可能会收到一条警告,要求你确认你信任此下载)。
- 运行下载的 usbipd-win_x.msi 安装程序文件。
- 重启
附加 USB 设备
在附加 USB 设备之前,请确保 WSL 命令行已打开。 这将使 WSL 2 轻型 VM 保持活动状态。
-
通过以管理员模式打开 PowerShell 并输入以下命令,列出所有连接到 Windows 的 USB 设备。 列出设备后,选择并复制要附加到 WSL 的设备总线 ID。
usbipd list
-
在附加 USB 设备之前,必须使用命令
usbipd bind
来共享设备,从而允许它附加到 WSL。 这需要管理员权限。 选择要在 WSL 中使用的设备总线 ID,然后运行以下命令。 运行命令后,请再次使用命令usbipd list
验证设备是否已共享。usbipd bind --busid 4-4
-
若要附加 USB 设备,请运行以下命令。 (不再需要使用提升的管理员提示。)确保 WSL 命令提示符处于打开状态,以使 WSL 2 轻型 VM 保持活动状态。 请注意,只要 USB 设备连接到 WSL,Windows 将无法使用它。 附加到 WSL 后,任何作为 WSL 2 运行的分发版本都可以使用 USB 设备。 使用
usbipd list
验证设备是否已附加。 在 WSL 提示符下,运行lsusb
以验证 USB 设备是否已列出,并且可以使用 Linux 工具与之交互。usbipd attach --wsl --busid <busid>
-
打开 Ubuntu(或首选的 WSL 命令行),使用以下命令列出附加的 USB 设备:
lsusb
-
在 WSL 中完成设备使用后,可物理断开 USB 设备,或者从 PowerShell 运行此命令:
usbipd detach --busid <busid>