You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

内核模块插入报错Invalid module format,求可行解决方法

解决insmod提示"Invalid module format"的内核模块加载问题

问题根源

内核模块的编译必须与当前运行的内核版本完全匹配——你用4.15.0-23-generic版本的内核头文件编译的hello.ko,无法适配当前运行的5.4.0-132-generic内核,二者的内核ABI(应用二进制接口)不兼容,导致模块格式验证失败。

解决步骤

  • 安装当前运行内核的对应头文件
    执行以下命令自动安装匹配版本的内核头文件:

    sudo apt install linux-headers-$(uname -r)
    

    其中$(uname -r)会自动读取当前运行的内核版本(即5.4.0-132-generic),确保安装的头文件版本完全一致。

  • 重新编译内核模块

    1. 清理之前的编译产物:make clean
    2. 执行编译命令(确保你的Makefile使用系统默认的内核头文件路径,比如/lib/modules/$(shell uname -r)/build,无需手动修改路径):make
    3. 编译完成后,会生成适配5.4.0-132-generic内核的新hello.ko文件。
  • 重新加载模块
    执行插入命令:

    sudo insmod bin/hello.ko
    

额外注意事项

  • 内核ABI与内核版本强绑定,哪怕是同一主版本下的小版本差异,都可能导致模块加载失败,必须保证编译环境的内核头文件版本与运行内核版本完全一致。
  • 如果需要在多个内核版本下使用该模块,可以使用DKMS工具,它能自动为已安装的所有内核版本编译适配的模块。

内容的提问来源于stack exchange,提问作者Venu Aditya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:05:59