内核配置与编译宏观分析
通过配置,我们可以控制各功能是否被使用,以及配置一些参数给内核
主要涉及Kconfig、.config、menuconfig、Makefile
1.涉及文件详览
- Kconfig位于kernel源码内大部分的文件夹中,是一种特殊格式的文件,负责提供kernel各个功能的配置选项,需要注意的是,Kconfig仅仅负责提供配置选项本身,而不提供各选项的值。其具体语法分析详见kernel中的Kconfig详尽分析
- .config产生于配置阶段,是arch/arm/configs/xxx_defconfig的复制品,而xxx_defconfig是原厂提供的各个配置项的值,里面都是CONFIG_开头的变量,以CONFIG_DM9000为例,其默认值为y:
CONFIG_DM9000=y
- menuconfig是kernel提供的一个工具,可以方便的阅读所有Kconfig、可以方便的修改.config,如果分别在menuconfig中修改配置选项的值为:Y或N或M,则.config中的变量会自动变为:值为y或未被定义或值为m
- 主Makefile没什么好多说的,里面的伪目标是所有配置操作的入口;各个子Makefile根据 .config中CONFIG_开头的变量来判断各个文件是否被编译。例:
obj-$(CONFIG_DM9000) += dm9000.o
这句表示,如果CONFIG_DM9000变量值为y&#