首页 技术 正文
技术 2022年11月9日
0 收藏 612 点赞 4,793 浏览 859 个字

Kconfig是我们进行内核配置的关键文件,用于生成menuconfig的界面并生成最终确定编译选项的.config文件。关于Kconfig文件的编写规则,在Documentation/kbuild/kconfig-language.txt有详尽的叙述。这里主要用实例进行语法分析。

config

确定了条目前面是否有选项,menuconfig界面中的条目中一共有3种主动选项,分别是[ ],< >( ),分别表示”被编译进内核or舍弃”,”编译进内核or编译成模块or舍弃”, “按照提示输入一个数字”,分别对应Kconfig文件中的bool,tristateint{ }- -属于被动选项,是配置系统根据依赖关系自动生成的选项,不能被手动修改。

menu/endmenu

即图形界面中有--->的条目,回车后可以展开。条目前面没有选项

!

menuconfig

是menu和config的结合体,既在前面有选项,回车后也可以展开。

choice/endchoice

展开之后会有多选一的界面,每种选项都有独立的config管理

comment

if/endif

如果if之后的值被选定了,里面的内容才能展开

source

表示调用指定路径的Kconfig,相当于C中的include,上例已经给出说明

depends on

实现配置的相当关键的关键字,表示当前选项依赖于另外一个选项,如果另外一个不选,这个都不会出现。

select

另一个相当关键的关键字,表示当前选项需要另外选项的支持,如果选了当前选项,那么其后的选项会被强制选择,{ }- -就是这个实现的。下例中,只要这些Kconfig中进行了”select HAVE_ARM_ARCH_TIMER”,都会导致”HAVE_ARM_ARCH_TIMER”被强制选择,表现在menuconfig上就是”Architected timer support”被强制选定

.config文件分析

经过适当的配置之后保存就会在顶层目录下生成.config文件

=y表示该配置将会被编译进内核,=m表示该配置需要单独编译成模块

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,493
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295