Linux驱动安装遇到的问题(Kernel configuration is invalid)(Invalid module format)
Linux驱动编译和安装经常会遇到各种问题,上篇帖子ubuntu cp210x(USB转串口)驱动安装教程介绍了下载某官方驱动编译时编译不通过的问题,原因是代码问题。本篇主要讲系统环境引起的安装失败的问题。;。
Linux驱动编译安装遇到的问题(Kernel configuration is invalid)(Invalid module format)
前言
Linux驱动编译和安装经常会遇到各种问题,上篇帖子
ubuntu cp210x(USB转串口)驱动安装教程
介绍了下载某官方驱动编译时编译不通过的问题,原因是代码问题。本篇主要讲系统环境引起的安装失败的问题。主要涉及错误点:Kernel configuration is invalid;Invalid module format。
1. Kernel configuration is invalid
详细报错信息:
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run ‘make oldconfig && make prepare’ on kernel src to fix it.
但是当执行make oldconfig && make prepare命令时可能仍会出错。如错误信息,缺少相关的系统配置文件,如果确实缺少可通过
make menuconfig #自己配置
然后在源码目录下执行 /usr/src/<kernel-version>
e.g. /usr/src/linux-headers-5.15.0-88-generic
make oldconfig
make prepare
make scripts
注:有时执行make menuconfig也会出错,错误如果类似
LEX scripts/kconfig/lexer.lex.c
/bin/sh: 1: flex: not found
make[1]: *** [scripts/Makefile.host:9: scripts/kconfig/lexer.lex.c] Error 127
此时可能因为缺少词法解析器flex,和语法解析器bison,可通过下述命令安装
sudo apt install flex
sudo apt install bison
2. Invalid module format
安装驱动文件可能会出现 Invalid module format现象
insmod: ERROR: could not insert module cp210x.ko: Invalid module format
出错后,使用dmesg查看错误日志,如下:
dmesg
module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1.....
2.1 第一种情况:内核模块编译的环境与现在insmod想要运行的环境不一致
也就是说,编译时内核的版本和现在安装的内核版本不一致。可能由于系统存在多个版本的内核,编译时运行的内核和安装时的内核版本不一致。可以检查是否出现编译后重启系统进入了其他版本的内核,或者makefile里面的内核是否写的正确,
KERNEL_DIR := /lib/modules/$(shell uname -r)/build
2.2 第二种情况:内核编译的问题
实际上,上述可能很多问题都是由于内核编译的问题,如果上述都不能解决问题,需要重新编译内核版本
sudo apt update && sudo apt upgrade
sudo apt remove --purge linux-headers-<kernel-version>
sudo apt autoremove && sudo apt autoclean
sudo apt install linux-headers-<kernel-version>
e.g. linux-headers-5.15.0-88-generic
结束
结束后重新编译和安装驱动即可
make
cp cp210x.ko to /lib/modules/<kernel-version>/kernel/drivers/usb/serial
insmod /lib/modules/<kernel-version/kernel/drivers/usb/serial/usbserial.ko
insmod cp210x.ko
更多推荐
所有评论(0)