linux .config 生成过程

       linux 中 make 命令执行的时候会递归搜索所有被include的文件,如果有目标则执行该目标,如果没有目标则执行默认的目标

       我们在make defconfig,make menuconfig,make xconfig .... 的时候,这些目标在/scripts/kconfig/Makefile中定义,现在简单了解下以下两个命令产生的结果如何:

                      export ARCH=arm

                      make defconfig

       前一条指令导入一个系统变量,为后一条指令使用

       make defconfig 首先生成两个文件,分别位于/scripts/basic/fixdep (不清楚用处) , 和/scripts/kconfig/conf .而conf则是生成.config的程序

       若我们执行 make defconfig,会看到有 "versatile_defconfig“ 字样输出,说明我们生成的.config文件是依赖于该文件的,我们可以手动复现这一过程:

          将scripts/kconfig/conf 复制到源码根目录

         执行:  ./conf --defconfig=arch/arm/configs/versatile_defconfig arch/arm/Kconfig

                   则会在当前根目录下生成.config配置文件,与 第一步生成的.config 文件做比较,除了kernel version没有赋值(KERNELVERSION)之外,其余的都一致

        

          初步推测,若 versatile_defconfig中指定某个变量为y,那么生成的.config文件中就会引入,否则会根据Kconfig中包含的所有Kconfig的默认值来生成每个宏的值

          在 arch/ARCH/Kconfig 会包括诸多的Kconfig文件,包括的每个文件中,某些select 后面的配置变量会根据包含该select的条件来生成宏的值

          下一步,分析conf源码......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值