WSL2Linux 子系统(六)

news2024/12/21 23:38:58

WSL 连接USB

WSL (Windows Subsystem for Linux) 是一种在 Windows 操作系统上运行 Linux 应用程序的兼容层。它的主要作用是提供了一个类似于虚拟机的环境,使得在 Windows 上开发和运行基于 Linux 的应用变得更加方便。然而,WSL 目前还不支持直接通过 USB 接口连接设备。这意味着你不能在 WSL 中直接访问 USB 设备,例如 USB 存储设备、USB 打印机等。但是,你仍然可以通过其他方式在 WSL 中管理和使用 USB 设备。

一种常见的方法是在 WSL 中使用网络共享来访问在 Windows 主机上连接的 USB 设备。你可以通过将 USB 设备连接到 Windows 主机上,并在 WSL 中安装和配置 Samba 或 NFS 服务器来实现网络共享。然后,在 WSL 中,你可以使用网络共享来访问主机上连接的 USB 设备。另外,还有一些第三方工具可以帮助在 WSL 中连接 USB 设备,如 usbip、usb-redirector 等。这些工具可以实现 USB 设备的远程共享和传输,让你可以在 WSL 中使用 USB 设备。需要注意的是,具体的操作方法可能会因为不同的环境和设备而有所差异。因此,在尝试连接 USB 设备到 WSL 之前,请务必参考相关文档或搜索相关指南,以便找到适用于你的具体情况的最佳解决方案。

上一篇文章中讲解 《WLS2Linux 子系统编译 Android》,本篇则讲解WSL安装USB适配和挂载外部硬盘。

作者:炭烤毛蛋 ,点击博主了解更多。


文章目录

  • WSL 连接USB
  • 1. WSL 连接USB
  • 1.1 安装 usbipd-win
  • 1.2 安装 USBIPD工具
  • 1.3 连接 USB 设备
  • 1.4 wsl 映射 usb 连接
  • 2. WSL 挂载外部硬盘
  • 2.1 Powershell 挂载硬盘
  • 2.2 WSL 挂载硬盘
  • 结语


1. WSL 连接USB

受Windows系统版本限制,尤其是大版本迭代。USB共享时所用软件会略有不同,以下是基础注意事项。

  • Win11 (版本不低于22000),Win10请参考 usbipd官方教程。
  • USBIPD 仅支持x64/x86架构,暂不支持Arm64架构
  • Win系统正确安装WSL2环境

1.1 安装 usbipd-win

根据Microsfot官方教程可以提前官网下载需要安装usbipd-win releases软件,优选*.msi文件;下载完成然后执行安装,记得选择信任该驱动,等待安装完成即可。也可以借助系统powershell环境自动匹配软件,自动安装。

PS C:\WINDOWS\system32> winget install --interactive --exact dorssel.usbipd-win
“msstore”源要求在使用前查看以下协议。
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
源要求将当前计算机的 2 个字母的地理区域发送到后端服务才能正常工作,(例如"US")。

是否同意所有源协议条款?
[Y][N] 否: y

可以看到usbipd-win 安装指引,按照指引安装即可。
usbipd-win
注意: 安装完成需要重启powershell才生效。

1.2 安装 USBIPD工具

Windows环境安装usbip工具后,Linux环境还需要安装usbip工具。
启动WSL下面的Ubuntu系统,其它系统请参考官方教程。

sudo apt install linux-tools-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20

1.3 连接 USB 设备

  • 扫描usb 外设
    管理员身份运行一个PowerShell命令,然后执行扫描。
PS C:\WINDOWS\system32> usbipd wsl list
BUSID  VID:PID    DEVICE                                                        STATE
2-2    1c4f:0048  USB 输入设备                                                  Not attached
4-3    0403:6001  USB Serial Converter                                          Not attached
4-4    0403:6001  USB Serial Converter                                          Not attache
  • 连接 usb外设
usbipd wsl attach --busid <busid>

4-4 0403:6001 USB Serial Converter Not attache 为例,需要连接该设备则用如下命令

PS C:\WINDOWS\system32> usbipd wsl attach --busid 4-4
PS C:\WINDOWS\system32> usbipd wsl list
BUSID  VID:PID    DEVICE                                                        STATE
2-2    1c4f:0048  USB 输入设备                                                  Not attached
4-3    0403:6001  USB Serial Converter                                          Not attached
4-4    0403:6001  USB Serial Converter                                          Attached - WSL

注意:在连接USB设备前,需要确认打开的有一个WSL命令行界面,我们需要WSL2的VM环境是激活状态。

  • 断开 usb 外设
    在WSL 中usb设备使用结束可以直接拔掉或者通过Windows弹出USB 设备。即从物理层面断开USB设备连接,也可以通过 PowerShell 管理员模式执行弹出外设命令:
