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

编译Linux驱动时出现vmlinux段头偏移过大错误求助

编译Linux驱动时vmlinux段头偏移量过大错误的解决方法

问题描述

编译驱动时执行命令:

make -C /home/doney/100ask_imx6ull_mini-sdk/Linux-4.9.88 M=`pwd` modules 

出现如下错误:

make[1]: Entering directory '/home/doney/100ask_imx6ull_mini-sdk/Linux-4.9.88'
  Building modules, stage 2.
  MODPOST 1 modules
FATAL: section header offset=11259037725229108 in file 'vmlinux' is bigger than filesize=20304380
scripts/Makefile.modpost:91: recipe for target '__modpost' failed
make[2]: *** [__modpost] Error 1
Makefile:1502: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/home/doney/100ask_imx6ull_mini-sdk/Linux-4.9.88'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2

已尝试make clean和make dtbs操作,问题未解决。

解决步骤

  • 重新编译内核vmlinux文件

    1. 进入内核源码目录:
      cd /home/doney/100ask_imx6ull_mini-sdk/Linux-4.9.88
      
    2. 执行全量编译(利用多核加速):
      make -j$(nproc)
      
    3. 编译完成后回到驱动目录,重新执行驱动编译命令。
  • 检查并修复vmlinux文件完整性

    1. 查看vmlinux文件大小:
      ls -lh /home/doney/100ask_imx6ull_mini-sdk/Linux-4.9.88/vmlinux
      
    2. 如果文件大小异常或损坏,删除后单独编译vmlinux:
      rm /home/doney/100ask_imx6ull_mini-sdk/Linux-4.9.88/vmlinux
      make -C /home/doney/100ask_imx6ull_mini-sdk/Linux-4.9.88 vmlinux
      
  • 验证驱动编译配置

    1. 检查驱动Makefile,确认内核路径指定正确,无参数冲突;
    2. 确认驱动代码与Linux 4.9.88版本兼容,未使用高版本内核专属API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:22:37