uboot构建框架4-make *defconfig命令的过程追踪

本文深入探讨了U-Boot编译过程中的mys_imx6ull_14x14_nand_defconfig命令,分析了其与menuconfig的区别及conf程序的作用,揭示了配置文件生成的内部机制。

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

引入

还记得我们在文章《uboot构建框架1-总览》里面提到的米尔开发板uboot编译三个命令中的的第二个吗?就是:

sunke@droresrv:~/work/MYiR-iMX-Uboot$ make mys_imx6ull_14x14_nand_defconfig

道理还是一样的

在文章《make menuconfig命令的过程追踪》里面,我们追踪了menuconfig的执行流程。上述命令跟menuconfig还是有点相像的,目标都以config结尾。还记得我们提到过,以config结尾的目标,有个共同的入口吗?算了,不想让你们到处跳转了,这里再复制一次,看好了:

 %config: scripts_basic outputmakefile FORCE
        $(Q)$(MAKE) $(build)=scripts/kconfig $@

怎么样,就是menuconfig的那个入口,对于这个命令,我们不妨再次展开在这里:

$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.build obj=scripts/kconfig mys_imx6ull_14x14_nand_defconfig

这个比menuconfig要恶心一些,又臭又长。但是道理都是一样的,去到了Makefile.build,并且使用了两个目标:obj和mys_imx6ull_14x14_nand_defconfig,我们打开Makefile.build,在其59行,会展开为:

include ./scripts/kconfig/Makefile

打开./scripts/kconfig/Makefile,我们会看到第113行,有个模式规则:

%_defconfig: $(obj)/conf
    $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)

看到没,这个规则的目标匹配mys_imx6ull_14x14_nand_defconfig。但是跟menuconfig不同的是,依赖不再是mconf,而是conf。这个conf和mconf一样,也是个C语言程序,本机编译,运行在本机。具体使用方法可以参考--help选项。我们这里将这条命令展开,如下:

@scripts/kconfig/conf  --defconfig=arch/../configs/mys_imx6ull_14x14_nand_defconfig Kconfig

如上,最终调用了conf程序,使用了--defconfig参数选项和Kconfig命令行选项。这个conf程序,虽然我们没有展开分析,但是猜测应该和mconf类似,无非是conf没有图形界面,会根据指定的配置文件输入进行操作,最后生成的标准的.config等结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值