.config文件和Menuconfig以及Makefile参考学习

本文介绍了Linux内核配置过程中,MakeMenuconfig命令如何读取Kconfig生成配置界面,以及保存配置后更新.config文件。在make阶段,Makefile依据.config决定编译内容。同时,讲解了.config如何影响auto.conf和autoconf.h,分别作用于Makefile和源代码的编译条件。
摘要由CSDN通过智能技术生成

Linux内核Make Menuconfig 与 Makeifle间的交互_zhiweimai的博客-CSDN博客

以ARM平台为例,具体配置过程:

1.当执行make menuconfig 时,系统首先读取arch/arm/Kconfig生成整个配置界面

2.在读取配置界面的同时,系统会读取Kconfig文件,生成所有配置选项的默认值

3.当修改完配置并保存后,系统会更新顶层目录下的.config

4.当执行make时,各层的Makefile会根据.config文件中的编译选项来决定哪些文件会被编译到内核中,或者编译成模块。

Kconfig文件:在make menuconfig命令的时候读取的文件

.config文件 :是make menuconfig完成后的最终输出文件,内部包含了对内核所有的配置项

kconfig------->.config---------->makefile

linux-3.4.2/.config

CONFIG_CRYPTO_MD5=y 
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m

=y :表示直接编译进内核

=m:表示编译程模块   ko文件,可以动态加载到内核运行

在make的过程,Makefile会对.config进行解析,并输出两个文件include/config/auto.conf

CONFIG_CPU_S3C2442=y
CONFIG_MMC=y
CONFIG_CPU_S3C2443=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_ZISOFS=y
CONFIG_BUG=y
CONFIG_NFS_FS=y
CONFIG_MII=y
CONFIG_ARM=y
CONFIG_CRYPTO=y

 include/linux/autoconf.h

#define CONFIG_CPU_S3C2443 1
#define CONFIG_INITRAMFS_SOURCE ""
#define CONFIG_ZISOFS 1
#define CONFIG_BUG 1
#define CONFIG_NFS_FS 1
#define CONFIG_MII 1
#define CONFIG_ARM 1
#define CONFIG_CRYPTO 1
#define CONFIG_MTD_CFI_INTELEXT 1

auto.conf文件是作用于Makefile的,它是在定义Makefile变量。而autoconf.h是作用于源代码的,它是在定义一些的宏,匹配源码中的条件编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值