linux 内核配置

内核的配置由 以CONFIG 为前缀的 CONFIG_FEATURE 形式的配置选项决定。

配置选项决定了以下两个方面:

1)哪些文件被编译

2)预处理器指令处理哪些代码

 

配置选项通过 bool 选项 及 tristate 选项 来控制编译过程。bool 选项的值为 yes 和 no,tristate 选项的值

为yes, no, module.  选择 module 时,表示将代码编译成可动态加载进内核的模块。选择 yes 时,表示将代码显示地

编译至内核映像中而不是作为一个可加载的模块。设备驱动的代码通常使用配置选项 tristate 。

 

配置选项也可以是 string 或者 int 。这些控制选项并不会控制内核的编译过程,而是被内核当作预处理宏来进行

值的传递。

 

内核提供了多种配置工具以方便对内核的相关代码进行配置:

$ make config

该工具会遍历每一个配置选项,每一个选项都会寻问用户并由用户选择其值。该工具会大量占用用户的时间。

通常建议开发者使用基于 ncurses 的图形化工具:

$ make menuconfig

 

当配置完成之后会在内核源码的根目录生成一个 .config 文件。

以下是使用 freescale 的 imx6 进行内核配置的样例:

$ make distclean // clean kernel configurations
$ make imx6_defconfig // config kernel
$ make uImage // generate uImage
$ make // generate modules

 

posted @ 2015-04-07 09:43  阿青1987  阅读(179)  评论(0编辑  收藏  举报