scripts/mod/modpost

本文解决Linux内核编译过程中scripts/mod/modpost文件缺失的问题,通过调整makefile中modpost的生成顺序,确保在调用前文件已正确生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述如下:

Building modules, stage 2.

  MODPOST 1 modules

/bin/sh: scripts/mod/modpost: No such file or directory

make[6]: *** [__modpost] Error 127

make[5]: *** [modules] Error 2

就是scripts/mod/modpost这个文件不存在,ls一看内核下面确实没有生成这个东西。

接下来就该想,这个东西是怎么生成的,为什么没有?这样你就会找到原因,修改后,得到你想要的结果。

我的情况是:

这个modpost是在make linux的时候生成的。

PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
        $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
        @echo '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild

在最外层的makefile中,linux在我调用modpost的时候还没有make,所以就提示找到不文件。

改动方法很那个啥,调换了linux的make顺序。

DESCEND objtool HOSTCC scripts/mod/modpost.o INSTALL libsubcmd_headers CC /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/exec-cmd.o scripts/mod/modpost.c: In function ‘addend_arm_rel’: scripts/mod/modpost.c:1178:7: error: ‘R_ARM_MOVW_ABS_NC’ undeclared (first use in this function); did you mean ‘R_ARM_THM_ABS5’? case R_ARM_MOVW_ABS_NC: ^~~~~~~~~~~~~~~~~ R_ARM_THM_ABS5 scripts/mod/modpost.c:1178:7: note: each undeclared identifier is reported only once for each function it appears in scripts/mod/modpost.c:1179:7: error: ‘R_ARM_MOVT_ABS’ undeclared (first use in this function); did you mean ‘R_ARM_THM_ABS5’? case R_ARM_MOVT_ABS: ^~~~~~~~~~~~~~ R_ARM_THM_ABS5 scripts/mod/modpost.c:1185:7: error: ‘R_ARM_CALL’ undeclared (first use in this function); did you mean ‘R_ARM_COPY’? case R_ARM_CALL: ^~~~~~~~~~ R_ARM_COPY scripts/mod/modpost.c:1186:7: error: ‘R_ARM_JUMP24’ undeclared (first use in this function); did you mean ‘R_ARM_PC24’? case R_ARM_JUMP24: ^~~~~~~~~~~~ R_ARM_PC24 scripts/mod/modpost.c:1190:7: error: ‘R_ARM_THM_MOVW_ABS_NC’ undeclared (first use in this function); did you mean ‘R_ARM_THM_ABS5’? case R_ARM_THM_MOVW_ABS_NC: ^~~~~~~~~~~~~~~~~~~~~ R_ARM_THM_ABS5 scripts/mod/modpost.c:1191:7: error: ‘R_ARM_THM_MOVT_ABS’ undeclared (first use in this function); did you mean ‘R_ARM_THM_ABS5’? case R_ARM_THM_MOVT_ABS: ^~~~~~~~~~~~~~~~~~ R_ARM_THM_ABS5 scripts/mod/modpost.c:1200:7: error: ‘R_ARM_THM_JUMP19’ undeclared (first use in this function); did you mean ‘R_ARM_THM_PC9’? case R_ARM_THM_JUMP19: ^~~~~~~~~~~~~~~~ R_ARM_THM_PC9 scripts/mod/modpost.c:1222:7: error: ‘R_ARM_THM_JUMP24’ undeclared (first use in this function); did you mean ‘R_ARM_THM_PC8’? case R_ARM_THM_JUMP24: ^~~~~~~~~~~~~~~~ R_ARM_THM_PC8 make[2]: *** [scripts/Makefile.host:133: scripts/mod/modpost.o] Error 1 make[1]: *** [/usr/src/kernels/linux-6.12.33/Makefile:1216: prepare0] Error 2 make[1]: *** 正在等待未完成的任务.... CC /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/help.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/pager.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/parse-options.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/run-command.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/sigchain.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/subcmd-config.o LD /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/libsubcmd-in.o AR /usr/src/kernels/linux-6.12.33/tools/objtool/libsubcmd/libsubcmd.a CC /usr/src/kernels/linux-6.12.33/tools/objtool/weak.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/arch/x86/special.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/arch/x86/decode.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/arch/x86/orc.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/check.o LD /usr/src/kernels/linux-6.12.33/tools/objtool/arch/x86/objtool-in.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/special.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/builtin-check.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/elf.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/objtool.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/orc_gen.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/orc_dump.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/libstring.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/libctype.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/str_error_r.o CC /usr/src/kernels/linux-6.12.33/tools/objtool/librbtree.o LD /usr/src/kernels/linux-6.12.33/tools/objtool/objtool-in.o LINK /usr/src/kernels/linux-6.12.33/tools/objtool/objtool make: *** [Makefile:224: __sub-make] Error 2 是什么意思,该怎么解决
最新发布
06-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值