Linux-ubuntu22.04串口驱动安装(CH34X)

一、查看CH340驱动

查看ubuntu系统自带驱动

ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial

 一般能看到下面等文件

aircable.ko         io_ti.ko        navman.ko        ti_usb_3410_5052.ko
ark3116.ko          ipaq.ko         omninet.ko       upd78f0730.ko
belkin_sa.ko        ipw.ko          opticon.ko       usb_debug.ko
ch341.ko            ir-usb.ko       option.ko        usbserial.ko
cp210x.ko           iuu_phoenix.ko  oti6858.ko       usb-serial-simple.ko
cyberjack.ko        keyspan.ko      pl2303.ko        usb_wwan.ko
cypress_m8.ko       keyspan_pda.ko  qcaux.ko         visor.ko
digi_acceleport.ko  kl5kusb105.ko   qcserial.ko      whiteheat.ko
empeg.ko            kobil_sct.ko    quatech2.ko      wishbone-serial.ko
f81232.ko           mct_u232.ko     safe_serial.ko   xr_serial.ko
f81534.ko           metro-usb.ko    sierra.ko        xsens_mt.ko
ftdi_sio.ko         mos7720.ko      spcp8x5.ko
garmin_gps.ko       mos7840.ko      ssu100.ko
io_edgeport.ko      mxuport.ko      symbolserial.ko

上面可以看到含有ch341.ko文件,系统自带的版本比较老,删除掉:

cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial
sudo rm -rf ch341.ko

二、安装CH340驱动

1.下载驱动

1)百度网盘下载链接
提取码:RMSR

2)微云下载

2.解压下载文件

解压之后可以看到以下3个文件

3.查询操作系统发型编号

uname -r

打开:https://elixir.bootlin.com/linux/v6.2/source/drivers/usb/serial/ch341.c

根据查询到的操作系统的发行编号,打开对应的版本,复制所有内容替换ch34x.c内容

4.编译源文件

cd切换至下载的文件夹,make编译源码,生成ch34x.ko文件:

cd CH341SER_LINUX/
make

 注:编译需要安装gcc与make。

5.复制ch34x.ko文件

复制ch34x.ko文件至系统默认驱动文件夹

sudo cp ch34x.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial

 查看 ch34x.ko

输入lsmod命令查看:

lsmod | grep ch

 看到ch34x模块,至此ch34驱动安装完成,如果未看到,输入sudo depmod -a命令,重启一次电脑。

6可能遇到的问题

6.1部分新版本Ubuntu需要签名的问题Key was rejected by service

参考:解决Ubuntu22.04上安装ch34x串口驱动报 Key was rejected by service 需要签名的问题

6.2Brltty 导致 USB 转串口连接失败

参考:ubuntu22.04的 brltty 导致 USB 转串口连接失败

### 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文件 ``` 最后一步就是测试连接硬件看看能否正常使用啦!
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值