WSL(Ubuntu)连接 Windows 的 USB 设备(完结)
前言
最近使用 Linux 通过串口与设备通信,之前使用 Linux 都是在 VMware 里创建虚拟机,该平台下若有串口通信需求,有专门的按键功能切换很方便。
但切换了 WSL2 (windows 的 linux 子系统,配置很方便)后,因为是纯命令行操作,就带来了点串口通信的麻烦。
目前 WSL2 官方没有提供相应的命令行来设置串口通信(WSL1 支持)。但总有大佬出来解决问题,所谓大佬栽树,我乘凉。
安装 package
两个安装方法,自选,我选的是第二个。
- github 获取,安装 usbipd-win 项目。
- 也可使用 Windows 程序包管理器程序 (winget) 来安装 usbipd-win 项目。 如果已安装 winget,只需使用命令
winget install --interactive --exact dorssel.usbipd-win安装 usbipd-win 即可。 如果省略了--interactive,winget 可能会立即重启计算机(如果这是安装驱动程序所必需的操作)。- 这将安装:
- 名为 usbipd 的服务(显示名称:USBIP 设备主机)。 可使用 Windows 中的“服 务”应用检查此服务的状态。
- 命令行工具 usbipd。 此工具的位置将添加到 PATH 环境变量。
- 名为 usbipd 的防火墙规则,用于允许所有本地子网连接到服务。 可修改此防火墙规则以微调访问控制。
附加 USB 设备
以 管理员模式 打开 PowerShell 和 WSL2 (也就是 Windows 和 WSL2 的终端)。

在 PowerShell 里输入
usbipd list把接到 windows 上的 USB 设备列出来,方便看 USB-id(后面命令需要用到)。

在附加 USB 设备之前,必须使用命令
usbipd bind先共享设备(必须要做),从而允许它附加到 WSL2。运行命令后,再次使用命令 usbipd list 验证设备是否已共享。(后面的设备状态变成 Shared)

然后就可以附加 USB 设备了(注意,只要 USB 设备连接到 WSL,Windows 将无法使用它)。使用命令
usbipd attach --wsl -b 2-1附加 USB 设备,附加到 WSL2 后,WSL2 运行的分发版本(也就是你 WSL 安装的 linux 系统,我的是 Ubuntu )可以使用 USB 设备。 使用usbipd list验证设备是否已附加。

在 WSL 中检查下是否正常附加上 USB 设备,使用
lsusb命令列出附加的 USB 设备。运行一个使用到 USB 串口的 RUST 程序,可以正常运行说明可以了。

