linux内核编译过程

在linux中和编译有关的配置文件有:

makefile:
Kconfig:
.config:全局的配置文件,由它决定makefile来编译哪些文件,一般是自动生成。
 
 在实际判断使用哪些配置选项时,不会直接修改.config文件,而且通过使用图形化界面(menuconfig)来配置内核,并把配置的结果保存成.config文件。在编译内核时,就根据makefile和.config选择编译哪些文件。
 每个开发平台都有一个可供参考的配置文件,如arch/arm/configs/xxxxxx_defconfig目录下的文件,都是硬件厂商提供的,针对硬件平台的配置文件。
 当我们执行make menuconfig就会读取源码目录下所有Kconfig内容,并生成界面中的选项菜单(如下图)
linux内核编译过程
关于kconfig的语法,在内核的开发文档中有详细的介绍,具体可以参看\Documentation\kbuild\kconfig-language.txt

Kconfig语法
 menu/endmenu     生成一个菜单,以endmenu结束
 menuconfig       定义一个配置选项,在这个选项下面还有一个子菜单
 config           定义一个配置选项
 choice/endchoice 定义一个选择项
 source           调用子目录下的Kconfig,生成一个子菜单
 
 菜单属性:
 bool     y/n: 
 tristate y/n/M: M表示编译成模块
 string
 hex
 int
 
 配置选项之间的依赖关系:
 depend on:某选项依赖于另外一个选项生成
 select   :反向依赖关系,该选项选中时,同时选中select后面定义的那一项
 requie
 默认值: default(默认y/n/m等值)
 输入提示:prompt
 帮助信息:help

posted on 2012-05-08 21:42  橡皮爹爹  阅读(2288)  评论(0编辑  收藏  举报

导航