- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux kconfig详解及语法
2.6内核的源码树目录下一般都会有两个文件:Kconfig和Makefile。分布在
各目录下的 Kconfig构成了一个分布式的内核配置数据库,每个 Kconfig分别
描述了所属目录源文件相关的内核配置菜单。在内核配置make
menuconfig(或 xconfig等)时,从 Kconfig中读出配置菜单,用户配置完后保
存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这
个.config,就知道了用户对内核的配置情况。
上面的内容说明:Kconfig就是对应着内核的配置菜单。假如要想添加新的驱动
到内核的源码中,可以通过修改 Kconfig来增加对我们驱动的配置菜单,这样
就有途径选择我们的驱动,假如想使这个驱动被编译,还要修改该驱动所在目录
下的Makefile。
因此,一般添加新的驱动时需要修改的文件有两种(注意不只是两个)
*Kconfig
*Makefile
要想知道怎么修改这两种文件,就要知道两种文档的语法结构。
First: Kconfig
每个菜单项都有一个关键字标识,最常见的就是 config。
语法:
config symbol
options
!--[if !supportLineBreakNewLine]--
!--[endif]--
symbol就是新的菜单项,options是在这个新的菜单项下的属性和选项
其中 options部分有:
1、类型定义:
每个 config菜单项都要有类型定义,bool:布尔类型, tristate三态:内建、
模块、移除, string:字符串, hex:十六进制, integer:整型
例如 config HELLO_MODULE
bool hello test module
bool类型的只能选中或不选中,tristate类型的菜单项多了编译成内核模块的
选项,假如选择编译成内核模块,则会在.config中生成一个
CONFIG_HELLO_MODULE=m的配置,假如选择内建,就是直接编译成内核
影响,就会在.config中生成一个 CONFIG_HELLO_MODULE=y的配置.
2、依赖型定义 depends on或 requires
指此菜单的出现是否依赖于另一个定义
config HELLO_MODULE
bool hello test module
depends on ARCH_PXA
这个例子表明 HELLO_MODULE这个菜单项只对 XScale处理器有效,即
只有在选择了 ARCH_PXA, 该菜单才可见(可配置)。
3、帮助性定义
只是增加帮助用关键字 help或---help---
!--[if !supportLineBreakNewLine]--
!--[endif]--
更多详细的 Kconfigconfig语法可参考:
Second: 内核的Makefile
内核的Makefile分为 5个组成部分:
Makefile 最顶层的Makefile
.config 内核的当前配置文档,编译时成为顶层Makefile的一部分
arch/$(ARCH)/Makefile 和体系结构相关的Makefile
s/ Makefile.* 一些Makefile的通用规则
kbuild Makefile 各级目录下的大概约 500个文档,编译时根据上层
Makefile传下来的宏定义和其他编译规则,将源代码编译成模块或编入内核。
顶层的Makefile文档读取 .config文档的内容,并总体上负责 build内核和模
块。Arch Makefile则提供补充体系结构相关的信息。 s目录下的Makefile文
档包含了任何用来根据 kbuild Makefile 构建内核所需的定义和规则。
(其中.config的内容是在make menuconfig的时候,通过 Kconfig文档配
置的结果)
在 linux2.6.x/Documentation/kbuild目录下有详细的介绍有关 kernel
makefile的知识。
最后举个例子:
假设想把自己写的一个 flash的驱动程式加载到工程中,而且能够通过
menuconfig配置内核时选择该驱动该怎么办呢?能够分三步:
第一:将您写的 flashtest.c 文档添加到/driver/mtd/maps/ 目录下。
第二:修改/driver/mtd/maps目录下的 kconfig文档:
config MTD_flashtest
tristate “ap71 flash
这样当make menuconfig时 ,将会出现 ap71 flash选项。
第三:修改该目录下makefile文档。
添加如下内容:obj-$(CONFIG_MTD_flashtest)
您可能关注的文档
- Introduction The Traffic Models Experimental Setup Results Conclusions Extra Slides Markov.pdf
- Introduction to Financial Accounting Chapter 2.ppt
- Introduction to High-k Gate Stacksz.pdf
- INTRODUCTIONARY MICROECONOMICS - Efficiency_&_DWL_S1_2012_posted.pdf
- Introductory Remarks on The Extragalactic Infrared Background and its Cosmological Implicat.pdf
- Intuitionistic necessity revisited.pdf
- Inverse document frequency (IDF) A measure of deviations from Poisson.pdf
- Introduction to PAMiD.pdf
- Investigating the high energy QCD approaches for prompt photon production at the LHC.pdf
- Inverse optimal control for permanent magnet synchronous motor.pdf
- 2025浙江温州市公用事业发展集团有限公司面向高校招聘工作人考前自测高频考点模拟试题最新.docx
- 2025年蓬安县财政局下属单位招聘备考题库附答案.docx
- 广安市农业农村局2025年公开遴选市动物卫生监督所工作人员备考题库附答案.docx
- 南昌市劳动保障事务代理中心招聘3名劳务派遣驾驶员参考题库附答案.docx
- 2025浙江绍兴市新昌县机关事业单位招用编外聘用人员36人备考题库最新.docx
- 浙江国企招聘-2025嘉兴海盐县城市投资集团有限公司招聘7人笔试备考试题附答案.docx
- 长沙银行2026校园招聘备考题库最新.docx
- 2026年度中国地震局事业单位公开招聘备考题库附答案.docx
- 2025福建省晋江圳源环境科技有限责任公司招聘6人模拟试卷附答案.docx
- 浙江国企招聘-2025温州平阳县城发集团下属房开公司招聘5人公笔试备考试题附答案.docx
原创力文档


文档评论(0)