usbipd-win
用于将本地连接的 USB 设备共享给其他机器(包括 Hyper-V 客户机和 WSL 2)的 Windows 软件。
如何安装
本软件需要 Microsoft Windows 10(仅限 x64)/ Microsoft Windows Server 2019,1809 版本或更新版本;不依赖任何其他软件。
在连接 USB 设备的 Windows 机器上运行最新版本的安装程序(.msi)。
或者,使用 Windows 包管理器:
winget install usbipd
这将安装:
- 名为
usbipd
的服务(显示名称:USBIP Device Host)。 您可以使用 Windows 的服务应用程序检查此服务的状态。 - 命令行工具
usbipd
。 该工具的位置将被添加到PATH
环境变量中。 - 名为
usbipd
的防火墙规则,允许所有本地子网连接到该服务。 您可以修改此防火墙规则以微调访问控制。
[!注意] 如果您使用第三方防火墙,可能需要重新配置它以允许 TCP 端口 3240 的入站连接。
如何使用
共享设备
默认情况下,设备不会与 USBIP 客户端共享。 要查找和共享设备,请以管理员权限运行以下命令:
usbipd --help
usbipd list
usbipd bind --busid=<BUSID>
设备共享是持久的;它可以在重启后保持。
[!提示] 有关已测试设备的列表,请查看 wiki。
连接设备
将设备连接到客户端是非持久的。重启后,或当设备重置或物理拔插时,您需要重新连接。
非 WSL 2
从运行 Linux 的另一台(可能是虚拟的)机器上,使用 usbip
客户端工具:
usbip list --remote=<HOST>
sudo usbip attach --remote=<HOST> --busid=<BUSID>
[!注意] 其他操作系统(如 Microsoft Windows)也存在客户端工具,但不属于本项目的一部分。
WSL 2
[!提示] 如果您之前使用过 WSL 2 的
usbipd
,从 4.0.0 版本开始有以下变化:
- 您必须先使用
usbipd bind
共享设备。- 您不再需要安装任何客户端工具。
- 您不再需要指定特定的发行版。
- 连接命令的语法略有变化。
您可以在 Windows 中使用以下命令连接设备,无需管理员权限:
usbipd attach --wsl --busid=<BUSID>
[!提示] 有关如何为默认 WSL 2 内核不支持的 USB 设备添加驱动程序,请参阅 wiki。
图形界面
对于喜欢使用 GUI 而非 CLI 的用户,以下选项可用:
- Andrew Leech 创建了一个 Windows 桌面应用程序。
- Dushan Balisson 创建了一个 Visual Studio Code 扩展。
如何卸载
通过"添加/删除程序"或"设置/应用"卸载。
或者,使用 Windows 包管理器:
winget uninstall usbipd