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