scripts/kconfig/mconf arch/arm/Kconfig
make menuconfig
相关文件:
1.默认配置文件
<arch/arm/configs/ EPC-M28x_defconfig >
设置默认配置
启动界面
内核源码每个子目录中,都有个Makefile 文件和Kconfig 文件。Kconfig 用于配置内核,他就是各种配置见面的源文件。内核的配置工具读取界面的源文件。内核的配置工具读取各Kconfig 文件,最终生成文件.config
Kconfig 基本语法
如程序清单所示代码摘自<drivers/char/Kconfig>文件,是一个比较典型的 Kconfig
文件片段,包含了 Kconfig 的基本语法。
程序清单 drivers/char/Kconfig 片段
menu "Character devices"
source "drivers/tty/Kconfig"
config DEVKMEM
bool "/dev/kmem virtual device support"
default y
help
Say Y here if you want to support the /dev/kmem device. The
/dev/kmem device is rarely used, but can be used for certain
kind of kernel debugging operations.
When in doubt, say "N".
……
endmenu
子菜单
通过 menu 和 endmenu 来定义一个子菜单, 程序清单 1.1 所示代码定义了一个“Character
devices” 子菜单,子菜单在界面中用“--->”表示
子菜单的菜单项则由 config 来定义,随后的“bool”、“default”、“help” 等都是该菜单
项的属性:
config DEVKMEM
bool "/dev/kmem virtual device support"
这两行语句定义了一个bool选项,在.config中的配置变量名称为CONFIG_DEVKMEM,
选项提示信息为“/dev/kmem virtual device support”,在内核配置界面的实际表现为:
[*] /dev/kmem virtual device support
由于设置其默认属性 default 为 y, 所以该选项默认选中。
help 引出帮助信息, 在内核配置界面, 选择选项后, 通过<Help>可以查看帮助信息。
属性
类型定义:每个菜单项都必须定义类型, 可选类型有: bool、 tristate、 string、 hex 和 int,
各类型描述如表 1.3 所列。
表 1.3 菜单项类型和说明
类型 | 说明 | 示例 |
bool | 布尔型,可能值为 0 或者 1,只有选中与不 选中两种状态 |
config DEVKMEM bool "/dev/kmem virtual device support" |
tristate | 三态型,可能值为 0、 1 或者 2,有选中、 模块和不选 3 种状态 |
config IKCONFIG tristate "Kernel .config support" |
string | 字符串,用于填入字符串,如设置交叉编 译器,或者内核命令行参数等 |
config CMDLINE string "Default kernel command string" |
hex | 十六进制,常用于填写地址信息 | config PAGE_OFFSET hex default 0x40000000 if VMSPLIT_1G default 0x80000000 if VMSPLIT_2G default 0xC0000000 |
int | 整型,用于填写数目,如 CPU 处理器个数、 系统 Hz 数等 |
config NR_CPUS int "Maximum number of CPUs (2-32) |
range 2 32 depends on SMP default "4" |
定义选项的类型后面可以加菜单信息,用引号(“”)给出,留空则不加提示信息。
对于布尔型选项,在配置界面用[ ]表示:
[*] /dev/kmem virtual device support
[*]表示选中, 对应 CONFIG_XXX=y, [ ]则表示未选中。
对于三态选项, 在配置界面用< >表示:
<*> Kernel .config support
<*>表示选中, 对应 CONFIG_XXXx=y, <M>表示编译为模块, 对应 CONFIG_XXX=m,
< >表示未选中。
子菜单也可同时设置类型,如下列代码在定义 PWM 菜单的同时定义了菜单属性为三态:
menuconfig GENERIC_PWM
tristate "PWM Support"
default n
help
Enables PWM device support implemented via a generic
framework. If unsure, say N.
在配置界面表现为:
< > PWM Support --->
说明:子菜单的配置值会影响其子选项的可能值。例如三态子菜单配置为<y>,则其三
态子选项依旧可有 3 种可能值,即可配置为<y>、 <M>或者不选中;而三态子菜单配置为<M>,
则其子选项只有<M>和不选中两种状态可用。
默认值:有写选项可以设置默认值,无论是哪种类型,都可以通过 d