Linux驱动安装遇到的问题(Kernel configuration is invalid)(Invalid module format)

前言

Linux驱动编译和安装经常会遇到各种问题,上篇帖子

ubuntu cp210x(USB转串口)驱动安装教程

介绍了下载某官方驱动编译时编译不通过的问题,原因是代码问题。本篇主要讲系统环境引起的安装失败的问题。主要涉及错误点:Kernel configuration is invalidInvalid 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

相关推荐

  1. python安装cx_Oracle 遇到问题

    2023-12-11 00:32:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 00:32:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 00:32:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 00:32:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 00:32:02       18 阅读

热门阅读

  1. Mysql多表查询 思路 ——示例——sql顺序

    2023-12-11 00:32:02       41 阅读
  2. 米贸搜|facebook广告的素材及文案

    2023-12-11 00:32:02       36 阅读
  3. 做题笔记:SQL Sever 方式做牛客SQL的题目--VQ

    2023-12-11 00:32:02       31 阅读
  4. 数据库基础--关系模型、范式、SQL、索引、事务

    2023-12-11 00:32:02       39 阅读
  5. Docker入门:容器化原理

    2023-12-11 00:32:02       43 阅读
  6. 08 Python文件待更新

    2023-12-11 00:32:02       36 阅读
  7. html,css,开发知识,调试知识

    2023-12-11 00:32:02       33 阅读
  8. Class 与 Style 绑定

    2023-12-11 00:32:02       39 阅读