当执行#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

在界面中如下所示:

5.source条目

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

source "net/Kconifg"

Kconfig详解的更多相关文章

  1. Kconfig详解-文件的基本要素 ***

    当执行make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会 ...

  2. 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解

    本文转自:http://www.topeetboard.com 视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.c ...

  3. Android源码下载方法详解

    转自:http://www.cnblogs.com/anakin/archive/2011/12/20/2295276.html Android源码下载方法详解 相信很多下载过内核的人都对这个很熟悉 ...

  4. Iptables详解七层过滤

    <Iptables详解七层过滤> 一.防火墙简介 防火墙其实就是一个加固主机或网络安全的一个设备或者软件而已,通过防火墙可以隔离风险区域与安全区域的连接,同时不会妨碍风险区域的访问.当然需 ...

  5. nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级

    如何在nRF Connect SDK(NCS)中实现蓝牙空中升级?MCUboot和B0两个Bootloader有什么区别?MCUboot升级使用的image格式是怎么样的?什么是SMP协议?CBOR编 ...

  6. UBOOT编译--- make xxx_deconfig过程详解(一)

    make xxx_deconfig过程详解 1. 前言 2. 概述 3. build变量的定义 4. 目标%config的定义 4.1 依赖 scripts_basic 4.1.1 语句$(if $ ...

  7. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  8. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  9. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

随机推荐

  1. PHP常用函数总结(一):

    <?php echo "<pre>"; //===============================时间日期======================== ...

  2. 关于android webview 设置cookie的问题

    转自:http://blog.csdn.net/encienqi/article/details/7912733 我们在android中访问网络经常会用到Apache的HttpClient,用此类去访 ...

  3. 线性代数之SVD与PCA

    [作者:byeyear    Email:east3@163.com    首发www.cnblogs.com    转载请注明] 回忆学校的美好时光,一起来复习下曾经的课程吧. 1. SVD推荐am ...

  4. 峰Spring4学习(3)注入参数的几种类型

    People.java  model类: package com.cy.entity; import java.util.ArrayList; import java.util.HashMap; im ...

  5. R语言学习——R读取txt、csv、xls和xlsx格式文件

    最近项目中运用到了R读取文件数据,所以把相关好用的.经过验证的方法总结了一下,有效避免下次入坑. 1. R读取txt文件 使用R读取txt文件直接使用read.table()方法进行读取即可,不需要加 ...

  6. Linux-mail设置

    邮箱文件设置 #配置发邮件 /etc/mail.rc中追加 set bsdcompat set from=c4kaichen@163.com .com set smtp-auth-user=c4kai ...

  7. make menuconfig时出现 #include CURSES_LOC错误

    In :: scripts/kconfig/lxdialog/:: fatal error: curses.h: 没有那个文件或目录 #include CURSES_LOC ^ compilation ...

  8. 关闭浏览器时的友情提醒jQuery写法

    $(window).bind('beforeunload', function () { return '您确定退出该页面吗?'; }); 支持以下浏览器(对号表示支持,叉号表示不支持.):

  9. 原生态的javascript的n种技巧(我从别人的博客中拷贝过来的,方便以后查阅)

    1.原生JavaScript实现字符串长度截取 function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\x ...

  10. python输出格式化及函数format

    格式    描述%%     百分号标记%c     字符及其ASCII码%s     字符串%d     有符号整数(十进制)%u     无符号整数(十进制)%o     无符号整数(八进制)%x ...