usbipd wsl detach --busid <busid>
  • WSL
    WSL 查看 usb 设备
lsusb
Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC

1.4 wsl 映射 usb 连接

除了使用powershell 命令连接共享网络USB,从WSL主动发起共享网络USB。

  • 查看可共享USB设备
usbip list -r $HOSTNAME.local
Exportable USB devices
======================
 - King.local
        4-4: Future Technology Devices International, Ltd : FT232 Serial (UART) IC (0403:6001)
           : USB\VID_0403&PID_6001\A50285BI
           : (Defined at Interface level) (00/00/00)
           :  0 - Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
  • 共享USB 设备
sudo usbip attach -r $HOSTNAME.local -b <busid>  #连接USB设备,注意替换<busid>
  • 移除共享网络USB 设备
sudo usbip detach -r $HOSTNAME.local -b <busid>  #连接USB设备,注意替换<busid>

2. WSL 挂载外部硬盘

通过挂载外部硬盘到 WSL,你可以在 Windows 和 Linux 之间共享和传输数据。可以扩展你在 WSL 中的存储空间,避免存储空间不足的问题。WSL 提供了强大的命令行工具和 Linux 环境,可以用于各种数据处理任务。

2.1 Powershell 挂载硬盘

Powershell 比较简单挂载步骤如下:

  • 罗列可用磁盘
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
DeviceID Caption Partitions Size Model
-------- ------- ---------- ---- -----
\\.\PHYSICALDRIVE0 SAMSUNG MZVL2512HCJQ-00BL2 4 512103934800 SAMSUNG MZVL2512HZJQ-00BL2
\\.\PHYSICALDRIVE1 Mass Storage Device USB Device 1 15624142080 Mass Storage Device USB Device
  • 挂载磁盘
    wsl --mount ,DiskPath 选择以上路径
wsl --mount \\.\PHYSICALDRIVE1

2.2 WSL 挂载硬盘

当然使用wsl 直接挂载外部硬盘,挂载前需要先从Window侧卸载。
win + r, 输入 diskmgmt.msc,卸载需要挂载硬盘。

  • 查看挂载的硬盘
wmic diskdrive list brief
  • 挂载物理硬盘
 wsl --mount \\.\PHYSICALDRIVE1  --bare
  • 卸载物理硬盘
wsl --unmount  \\.\PHYSICALDRIVE1

结语

不枉博主详细讲解,欢迎订阅博主–炭烤毛蛋 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1139050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring6-提前编译:AOT

提前编译&#xff1a;AOT 1、AOT概述1.1、JIT与AOT的区别1.2、Graalvm1.3、Native Image 2、演示Native Image构建过程2.1、GraalVM安装&#xff08;1&#xff09;下载GraalVM&#xff08;2&#xff09;配置环境变量&#xff08;3&#xff09;安装native-image插件 2.2、安装C的…

【Unity程序技巧】事件管理器

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

TIA博途_Profinet通信故障诊断及常见错误解决方法汇总

TIA博途_Profinet通信故障诊断及常见错误解决方法汇总 1. 在线诊断报硬件组件的用户数据错误,设备组态不支持 解决方法: (1)检查模块终端盖板; (2)检查组态模块与实际组装模块顺序型号是否一致。 2. 网络视图,设备视图界面显示黑色感叹号 解决方法: PLC转离线,下载硬…

疫情物资管理系统-基于SSM实现

包括-源码参考文档 下载地址: https://juzhendongli.store/commodity/details/5

Spark UI中Shuffle dataSize 和shuffle bytes written 指标区别

背景 本文基于Spark 3.1.1 目前在做一些知识回顾的时候&#xff0c;发现了一些很有意思的事情&#xff0c;就是Spark UI中ShuffleExchangeExec 的dataSize和shuffle bytes written指标是不一样的&#xff0c; 那么在AQE阶段的时候&#xff0c;是以哪个指标来作为每个Task分区大…

【计网 CDN】计算机网络 CDN(Content Delivery Network)分布式网络架构详解:中科大郑烇老师笔记 (八)

目录 0 引言1 为什么需要分布式的网络架构&#xff1f;2 视频流化服务2.1 多媒体&#xff1a;视频2.2 存储视频的流化&#xff08;Streaming&#xff09;服务2.3 流媒体传输协议&#xff1a;DASH2.4 面临挑战&#xff1a;服务器如何向上百万用户同时提供视频流化内容&#xff1…

buuctf_练[GYCTF2020]FlaskApp

[GYCTF2020]FlaskApp 文章目录 [GYCTF2020]FlaskApp常用绕过方法掌握知识解题思路解题一 -- 计算pin码解题二 -- 拼接绕过 执行命令 关键paylaod 常用绕过方法 ssti详解与例题以及绕过payload大全_ssti绕过空格_HoAd’s blog的博客-CSDN博客 CTF 对SSTI的一些总结 - FreeBuf网…

