首页 > 其他分享 >【转载】WSL 如何连接USB设备

【转载】WSL 如何连接USB设备

时间:2024-04-27 16:45:15浏览次数:20  
标签:usbipd USB Windows win WSL 转载 设备

【转载】WSL 如何连接USB设备

目录

转载声明

文本转载自 Microsoft Learn / Windows / 开发环境 / WSL / 如何连接USB设备 ,仅作分享而非商业用途,如有侵权,请联系本人删除

前言

本指南将演练使用 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

备注

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

重要

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

安装 USBIPD-WIN 项目

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

  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 4.0.0 或更高版本

  1. 通过以管理员模式打开 PowerShell 并输入以下命令,列出所有连接到 Windows 的 USB 设备。 列出设备后,选择并复制要附加到 WSL 的设备总线 ID。
usbipd list
  1. 在附加 USB 设备之前,必须使用命令 usbipd bind 来共享设备,从而允许它附加到 WSL。 这需要管理员权限。 选择要在 WSL 中使用的设备总线 ID,然后运行以下命令。 运行命令后,请再次使用命令 usbipd list 验证设备是否已共享。
usbipd bind --busid 4-4
  1. 若要附加 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

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

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

usbipd detach --busid <busid>

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

有关视频演示,请参阅 WSL 2:连接 USB 设备(制表符与空格显示)

标签:usbipd,USB,Windows,win,WSL,转载,设备
From: https://www.cnblogs.com/xsuns/p/18162212

相关文章

  • pyclipper的多边形操作(转载)
    等距离缩放多边形:参考博客:https://blog.csdn.net/jizhidexiaoming/article/details/134435885 文本检测DBnet中对标签的预处理里面需要用到这个操作:将文本标注框等距离缩放用于生成标签二值图像和阈值图像,如下所示: 备注:上图出自Dbnet论文原来python有个库pyclipper自带这......
  • Ubuntu20文件系统磁盘空间不足low disk space on filesystem root——转载
      Ubuntu20文件系统磁盘空间不足lowdiskspaceonfilesystemroot天然玩家于2022-07-2307:45:00发布阅读量1w 收藏 132点赞数41分类专栏: #Ubuntu 文章标签: filesystem gparted ubuntu版权Ubuntu专栏收录该内容19篇文章1......
  • ubuntu 20安装Visual Studio Code后出现——root权限登录——转载
    VisualStudioCode报错:YouaretryingtostartVisualStudioCodeasasuperuserwhichisn‘t......快乐小炮灰已于2023-11-2519:46:51修改阅读量2.1k收藏10点赞数4分类专栏:linuxC++开发工具IDE文章标签:vscodeide编辑器版权linuxC++开发工具同时被2个......
  • 转载:linux:iowait的含义
    原文:https://blog.pregos.info/wp-content/uploads/2010/09/iowait.txt原文:https://www.kawabangga.com/posts/5903 原文:Whatexactlyis"iowait"?Tosummarizeitinonesentence,'iowait'isthepercentageoftimetheCPUisidleANDtherei......
  • 在Win10(Win11)或Win Server的WSL上自定义安装Ubuntu(无微软商店)
     在Win10(Win11)WinServer里的WSL上自定义安装Ubuntu(无微软商店) 什么是WSLWSL是Windows系统里的Linux子系统,WindowsSubsystemforLinux(WSL)。我们可以在WindowsServer2016(或Win10/Win11等)上安装UbuntuWindowsSubsystemforLinux(WSL),可以在不退出Windows系......
  • 使用VS Code和WSL开发C/C++的简单配置
    使用VSCode和WSL开发C/C++的简单配置目录使用VSCode和WSL开发C/C++的简单配置使用情形VSCodeDebug简要介绍由于微软文档写的非常详细,感觉没什么写的必要了,后续只贴参数和链接了task配置launch配置C/C++配置参考来源使用情形TheWindowsSubsystemforLinux适用于Linux的W......
  • 跨域之OPTION请求【转载】
    一、简介    出于安全考虑,并不是所有域名访问后端服务都可以。其实在正式跨域之前,浏览器会根据需要发起一次预检(也就是option请求),用来让服务端返回允许的方法(如get、post),被跨域访问的Origin(来源或者域),还有是否需要Credentials(认证信息)等。那么浏览器在什么情况下能预检呢?......
  • 解决安装 ollama 在 wsl2 中报 WARNING: No NVIDIA/AMD GPU detected. Ollama will ru
    首先要确保wsl2版的cuda环境已经安装[非必须]如果已安装了环境但是nvidia-smi找不到,可能是未加入环境变量,请将它的路径/usr/lib/wsl/lib加入PATHollama在/usr/bin/找不到nvidia-smi位置,所以会有如上警告,所以需要创个链接指向:方法一:sudoln-s$(whichnvid......
  • 【转载】git push到远程指定分支(git拉取指定分支代码)
     一、pull操作1、将远程指定分支拉取到本地指定分支上:gitpullorigin<远程分支名>:<本地分支名> (注:命令里的尖括号<>只是包裹中文的标识,方便你看的,实际使用时不用写,不过冒号需要)2、将远程指定分支拉取到本地当前分支上:gitpullorigin<远程分支名> 3、将与......
  • 【转载】异步 LINQ
    原文:https://blog.csdn.net/zls365365/article/details/124395742LINQ这个东西,出来很早了,写过几年代码的兄弟们,或多或少都用过一些。早期的LINQ,主要是同步的,直到C#8.0加入IAsyncEnumerable,LINQ才真正转向异步。这本来是个非常好的改变,配合System.Linq.Async库提供的扩......