ubuntu22.04编译安装ch348(usb转串口芯片)驱动

1、支持Linux驱动安装包获取:CH9344SER_LINUX.ZIP - 南京沁恒微电子股份有限公司 

2、安装linux内核头文件源码:

内核头文件下载地址 https://download.csdn.net/download/xuefu2008/90398560

tar -xvzf linux-headers-aarch64.tar.gz -C linux-headers-5.10
sudo mkdir -p /lib/modules/$(uname -r)
sudo ln -s /home/linaro/3rd/linux-headers/linux-headers-5.10 /lib/modules/$(uname -r)/build

3、编译ch348驱动源码:

# 进入解压后的安装包文件夹后
cd driver

# 编译生成ch9344.ko文件
make

# 临时加载驱动程序
sudo make load(或sudo insmod ch9344.ko)

# 永久加载驱动程序
sudo make install

##键入sudo rmmod ch9344.ko卸载驱动程序

4、插入设备检查硬件连接情况,出现QinHeng的设备就正常

<think>好的,用户现在遇到了在WSL Ubuntu 22.04CH340串口不显示的问题。首先,我需要回想一下之前的对话历史。用户之前询问过modprobe命令,这说明他们对Linux内核模块有一定了解,可能已经尝试过加载模块或者检查模块状态。现在的问题涉及WSL,这让我想到WSL和物理硬件的交互可能有限,特别是串口设备。 首先,我需要明确CH340是一个USB串口芯片,常见于一些Arduino或串口设备。在正常的Linux系统中,加载ch340驱动后,设备会出现在/dev/ttyUSB*或类似的位置。但WSL的情况不同,因为WSL1和WSL2的架构不同,特别是WSL2基于虚拟机,可能无法直接访问USB设备。 接下来,用户的系统是Ubuntu 22.04,可能运行在WSL2下。我需要考虑几个可能的原因:WSL版本、驱动是否加载、Windows端的配置是否正确、用户权限问题等。 首先应该让用户确认WSL版本。如果是WSL1,可能有更多的硬件访问能力,但WSL2更常见,但需要检查USB支持。然后,检查Linux内核中是否加载了ch340模块。用户可能已经知道用lsmod或modprobe,但需要提醒他们检查。如果模块未加载,可能需要手动加载,但WSL的内核可能不支持,或者模块未被包含。 另外,Windows端的CH340驱动是否正确安装也很重要。如果Windows没有正确识别设备,WSL也无法访问。用户需要检查设备管理器,确保没有黄色感叹号,驱动安装。 还有一个关键点是,WSL2默认不支持直接访问USB设备,需要第三方工具如usbipd-win。用户可能不知道这一点,需要指导他们安装并配置usbipd-win,将USB设备附加到WSL实例中。 此外,用户可能没有将当前用户加入dialout组,导致没有权限访问串口设备。需要提醒他们使用sudo usermod命令修改组,并重新登录。 可能还需要检查/dev目录下是否存在ttyS*或ttyUSB*设备,如果不存在,说明驱动或连接有问题。同时,WSL的init进程可能未正确创建设备节点,需要手动配置或使用其他方法。 最后,总结步骤:检查WSL版本,安装Windows驱动,配置usbipd-win,加载内核模块,检查设备节点,设置用户权限。如果问题依旧,可能需要考虑使用其他工具或切换WSL版本。</think>在WSL(Windows Subsystem for Linux)的Ubuntu 22.04中,CH340串口设备无法显示的问题通常涉及多层级配置。以下是分步排查与解决方案: --- ### 一、**根本原因分析** 1. **WSL架构限制** - WSL2基于虚拟机(Hyper-V),默认无法直接访问物理硬件(如USB/串口) - WSL1支持部分硬件直通,但微软已停止主要更新 2. **驱动未正确关联** - CH340在Windows端的驱动安装或冲突 - WSL未加载对应的内核模块(如`ch341`、`ch34x`等) 3. **权限问题** - 用户未加入`dialout`组(串口设备访问权限组) --- ### 二、**详细解决方案** #### 步骤1:检查Windows端CH340驱动 1. 在Windows中插入CH340设备 2. 打开 **设备管理器** → 展开 **端口(COM和LPT)** - ✅ 正常状态:显示`USB-SERIAL CH340 (COMx)` - ❌ 异常状态:显示黄色感叹号(需[下载驱动](http://www.wch.cn/downloads/CH341SER_EXE.html)安装) #### 步骤2:配置WSL访问USB设备 WSL2需通过`usbipd-win`工具桥接USB设备: 1. **安装工具**(以管理员身份运行PowerShell): ```powershell winget install usbipd ``` 2. **绑定CH340到WSL**: ```powershell usbipd list # 查看设备BUSID usbipd attach --wsl --busid <BUSID> ``` #### 步骤3:验证WSL内核模块 在Ubuntu中执行: ```bash lsmod | grep ch34 # 检查驱动是否加载 sudo modprobe ch341 # 尝试手动加载驱动(若存在) ``` #### 步骤4:检查设备节点 加载成功后应出现设备文件: ```bash ls /dev/tty* # 查找类似/dev/ttyUSB0或/dev/ttyCH340USB0 ``` #### 步骤5:设置用户权限 ```bash sudo usermod -aG dialout $USER # 将当前用户加入串口组 exec newgrp dialout # 立即生效(或重启终端) ``` --- ### 三、**替代方案** 如果仍无法识别,可尝试: 1. **切换WSL版本**(仅限CH340对实时性要求低的场景): ```powershell wsl --set-version Ubuntu-22.04 1 ``` 2. **使用Windows端工具**: - 通过`COMx`端口在Windows中调试(如Putty、Arduino IDE) - 通过`/mnt/c`目录共享数据到WSL --- ### 四、**常见错误处理** | 现象 | 解决方法 | |----------------------|---------------------------------| | `No such device` | 检查`usbipd`绑定状态,重插设备 | | `Permission denied` | 确认用户已加入`dialout`组 | | 模块加载失败 | 编译WSL内核(需[自定义内核](https://learn.microsoft.com/en-us/windows/wsl/wsl2-kernel))| --- ### 五、**验证操作** ```bash # 安装串口调试工具 sudo apt install minicom # 测试连接(假设设备为/dev/ttyUSB0) minicom -D /dev/ttyUSB0 -b 9600 ``` 若配置正确,此时可通过终端与串口设备通信。若仍存在问题,建议检查硬件连接或尝试更换USB线缆。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值