Java中会出现内存泄漏吗

这是一个老生常谈的面试题&#xff0c;本文就系统讲解一下吧 虽然Java有GC垃圾⾃动回收功能&#xff0c;但并不是说Java程序就不会内存泄漏。如果一个对象没有地⽅会使⽤到&#xff0c;但是却仍然有引用指向他&#xff0c;那么垃圾回收器就无法回收他&#xff0c;这种情况就属于…

重复性管理--抽象的重要性(下)

接着 上一篇的谈论, 继续谈论抽象在重复性管理中的重要作用. 好的抽象与糟糕的抽象? 通过前面的一些例子, 你可能形成了一个印象: 所谓抽象很多时候就是把一些代码封装到一个方法中. 不过事实上并不是这么简单的. 抽象的结果确实很多时候产生了一个方法, 但不是说我把一堆代…

05 网络和防火墙等其他

网络和其他 ifconfig : 主机ip地址查询

从过去到未来:回顾DDR技术的演进和未来趋势

DDR技术作为内存的核心&#xff0c;其性能的飞速发展直接推动着计算机的计算能力。 本文将简明扼要地介绍DDR技术的发展历程。 一、SDR时代 20世纪90年代&#xff0c;Intel公司推出了首款同步动态随机存储器SDR SDRAM。其采用时钟同步接口&#xff0c;时钟频率典型为66MHz或8…

【洛谷算法题】P2433-小学数学 N 合一【入门2分支结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P2433-小学数学 N 合一【入门2分支结构】&#x1f30f;题目描述&#x1f319;问题…

MySQL数据库基本操作1

文章目录 主要内容一.DDL1.创建表代码如下&#xff08;示例&#xff09;: 2.创建表的类型3.其他操作4.修改表结构格式代码如下&#xff08;示例&#xff09;: 二.DML1.数据插入代码如下&#xff08;示例&#xff09;: 2.数据修改代码如下&#xff08;示例&#xff09;: 3.数据删…

力扣第406题 根据身高重建队列 c++ 贪心思维

题目 406. 根据身高重建队列 中等 相关标签 贪心 树状数组 线段树 数组 排序 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &am…

Qt在Android上设置连接到指定的WIFI

在Android上使用Qt设置连接到指定的Wi-Fi网络需要使用Java代码来完成,涉及到Android平台特定的API和权限。接下来下面将会演示如何在Qt中调用Java代码来实现这一功能。 【1】在Qt项目中创建一个名为"AndroidWifiConnector"的Java类。 (新建文件,选择JAVA类型,名字…

解决 viteprees 中 vp-doc 内置样式影响组件预

解决 viteprees 中 vp-doc 样式影响组件预览 问题 当使用"vitepress": "1.0.0-rc.22"作为组件库文档时&#xff0c;会自动引入vitepress的默认主题&#xff0c; 其中vp-doc中有大量的html标签样式 ... .vp-doc table {display: block;border-collapse: …

前端开发技术栈(工具篇):2023深入了解webpack的安装和使用以及核心概念和启动流程(详细) 63.3k stars

目录 Webpack简介 Entry Module Chunk Loader Plugin Output Webpack的启动流程 Webpack的优缺点 Webpack的使用 1. 安装Webpack 2. 创建Webpack配置文件 3. 编写代码 4. 运行Webpack 5. 在HTML中引入打包后的文件 6. 执行编译命令 Webpack其他功能介绍 1. 使…

map与set

目录 set的key搜索树模拟 set内置的find与count函数 ​编辑 set的lower_bound与upper_bound内置函数、 map的key-value搜索树模拟 通过不同的方式向map中插入键值对。 map的遍历 ​编辑 map的operator的 [ ] 用法 关于map与set用法的几个例题 例题1&#xff1a; 随机…

V3Det大规模词汇视觉检测数据集与LaRS海上全景障碍物检测数据集

V3Det与LaRS是ICCV2023上发表的数据集工作&#xff0c;规模都比较大&#xff0c;后续有可能会用到&#xff0c;因此记录下来。 V3Det: Vast Vocabulary Visual Detection Dataset Paper: https://arxiv.org/abs/2304.03752 URL: https://v3det.openxlab.org.cn/ 在现实世界中…

Bootstrap中CSS媒体查询分辨率 @media(min-width)例子

Bootstrap中CSS媒体查询分辨率 media&#xff08;min-width&#xff09;例子 css media min-width max-width 解释&#xff1a; min-width 表示最小即大于等于max-width 表示最大即小于等于 media screen and (min-width : 320px) {html {font-size : 10px !important;} } medi…