Ubuntu 22.04系统安装CP210x驱动遇到问题
Ubuntu 22.04系统安装CP210x驱动遇到问题
嗨,我之前也碰到过一模一样的问题,这个报错其实是因为Ubuntu 22.04搭载的内核版本比较新(5.15及以上),你用的旧版CP210x驱动源码里引用的<linux/slab.h>在新内核中已经被弃用了,相关内存分配的接口要么整合到了其他头文件,要么不需要显式引用就能调用。
给你两个可行的解决方向:
方向一:修改驱动源码适配新内核
- 打开
cp210x.c文件,定位到第18行的#include <linux/slab.h> - 将这一行替换为
#include <linux/slub_def.h>;要是替换后仍有报错,也可以尝试直接注释掉这行(新内核里很多内存分配函数已经不需要依赖这个头文件) - 保存文件后重新运行
make cp210x
方向二:直接使用系统自带的驱动(更推荐)
其实Ubuntu 22.04的内核已经预装了CP210x驱动模块,完全不用自己编译,步骤超简单:
- 先检查驱动是否已加载:运行
lsmod | grep cp210x,如果有输出就说明驱动已经在运行了 - 如果没加载,手动加载模块即可:
sudo modprobe cp210x - 之后去
/dev/目录下找ttyUSB*开头的设备,那就是你的Arduino对应的串口了
如果你没有特殊需求必须用旧版驱动,强烈建议用系统自带的版本,不仅省心,兼容性和稳定性也更有保障——自己编译旧驱动后续可能还会碰到其他新内核的适配问题。
备注:内容来源于stack exchange,提问作者CodyOnStack
相关产品推荐
相关产品推荐

