前言

最近使用 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 设备

  1. 管理员模式 打开 PowerShell 和 WSL2 (也就是 Windows 和 WSL2 的终端)。

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

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

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

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



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

  6. WSL 中完成设备使用后,在 PowerShell(Windows) 里 usbipd detach --busid <busid> 物理断开 USB 设备,才能在 Windows 里使用这个 USB 设备(这个是微软推荐的做法)。或者粗暴点,直接把设备拔了,重新插一下,效果也一样。但是不知道有没有啥负面影响(目前还没发现)。

参考

WSL(Ubuntu)连接 Windows 的 USB 设备(完结)的更多相关文章

  1. ubuntu 连接windows远程桌面 &&rdesktop 退出全屏模式

    参考:http://www.asgone.net/ubuntu-connect-windows-remote-desktop/ 呵呵,使用上了ubuntu,怎么接连上我的服务器的远程桌面呢,找了找帮助 ...

  2. Ubuntu 连接手机 不识别设备 -- 解决办法

    1.usb线连接手机,输入命令 $ lsusb Bus 004 Device 002: ID 8087:8000 Intel Corp. Bus 004 Device 001: ID 1d6b:000 ...

  3. 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, ...

  4. usb设备运行不正常的解决方法(转)

    add by zhj:上午鼠标还用的好好的,下午就不能用了,插上之后提示“跟这台计算机连接的一个usb设备运行不正常”,尼玛,什么情况?我今天没安装软件啊,换了个USB接口也不行,在另一台电脑上试还是 ...

  5. C# 实现自定义的USB设备与上位机进行通信(上位机部分)

    因为以前没用过USB,对USB也不了解,于是上网查了很多资料,不过网上的资料都是零零散散,不清不楚的,于是我自己总结了一下,下面几个链接是网上这么多零散资料里,我觉得比较有参考意义的. USB设备连接 ...

  6. AD域控制器通过组策略禁止USB设备

    问题:域环境下如何禁用USB口设备? 第一种:用传统的办法,在Bios中禁用USB. 第二种: 微软技术支持回答:根据您的需求, Windows识别USB设备主要通过两个文件,一个是Usbstor.p ...

  7. WSL Ubuntu 18.04 LTS + VS Code

    WSL Ubuntu 18.04 LTS + VS Code ​ WSL(Windows Subsystem for Linux)使得Windows用户能够在Windows系统上使用原生的Linux环 ...

  8. Ubuntu物理机中解决VirtualBox虚拟机无法连接USB设备的问题

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=611 问题描述: 在安装完VirtualBox的USB控制器扩展(关于在VirtualBox中安装USB控制器扩展的 ...

  9. 通过 xshell 连接 ubuntu on windows(WSL)

    装上 ubuntu on windows 后,默认要先打开 cmd, 再运行 bash 进入 ubuntu 的 shell. 但是这个shell很难看,配色不好就算了,还存在各种复制粘贴麻烦. 默认没 ...

  10. Ubuntu/Windows下利用“HIDAPI”库函数实现与Hid类USB设备通信

    一.背景: 最近在做的一个项目需要使用USB传递数据,对USB理解不是很深,USB的系统驱动编写则更是天方 夜谭,因此将设备配置成HID类设备成为了首选.其最大的好处在于,LINUX/Windows系 ...

随机推荐

  1. html canvas 图片压缩后 透明背景变成黑色

    错误写法(这种写法固定死了类型,会不匹配): const data = canvas.toDataURL('image/jpeg', quality); 调整成: let fileType = xxx ...

  2. sql server 将数据库表里面的数据,转为insert语句,方便小批量转移数据

    create proc [dbo].[proc_insert] (@tablename varchar(256)) as begin set nocount on declare @sqlstr va ...

  3. Java核心知识体系9-并发与多线程:线程基础

    Java系列 Java核心知识体系1:泛型机制详解 Java核心知识体系2:注解机制详解 Java核心知识体系3:异常机制详解 Java核心知识体系4:AOP原理和切面应用 Java核心知识体系5:反 ...

  4. attention, transformers

    这啥呀,慢慢啃 Attention 最初来源于 NLP 机器翻译的 Sequence to Sequence 模型,早先的encoder-decoder结构随着句子长度增加翻译性能会下降,因为模型记不 ...

  5. HTML – W3Schools 学习笔记

    有用链接: HTML Attribute Reference (查看所有 Attributes) HTML Paragraphs Link to W3Schools <p> 里面 doub ...

  6. Angular 18+ 高级教程 – 国际化 Internationalization i18n

    介绍 先讲讲名词. Internationalization 的缩写是 i18n,中文叫国际化. Globalization 是 Internationalization 的同义词,都是指国际化. L ...

  7. 揭秘最为知名的黑客工具之一: Netcat!适用安全测试、渗透测试、黑客攻击!

    在网络安全领域,黑客工具一直备受关注.它们既可以被用于攻击,也可以用于防御.本文将为大家揭秘一款知名的黑客工具: Netcat. 1.Netcat是什么? Netcat被誉为"网络的瑞士军刀 ...

  8. 面试被问到:fiddler 在工作中有哪些应用?怎么破?

    作为软件测试工程师,如果你的简历中有涉及到 fiddler 这款工具,出去面试可能会被问到:fiddler 在工作中有哪些应用? 我们都知道 fiddler 是一款非常优秀的调试代理工具,用于记录客户 ...

  9. 【译】通过新的 WinUI 工作负荷和模板改进,深入原生 Windows 开发

    在 Build 2024 上,WinUI 团队宣布将重新关注 WinUI,将其作为我们推荐的原生 Windows 应用开发的首要应用开发框架之一.为了使其尽可能无缝和轻松地进入编码,我们创建了一个新的 ...

  10. iOS多态使用小结

    多态是面试程序设计(OOP)一个重要特征,但在iOS中,可能比较少的人会留意这个特征,实际上在开发中我们可能已经不经意的使用了多态.比如说: 有一个tableView,它有多种cell,cell的UI ...