wsl2访问宿主机usb转串口设备(ch340)

 参考连接 USB 设备 | Microsoft Learn

【安装usbipd-win】

1、Releases · dorssel/usbipd-win · GitHub中下载msi文件安装

2、usbipd list

3、usbipd bind --busid 4-4

4、usbipd attach --wsl --busid <busid>

【启动ch341模块】

在较新的wsl内核中,已经有相应的驱动模块,手动启动就行,执行以下命令

modprobe ch341

然后在/dev下就能看到类似ttyUSB0这样的usb串口

-------------以下作废-------------

参考:

连接 USB 设备 | Microsoft Learn

https://zhuanlan.zhihu.com/p/661175117

https://www.cnblogs.com/hartmon/p/15771731.html

ubuntu安装串口驱动(找不到ttyUSB*)_ubuntu usb转串口找不到-CSDN博客

install ch341.ko error!_insmod: error: could not insert module ch341.ko: u-CSDN博客

问题描述:需要在wsl2中识别到宿主机上的ch340串口,用于烧录程序

原因分析:wsl2无法直接访问宿主机的usb设备,同时没有核头文件和modules文件,无法编译ch340驱动

解决方案:1、安装usbipd-win,把宿主机上的usb设备映射到wsl2中;2、重新编译增加usb功能的内核,同时安装内核头文件和modules文件,用于ch340的驱动编译

实现步骤:

【安装usbipd-win】

参考连接 USB 设备 | Microsoft Learn

1、Releases · dorssel/usbipd-win · GitHub中下载msi文件安装

2、usbipd list

3、usbipd bind --busid 4-4

4、usbipd attach --wsl --busid <busid>

【编译ch340驱动】

1、CH340/CH341 Linux驱动链接下载驱动源文件

2、wsl中用uname -a查看内核版本,在ch341.c - drivers/usb/serial/ch341.c - Linux source code v5.15.153 - Bootlin中下载对应内核版本的ch341.c文件并进行替换

3、在wsl中编译ch340驱动

sudo make生成ch341.ko

sudo make load会动态加载加载ch341.ko驱动到系统内核中(实际调用的是insmod ch341.ko,但这种方式在系统重启后需要重新加载)

sudo cp -v ch34*.ko /lib/modules/5.15.153.1-microsoft-standard-WSL2/kernel/drivers/usb/serial/把驱动固定到内核中

【问题汇总】

1、报错/lib/modules/5.15.153.1-microsoft-standard-WSL2/build: No such file or directory

查看确实是没有

在重新编译出内核后加入modules_install再次执行,参考https://www.cnblogs.com/hartmon/p/15771731.html

sudo LOCALVERSION= make KCONFIG_CONFIG=Microsoft/config-wsl modules_install -j$(nproc)

然后就有build文件夹了

注意wsl --shutdown后再启动wsl,内核的文件夹会重新加载,即build文件就没了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值