手把手教WSL如何访问宿主机USB设备

目录

  • 工具安装
      • window安装usbipd工具
      • WSL usbip安装
  • Setup
      • window(Version>=4.0.0)
      • window(Version<4.0.0)
      • WSL
  • 卸载

自从windows推出的WSL功能,对广大的Linux和嵌入式开发者来说是巨大福利,基本可以媲美日常vmware虚拟机的替换。但WSL还是存在一些不足,其中两点比较重要:

  1. WSL环境如何访问宿主机的USB设备?
  2. WSL如何通过宿主机网卡访问外部设备?
    做到这两点,基本可以跟vmware说Byebye,当然完全替代可能差点意思,毕竟WSL不是桌面系统,但进行大部分日常工作基本问题。
    本文主要介绍第一点“WSL环境如何访问宿主机的USB设备?”

笔者使用环境为WSL2,版本参考如下:

wsl --version
WSL 版本: 2.0.9.0
内核版本: 5.15.133.1-1
WSLg 版本: 1.0.59
MSRDC 版本: 1.2.4677
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本: 10.0.22621.2428

工具安装

window安装usbipd工具

  1. usbipd下载安装:
    这款工具从4.0.0从版本之后,使用的命令有所变化,这里需要看你下载哪个版本,
    目前网上大部分教程都是旧版本的使用方法,大家这里要注意避坑,笔者因这个地方被折腾许久,本文会对两个版本的使用方法都进行讲解。
    点击到[官网下载]并执行安装。
    或者powershell下执行,会默认会安装最新版本。

    winget install --interactive --exact dorssel.usbipd-win
    
  2. 安装完成后,可以查看版本:

    usbipd --version
    

WSL usbip安装

sudo apt install linux-tools-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20         # *为版本号

Setup

使用usbipd工具分>=4.0.0和<4.0.0版本,这里分开说明。

window(Version>=4.0.0)

  1. 管理员启动powershell(注意要**管理员权限**)

  2. 输入命令,查看usb列表,这里我使用的busid为6-1, 可以看到对应的usb设备状态为not shared。

usbipd list

在这里插入图片描述

  1. 将对应的usb设备共享,执行如下,可以看到状态变为shared
usbipd bind --busid 6-1
usbipd list

在这里插入图片描述

  1. 将usb设备附加到wsl中,可以看到状态变为attached,表示挂接成功。
usbipd attach --wsl --busid  6-1
usbipd list

在这里插入图片描述

window(Version<4.0.0)

