zoukankan      html  css  js  c++  java
  • 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配置选项被选中时,当前配置选项的提示信息才会出现,才能设置当前配置选项

    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

     

    在界面中如下所示:

    内核Kconfig详解

    5.source条目

       source条目用于读取另一个Kconfig文件,如:

            source "net/Kconifg"

  • 相关阅读:
    Unique Binary Search Trees 解答
    Unique Paths II 解答
    Unique Paths 解答
    Maximum Subarray 解答
    Climbing Stairs 解答
    House Robber II 解答
    House Robber 解答
    Valid Palindrome 解答
    Container With Most Water 解答
    Remove Duplicates from Sorted List II 解答
  • 原文地址:https://www.cnblogs.com/Daniel-G/p/3284791.html
Copyright © 2011-2022 走看看