当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig。 Kconfig的作用:Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置件.config。 Kconfig的语法可以参考“Documentation/kbuild/kconfig-language.txt” Kconfig文件的基本要素: 1.config条目(entry) config TMPFS_POSIX_ACL bool "Tmpfs POSIX Access Control Lists" depends on TMPFS select GENERIC_ACL help POSIX Access Control Lists (ACLs) support permissions for users and groups beyond the owner/group/world scheme. To learn more about Access Control Lists, visit the POSIX ACLs for Linux website <http://acl.bestbits.at/>. If you don't know what Access Control Lists are, say N. 解析: config是关键字,表示一个配置选项的开始;紧跟着的TMPFS_POSIX_ACL是配置选项的名称,省略了前缀"CONFIG_" bool表示变量类型,即"CONFIG_ TMPFS_POSIX_ACL "的类型,有5种类型:bool、tristate、string、hex和int,其中tristate和string是基本的类型 bool变量的值: y和n tristate变量的值:y、n和m string变量的值: 字符串 bool之后的字符串“Tmpfs POSIX Access Control Lists”是提示信息,在配置界面中上下移动光标选中它时,就可以通过按空格或回车键来设置CONFIG_ TMPFS_POSIX_ACL的值 depends on:表示依赖于XXX,“depends on TMPFS”表示只有当TMPFS配置选项被选中时,当前配置选项的提示信息才会出现,才能设置当前配置选项 select与depends on是相反的逻辑关系: A depends on B 那么只有在B选中才能选A A select B 那么只要选中A就会选中B 2.menu条目 menu条目用于生成菜单,其格式如下: menu "Floating poing emulation" config FPE_NWFPE .............. config FPE_NWFPE_XP ............. endmenu menu之后的Floating poing emulation是菜单名,menu和endmenu间有很多config条目,在配置界面中如下所示: Floating poing emulation---> [] FPE_NWFPE [] FPE_NWFPE_XP 3.choice条目 choice条目将多个类似的配置选项组合在一起,供用户单选或多选 choice prompt "ARM system type" default ARCH_VERSATILE config ARCH_AAEC2000 ......... config ARCH_REALVIEW ......... endchoice prompt "ARM system type"给出提示信息“ARM system type”,光标选中后回车进入就可以看到多个config条目定义的配置选项,choice条目中定义的变量只有bool和tristate。 4.comment条目 comment条目用于定义一些帮助信息,出现在界面的第一行,如在arch/arm/Kconifg中有如下代码: menu "Floating point emulation" comment "At least one emulation must be selected" config FPE_NWFPE ......... config FPE_NWFPE_XP 5.source条目 source条目用于读取另一个Kconfig文件,如: source "net/Kconifg" (责任编辑:IT) |