如果usbipd版本小于4.0.0,需要增加wsl参数, 过程与上述类似,按如下方式:

  1. 管理员启动powershell(注意要管理员权限
  2. 查看usb列表的busid
    usbipd wsl list
    
  3. 将对应的usb busid挂接到wsl,执行后记得看下state状态是否正常。
    usbipd wsl attach --busid <busid>
    

WSL

如果挂接上,wsl就可以正常使用usb了,执行lsusb 可以看到新增的设备以及新增的tty,这里的tty是我的usb串口设备。

至此,大功告成,愉快的玩耍起来吧 _
在这里插入图片描述


卸载

如果需要卸载改usb设备连接,在window执行。

```
usbipd detach --busid 6-1
usbipd  unbind --busid 6-1
```

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【头歌系统数据库实验】实验10 SQL互联网业务查询-1

目录 第1关&#xff1a;查找购买个数超过20,重量小于50的商品&#xff0c;按照商品id升序排序 第2关&#xff1a;查询向follow表中user_id 1 的用户&#xff0c;推荐其关注的人喜欢的音乐 第3关&#xff1a;查询向follow表中user_id用户&#xff0c;推荐其关注的人喜欢的音…

MinGW编译Python至pyd踩坑整理

title: MinGW编译Python至pyd踩坑整理 tags: [Python,CC] categories: [开发记录,Python] date: 2023-12-12 13:48:20 description: sidebar: [‘toc’, ‘related’,‘recent’] 注意需要魔法 用scoop自动安装配置MinGw 需要魔法&#xff0c;不需要手动配置mingw scoop in…

WPF使用WebBrowser报脚本错误问题处理

前言 WPF使用WebBrowser报脚本错误问题处理,我们都知道WPF自带的WebBrowser都用的IE内核,但是在特殊的条件下我们还需要用到它,比如展示纯html简单的页面。再展示主流页面的时候比如用到Jquery高级库或者VUE等当前主流站点时经常就会报JS脚本错误,在Winform里面我们一句代…

(十六)Flask之蓝图

蓝图 Flask蓝图&#xff08;Blueprint&#xff09;是Flask框架中用于组织和管理路由、视图函数以及静态文件的一种机制。它提供了一种将应用程序拆分为更小、可重用组件的方式&#xff0c;使得项目结构更清晰&#xff0c;代码更易于维护。 使用Flask蓝图&#xff0c;可以将相…

mysql中NULL值

mysql中NULL值表示“没有值”&#xff0c;它跟空字符串""是不同的 例如&#xff0c;执行下面两个插入记录的语句&#xff1a; insert into test_table (description) values (null); insert into test_table (description) values ();执行以后&#xff0c;查看表的…

VBA_NZ系列工具NZ10:VBA压缩与解压工具

我的教程一共九套及VBA汉英手册一部&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到数据库&#xff0c;到字典&#xff0c;到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑&#xff0c;这么多知识点该如何组织…

外贸开发信标题如何写?推荐的邮件主题行?

提高打开率的外贸开发信标题模板&#xff1f;怎么写好邮件主题&#xff1f; 一封引人注目的外贸开发信可以帮助您吸引潜在客户的注意&#xff0c;打开贸易大门。然而&#xff0c;写一个吸引人的外贸开发信并不容易。蜂邮将探讨如何撰写令人印象深刻的外贸开发信标题&#xff0…

java系列-LinkedHashMap

1.插入新节点时&#xff0c;会将该节点加到链表尾部 public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>{/*** The head (eldest) of the doubly linked list.*/transient LinkedHashMapEntry<K,V> head;/*** The tail (young…

第三届iEnglish全国ETP大赛16强落位 诠释教育游戏价值

10日,与北方骤降的温度形成鲜明对比,以“玩转英语,用iEnglish”为主题的国内首个教育游戏活动第三届iEnglish全国ETP(English Through Pictures)大赛总决赛小组赛热火朝天的进行。随着“云帆沧海队”搭上末班车,本届活动16强全部产生,接下来的三个周末他们将向年度总冠军发起最…

vscode 远程连接内网服务器和通过跳板机远程连接外网服务器

1.打开vscode congfig文件&#xff0c;输入相应信息如下图 若本地没有id_rsa文件&#xff0c;可打开cmd进入.ssh目录下输入命令&#xff1a;ssh-keygen&#xff0c;创建该文件&#xff0c;会提示输入该文件保存地址以及设置秘钥密码&#xff08;最好不要设置密码&#xff0c;不…

(2023,大视觉模型 LVM,视觉句子,自回归)序列建模支持大型视觉模型的可扩展学习

Sequential Modeling Enables Scalable Learning for Large Vision Models 公Z号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 2. 相关工作 3. 数据 4. 方法 4.1 图像…

如何管理大型网站的抓取预算

优化您的网站&#xff0c;以便 Google 更快地找到您的内容并将您的内容编入索引&#xff0c;这可以帮助您的网站获得更好的知名度和流量。 互联网是一个不断发展的虚拟世界&#xff0c;拥有超过 1 亿个网站。 你认为谷歌可以抓取世界上的每一个网站吗&#xff1f; 即使拥有谷…

优化汽车产业用户营运:精细化策略

近年来随着互联网时代新技术浪潮的冲击&#xff0c;商业社会中各种原生边界不断被打破&#xff0c;新的消费需求、新的商业模式、新的竞争挑战层出不穷。各行业往往面临重重困境与迷思&#xff0c;学会如何精细化运营用户显得尤为重要。立即阅读阅文&#xff0c;详细了解其中用…

系列十、SpringBoot + MyBatis + Redis实现分布式缓存(基于注解方式)

一、概述 上篇文章 系列九、SpringBoot MyBatis Redis实现分布式缓存 介绍了基于xml方式实现分布式缓存的效果&#xff0c;当前大家使用的技术栈基本是springboot各种框架的组合&#xff0c;而springboot显著的一个特点就是去xml配置&#xff0c;那么在无xml配置的情形下&…

LeetCode(55)环形链表【链表】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 环形链表 1.题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评…

【EDA工具-VCS和Verdi的使用_2023.12.9】

芯片开发所需工具环境 Linux/Unix 编辑器Vim/Gvim EDA工具 Makefile 脚本语言Perl/Python 版本控制SVN/GIT 脚本语言Makefile 形式&#xff08;由一系列的规则组成&#xff09; 规则的目标&#xff1a;规则的依赖&#xff08;可有可无&#xff09; 规则的命令行&#xff08…

CompletableFuture使用小结

为什么需要CompletableFuture CompletableFuture继承了CompletionStage接口和Future接口&#xff0c;在原有Future的基础上增加了异步回调、流式处理以及任务组合&#xff0c;成为JDK8多任务协同场景下一个有效利器。 CompletableFuture使用示例 提交有返回值的异步任务 通…

【HTML】基于jsQR实现的HTML单页面扫码功能

前言 最近做了一个扫码签到的功能涉及到获取浏览器摄像头并扫码识别的功能。 选择jsQR的原因&#xff1a; html5-qrcode&#xff1a;使用简单&#xff0c;识别率低&#xff0c;二维码小不可解析 zxing/library&#xff1a; 识别率优于html5-qrcode&#xff0c;部分安卓模糊…

Linux系统编程:高级IO总结

非阻塞IO基本概念 高级IO核心就一个概念&#xff1a;非阻塞IO。 与该概念相对的&#xff0c;就是我们之前学习过的阻塞IO。 非阻塞IO&#xff08;Non-blocking I/O&#xff09;是一种IO模型&#xff0c;用于实现异步IO操作&#xff0c;使应用程序能够在等待IO操作完成的同时…

Ubuntu部署EMQX开源版MQTT服务器-Orange Pi部署-服务器部署

一、前言 作为全球最具扩展性的 MQTT 消息服务器&#xff0c;EMQX 提供了高效可靠海量物联网设备连接&#xff0c;能够高性能实时移动与处理消息和事件流数据&#xff0c;本文将介绍如何在Ubuntu 22.04上部署MQTT服务器。我们本次选择开源版&#xff0c;使用离线安装方式部署。…