Ubuntu22.04安装CH340/CH341驱动

陈拓 2024/12/20-2024/12/20

1. 我的系统

  • 硬件系统架构

arch

  • 操作系统版本

lsb_release -a

2. CH340G,USB-串口转换器

3. Ubuntu22.04安装CH340驱动

3.1 用lsusb查看USB

  • 插上CH340之前

  • 插上CH340之后

输出中包含ID 1a86:7523 QinHeng Electronics CH340 serial converter的信息,这表明CH340设备已经被系统识别。

3.2 查看USB转串口

ls -l /dev/ttyUSB0

/dev下没有该设备节点。

用dmesg命令查看:

sudo dmesg | grep ch341

ch341 uart转换器现在与ttyUSB0断开。

3.3 升级驱动

  • 官方网址

https://www.wch.cn/download/CH341SER_LINUX_ZIP.html

  • 下载驱动

  • 解压

unzip CH341SER_LINUX.ZIP

  • 查看README.md

cat CH341SER_LINUX/README.md

#ch341 linux串行驱动程序

##描述

USB到UART芯片ch340、ch341等的USB串行驱动程序。ch341支持多种工作模式,该驱动程序仅支持其串行端口模式。

事实上,自Linux主线内核版本2.6.24以来,ch341串行驱动程序已经内置。位置是:drivers/usb/serial/ch341.c,很遗憾,内置驱动程序不能保持最新,不能支持芯片的所有功能。我们建议客户使用此驱动程序。

1.打开“终端”

2.切换到“driver”目录

3.使用“make”编译驱动程序,如果成功,将看到模块“ch341.ko”

4.键入“sudo make load”或“sudo-insmod ch341.ko”以动态加载驱动程序

5.键入“sudo make unload”或“sudo rmmod ch341.ko”卸载驱动程序

6.键入“sudo make install”使驱动程序永久工作

7.键入“sudo make uninstall”删除驱动程序

8.您可以参考下面的链接来获取uart应用程序,您可以使用gcc或与Cross-gcc交叉编译

https://github.com/WCHSoftGroup/tty_uart

3.4 编译安装CH340驱动

  • 切换到“driver”目录

  • 使用“make”编译驱动程序,如果成功,将看到模块“ch341.ko”

  • 键入“sudo make install”使驱动程序永久工作

  • 重新插拔一次USB串口转换器

用dmesg命令查看:

sudo dmesg | grep ch341

和 brltty程序冲突。

  • 卸载brltty程序

brltty 是一款专为盲人设计的屏幕阅读器软件,它能够将文本输出转换为盲文点阵显示器上的触觉反馈。

sudo apt autoremove --purge brltty

  • 再重新插拔一次USB串口转换器

用dmesg命令查看:

sudo dmesg | grep ch341-uart

ch341 uart转换器现在连接到ttyUSB0。

  • 在/dev目录查看tty设备

ls -l /dev/ttyUSB0

  • 修改/dev/ ttyUSB0设备权限

sudo chmod 777 /dev/ttyUSB0

### CH340驱动Ubuntu 22.04上的安装 #### 准备工作 为了确保CH340设备能够在Ubuntu 22.04上正常运行,首先要确认当前系统内核版本以及是否存在旧版的冲突驱动。可以使用`uname -r`来获取操作系统发行版号,对于Ubuntu 22.04而言,这通常是5.15.0-58-generic这样的字符串[^4]。 #### 查看现有驱动情况 由于Ubuntu 22.04自带的老版本ch34x驱动可能存在兼容性问题,建议先检查并移除这些可能引起冲突的模块。具体来说,可以通过命令`ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial`查找已有的ch341.ko文件,并考虑将其删除以避免干扰新驱动加载:`sudo rm /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko`[^2]。 #### 安装必要的编译工具链 考虑到部分用户的环境中GCC版本较低或其他原因可能导致编译失败的情况,在尝试构建新的驱动前应确保已经安装了最新的开发环境组件: ```bash sudo apt update && sudo apt install build-essential dkms linux-headers-$(uname -r) ``` 此步骤有助于提高后续操作的成功率。 #### 获取最新源码与编译 从官方渠道或者其他可信资源处下载适用于目标平台(即Linux Kernel v5.15系列)的ch34x.c源代码文件,并替换项目中的对应位置;之后按照常规流程执行如下指令完成编译过程: ```bash cd ~/Downloads/CH341SER_LINUX # 假设解压后的路径为此处 cp path_to_new_ch34x_c ./ # 将更新过的C文件拷贝进来 make clean # 清理之前的编译残留物 make # 编译生成ko文件 ``` 如果一切顺利,则应该能够看到名为`ch34x.ko`的新建二进制对象被创建出来。 #### 加载自定义驱动 当上述准备工作完成后,就可以试着把刚刚制作好的驱动加入到正在运行的操作系统当中去了。不过在此之前还需要停止任何占用串口的服务或应用程序——比如brltty服务可能会造成影响,所以最好提前处理掉这类潜在障碍: ```bash sudo systemctl stop brltty # 如果存在的话停用该服务 sudo make load # 执行加载动作 dmesg | grep ch34 # 检查日志输出验证是否成功装载 ``` 需要注意的是,在某些情况下即使顺利完成以上所有环节仍然会遇到诸如“File exists”的报错提示,这时不妨试试卸载同名模块后再试一次: ```bash sudo modprobe -r ch34x # 移除现有的相同名称模块 sudo insmod ch34x.ko # 明确指定要插入哪个具体的ko文件 ``` 最后一步就是测试连接硬件看看能否正常使用啦!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨之清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值