前言
本篇是介绍ubuntu22.04如何安装 ch341 驱动,并对其中遇到的问题进行整理。
一、流程
1.1 查看CH340驱动
首先是查看ubuntu22.04系统自带的驱动,用以下命令即可
ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial
然后会跳出以下界面,可以看到含有ch341.ko文件
由于系统自带的版本可能不适配,所以直接删除掉,直接执行以下2行命令:
cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial
sudo rm -rf ch341.ko
1.2 安装CH341驱动并解压
直接点击以下链接,CH341下载链接, 并解压得到,右边.c .h以及Makefile文件都在driver文件夹里:
1.3 查询操作系统编号
因为输入以下代码,得到我的版本是6.8的
uname -r
然后我们就要到这个网址中进行下载复制,根据查询到的操作系统的发行编号,打开对应的版本,
https://elixir.bootlin.com/linux/v6.8/source/drivers/usb/serial/ch341.c
可以直接复制粘贴替换掉原本压缩出来的ch341.c,但可能复制有有点麻烦,所以可以直接download,替换文件减少出错的可能。
1.4 编译make源文件
cd切换至ch341.c的目录下,make编译源码,生成ch341.ko文件:
cd /home/qishao/下载/CH341SER_LINUX_1/driver
make
ps:如果你make不行,可能是因为你没安装gcc或者gcc版本不一致或者是make没安装,可以执行下面的操作
sudo apt install gcc-12 sudo apt install make
然后可以发现,原目录中出现以下文件
1.5 复制ch341.ko文件
复制ch341.ko文件至系统默认驱动文件夹 serial
sudo cp ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial
然后查看一下,是否成功
然后也是较为关键的一步就是,输入 lsmod 命令查看:
lsmod | grep ch34
出现以上才说明你成功,如果你有问题没出现,可能就是问题2.2,可以看一下我整理的解决方法。
二、问题解决及优化
2.1 make出错
ps:如果你make不行,可能是因为你没安装gcc或者gcc版本不一致或者是make没安装,可以执行下面的操作
sudo apt install gcc-12 sudo apt install make
2.2 insmod ERROR
这边需要make load一下,但是可能会出现以下问题,这是因为缺少了依赖模块
为此,我们需要使用 modinfo ch341.ko | grep depends 查看依赖的模块
modinfo ch341.ko | grep depends
出现以下图,可以发现,ch341.ko 的依赖模块是 usbserial
那么就要下这个模块,执行下面的代码即可
sudo modprobe usbserial
再次使用 insmod ch341.ko 就可以加载成功。
sudo insmod ch341.ko
然后就是make或者sudo make install,跳出以下界面
再 lsmod 就可以看到 ch341 了
2.3 Key was rejected by service
可以看下:
解决Ubuntu22.04上安装ch34x串口驱动报 Key was rejected by service 需要签名的问题
注:有任何问题欢迎评论区交流讨论或者私信!后续关于语言包有问题的话会进行更新