Kconfig使用详解

当执行#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 :表示CONFIG_ TMPFS_POSIX_ACL被选中时,GENERIC_ACL也会被选中。

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.menuconfig

有点类似menu,但区别就在于menu后面多了一个config,这个menu是可以配置的,前面比menu类型多了一个方框,通过空格可以修改这个配置项的选中状态。而且从格式上来看,也是有区别的。格式如init/Kconfig中:
menuconfig MODULES
       bool "Enable loadable module support"config
if MODULES
xx

endif

也就是说,配置项是位于if和endif中。其中的部分就是MODULES子目录显示的内容。如果选中了MODULE,那么if和endif中的内容可以显示。如果没有定义,就只能进入一个空目录。 


4.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。

5.comment条目

   comment条目用于定义一些帮助信息,出现在界面的第一行,如在arch/arm/Kconifg中有如下代码:

menu "Floating point emulation"
comment "At least one emulation must be selected"
config FPE_NWFPE
.........                                                                               
config FPE_NWFPE_XP

在界面中如下所示:

6.source条目
   source条目用于读取另一个Kconfig文件,如:
        source "net/Kconifg"

参考:

https://blog.csdn.net/u011425939/article/details/80472324

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值