【免费下载】 WSL 2连接USB设备完全指南:使用usbipd-win实现设备共享

WSL 2连接USB设备完全指南:使用usbipd-win实现设备共享

【免费下载链接】WSL Source code behind the Windows Subsystem for Linux documentation. 【免费下载链接】WSL 项目地址: https://gitcode.com/gh_mirrors/wsl3/WSL

前言

对于使用Windows Subsystem for Linux 2(WSL 2)的开发者来说,直接访问USB设备一直是个痛点。WSL 2的虚拟化架构虽然带来了更好的Linux兼容性,但也隔离了对物理设备的直接访问。本文将详细介绍如何通过usbipd-win项目实现WSL 2对USB设备的完美支持。

技术背景

usbipd-win是一个开源项目,它基于USB/IP协议实现。该协议最初由日本开发者开发,允许通过网络共享USB设备。usbipd-win将其适配到Windows平台,使WSL 2能够通过本地网络接口访问Windows主机上的USB设备。

准备工作

在开始配置前,请确保满足以下条件:

  1. 操作系统要求

    • Windows 11(版本22000或更高)
    • 或Windows 10(需额外配置)
  2. 硬件要求

    • x64架构处理器(目前不支持x86和Arm64)
  3. WSL环境

    • 已安装最新版WSL
    • 已设置Linux发行版使用WSL 2模式
  4. 内核要求

    • Linux内核版本5.10.60.1或更高

小技巧:可通过wsl --update命令确保内核是最新版本。

安装usbipd-win

方法一:使用安装程序

  1. 下载最新版usbipd-win的.msi安装包
  2. 运行安装程序,这将自动完成以下配置:
    • 安装usbipd服务
    • 添加命令行工具到系统PATH
    • 配置防火墙规则允许本地连接

方法二:使用winget(推荐)

在PowerShell中执行:

winget install --exact dorssel.usbipd-win

安装完成后,可通过以下命令验证服务状态:

Get-Service usbipd

配置USB设备共享

第一步:列出可用设备

在管理员权限的PowerShell中执行:

usbipd list

这将显示所有已连接的USB设备及其总线ID(BUSID)。

示例输出:

BUSID  VID:PID    DEVICE
1-1    1234:5678  USB Flash Drive
2-3    2345:6789  Arduino Uno

第二步:绑定设备

选择要共享的设备总线ID,执行绑定命令:

usbipd bind --busid <busid>

例如:

usbipd bind --busid 2-3

注意:绑定后该设备将无法被Windows直接使用。

第三步:在WSL中附加设备

在普通PowerShell中执行:

usbipd attach --wsl --busid <busid>

在WSL终端中验证设备是否可见:

lsusb

如果看到目标设备,说明附加成功。

使用USB设备

根据设备类型,可能需要进行额外配置:

  1. 串口设备

    sudo chmod 666 /dev/ttyUSB0
    
  2. 存储设备

    sudo mkdir /mnt/usb
    sudo mount /dev/sdb1 /mnt/usb
    
  3. 开发板(如Arduino): 确保安装了相关工具链后即可正常使用。

断开设备连接

当不再需要使用时:

  1. 从WSL中分离:

    usbipd detach --busid <busid>
    
  2. 解除绑定(可选):

    usbipd unbind --busid <busid>
    

常见问题解决

  1. 设备未显示在lsusb中

    • 检查WSL是否为WSL 2模式
    • 确认内核版本符合要求
    • 重启usbipd服务
  2. 权限问题: 在WSL中创建udev规则或直接修改权限:

    sudo chmod 666 /dev/bus/usb/XXX/YYY
    
  3. Windows 10特殊配置: 可能需要手动编译支持USB/IP的内核模块。

高级用法

  1. 自动挂载脚本: 可编写脚本实现设备插入时自动挂载。

  2. 多设备管理: 使用usbipd list命令管理多个设备连接状态。

  3. 网络共享: usbipd-win理论上支持通过网络共享USB设备给其他机器。

安全注意事项

  1. 仅在内网环境中使用网络共享功能
  2. 及时更新usbipd-win以获取安全修复
  3. 不使用时建议解除设备绑定

结语

通过usbipd-win项目,WSL 2用户现在可以无缝使用各类USB设备,从简单的存储设备到复杂的开发板都能完美支持。这种解决方案既保留了WSL 2的轻量级优势,又扩展了其硬件兼容性,为开发者提供了更完整的工作环境。

提示:对于频繁使用的设备,可以考虑编写自动化脚本简化连接流程。

【免费下载链接】WSL Source code behind the Windows Subsystem for Linux documentation. 【免费下载链接】WSL 项目地址: https://gitcode.com/gh_mirrors/wsl3/WSL

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值