usbip-server,Windows使用WSL实现usb设备的远程接入ubuntu

一.写在前面

        本篇内容参考微软写的WSL教程,整理了在实现项目的过程中遇到的问题和解决方案,希望可以帮到大家,原文链接连接 USB 设备 | Microsoft Learn

二.目标

        使用开源项目usbip-win,将在windows上接入的usb设备连接到在WSL上运行的linux发行版

三.先决条件

  • 运行 Windows 11(内部版本 22000 或更高版本)。 (可提供 Windows 10 支持,请参见下面的注释)
  • 需要具有 x64 处理器的计算机。 (x86 和 Arm64 目前不支持 usbipd win)。
  • WSL 已安装并使用最新版本进行设置
  • Linux 发行版已安装并设置为 WSL 2

四.安装WSL

       以管理员权限的方式打开PowerShell,直接使用下面的指令进行安装,系统会自动安装WSL所需要的一切

wsl --install

可能会遇到以下问题

1.该网址拒绝访问

解决方法:

1.win+i打开电脑设置

2.打开所连接的WLAN,编辑DNS服务器分配选项,更改至下图这样

3.重新运行一遍代码就会发现可以下载了

问题二:下载时进度卡在0或者一直卡在某个进度长时间不动

解决方法:

1.以管理员身份打开 PowerShell(PowerShell >“开始”菜单>右键单击“>以管理员身份运行”),然后输入以下命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

输入完之后重启电脑 

2.以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

输入完之后重启电脑 

五.设置Ubuntu用户名,密码

使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。

  • 用户名密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。

  • 请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。

  • 创建用户名密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。

  • 此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理命令。

  • 在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。

 六.安装 USBIPD-WIN 项目

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

内核要求

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

在 WSL 上安装 USBIPD

  1. 转到 usbipd-win 项目的最新发布页
  2. 选择 .msi 文件,该文件将下载安装程序。 (你可能会收到一条警告,要求你确认你信任此下载)。
  3. 运行下载的 usbipd-win_x.msi 安装程序文件。

七.插入USB设备并绑定

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

usbipd list

问题:找不到可运行的目录,导致命令输入系统无法识别

解决方法:PowerShell输入

cd C:\Program Files\usbipd-win

 在运行一遍指令即可

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

usbipd bind --busid 4-4

4-4为设备号,每个人可能不同,请根据自己需要共享的设备更改,设备共享后,本机将无法使用该usb设备

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

usbipd attach --wsl --busid <busid>

4.打开 Ubuntu(或首选的 WSL 命令行),使用以下命令列出附加的 USB 设备:

lsusb

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

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

usbipd detach --busid <busid>

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值