应该可以看到刚刚附加的设备,并且能够使用常规 Linux 工具与之交互。根据你的应用程序,可能还需要配置 udev 规则以允许非根用户访问设备。WSL 中完成设备使用后,在 PowerShell(Windows) 里
usbipd detach --busid <busid>物理断开 USB 设备,才能在 Windows 里使用这个 USB 设备(这个是微软推荐的做法)。或者粗暴点,直接把设备拔了,重新插一下,效果也一样。但是不知道有没有啥负面影响(目前还没发现)。
参考
WSL(Ubuntu)连接 Windows 的 USB 设备(完结)的更多相关文章
- ubuntu 连接windows远程桌面 &&rdesktop 退出全屏模式
参考:http://www.asgone.net/ubuntu-connect-windows-remote-desktop/ 呵呵,使用上了ubuntu,怎么接连上我的服务器的远程桌面呢,找了找帮助 ...
- Ubuntu 连接手机 不识别设备 -- 解决办法
1.usb线连接手机,输入命令 $ lsusb Bus 004 Device 002: ID 8087:8000 Intel Corp. Bus 004 Device 001: ID 1d6b:000 ...
- remote desktop connect btw Mac, Windows, Linux(Ubuntu) Mac,Windows,Linux之间的远程桌面连接
目录 I. 预备 II. Mac连接Windows III. Windows连接Mac IV. Windows连接Ubuntu V. Mac连接Ubuntu VI. Ubuntu连接Mac VII, ...
- usb设备运行不正常的解决方法(转)
add by zhj:上午鼠标还用的好好的,下午就不能用了,插上之后提示“跟这台计算机连接的一个usb设备运行不正常”,尼玛,什么情况?我今天没安装软件啊,换了个USB接口也不行,在另一台电脑上试还是 ...
- C# 实现自定义的USB设备与上位机进行通信(上位机部分)
因为以前没用过USB,对USB也不了解,于是上网查了很多资料,不过网上的资料都是零零散散,不清不楚的,于是我自己总结了一下,下面几个链接是网上这么多零散资料里,我觉得比较有参考意义的. USB设备连接 ...
- AD域控制器通过组策略禁止USB设备
问题:域环境下如何禁用USB口设备? 第一种:用传统的办法,在Bios中禁用USB. 第二种: 微软技术支持回答:根据您的需求, Windows识别USB设备主要通过两个文件,一个是Usbstor.p ...
- WSL Ubuntu 18.04 LTS + VS Code
WSL Ubuntu 18.04 LTS + VS Code WSL(Windows Subsystem for Linux)使得Windows用户能够在Windows系统上使用原生的Linux环 ...
- Ubuntu物理机中解决VirtualBox虚拟机无法连接USB设备的问题
本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=611 问题描述: 在安装完VirtualBox的USB控制器扩展(关于在VirtualBox中安装USB控制器扩展的 ...
- 通过 xshell 连接 ubuntu on windows(WSL)
装上 ubuntu on windows 后,默认要先打开 cmd, 再运行 bash 进入 ubuntu 的 shell. 但是这个shell很难看,配色不好就算了,还存在各种复制粘贴麻烦. 默认没 ...
- Ubuntu/Windows下利用“HIDAPI”库函数实现与Hid类USB设备通信
一.背景: 最近在做的一个项目需要使用USB传递数据,对USB理解不是很深,USB的系统驱动编写则更是天方 夜谭,因此将设备配置成HID类设备成为了首选.其最大的好处在于,LINUX/Windows系 ...
随机推荐
- html canvas 图片压缩后 透明背景变成黑色
错误写法(这种写法固定死了类型,会不匹配): const data = canvas.toDataURL('image/jpeg', quality); 调整成: let fileType = xxx ...
- sql server 将数据库表里面的数据,转为insert语句,方便小批量转移数据
create proc [dbo].[proc_insert] (@tablename varchar(256)) as begin set nocount on declare @sqlstr va ...
- Java核心知识体系9-并发与多线程:线程基础
Java系列 Java核心知识体系1:泛型机制详解 Java核心知识体系2:注解机制详解 Java核心知识体系3:异常机制详解 Java核心知识体系4:AOP原理和切面应用 Java核心知识体系5:反 ...
- attention, transformers
这啥呀,慢慢啃 Attention 最初来源于 NLP 机器翻译的 Sequence to Sequence 模型,早先的encoder-decoder结构随着句子长度增加翻译性能会下降,因为模型记不 ...
- HTML – W3Schools 学习笔记
有用链接: HTML Attribute Reference (查看所有 Attributes) HTML Paragraphs Link to W3Schools <p> 里面 doub ...
- Angular 18+ 高级教程 – 国际化 Internationalization i18n
介绍 先讲讲名词. Internationalization 的缩写是 i18n,中文叫国际化. Globalization 是 Internationalization 的同义词,都是指国际化. L ...
- 揭秘最为知名的黑客工具之一: Netcat!适用安全测试、渗透测试、黑客攻击!
在网络安全领域,黑客工具一直备受关注.它们既可以被用于攻击,也可以用于防御.本文将为大家揭秘一款知名的黑客工具: Netcat. 1.Netcat是什么? Netcat被誉为"网络的瑞士军刀 ...
- 面试被问到:fiddler 在工作中有哪些应用?怎么破?
作为软件测试工程师,如果你的简历中有涉及到 fiddler 这款工具,出去面试可能会被问到:fiddler 在工作中有哪些应用? 我们都知道 fiddler 是一款非常优秀的调试代理工具,用于记录客户 ...
- 【译】通过新的 WinUI 工作负荷和模板改进,深入原生 Windows 开发
在 Build 2024 上,WinUI 团队宣布将重新关注 WinUI,将其作为我们推荐的原生 Windows 应用开发的首要应用开发框架之一.为了使其尽可能无缝和轻松地进入编码,我们创建了一个新的 ...
- iOS多态使用小结
多态是面试程序设计(OOP)一个重要特征,但在iOS中,可能比较少的人会留意这个特征,实际上在开发中我们可能已经不经意的使用了多态.比如说: 有一个tableView,它有多种cell,cell的UI ...