1. menuconfig 的存在意义
原由是 项目的 config 项太多了,需要一个人性化的方式设置。
menuconfig 背后是一个应用程序,用户和该应用程序交互,完成 config 设置。
2. menuconfig 本质是什么
当在 kernel 目录执行 make menuconfig
[root@localhost kernel]# make menuconfig
scripts/kconfig/mconf arch/arm/Kconfig
可知 make menuconfig 本质是 执行 scripts/kconfig/mconf 程序,其参数是 arch/arm/Kconfig
scripts/kconfig/mconf 是基于 ncurses-devel 的应用, ncurses 是一个图像化库。
首次执行 make menuconfig 时,进入 scripts/kconfig 进行对 mconf 的编译
3. mconf 及其配置文件
大多数应用程序都有配置文件,mconf也不列外,
输入配置文件为 Kconf
输入输出配置文件 .config
mconf 根据 Kconf 决定如何显示和交互规则,根据.config 载入已经被选择的设置。
mconf save 会将配置回写如 .config
4. Kconfig 关键字
config XXX # 表示一个CONFIG项,会对应 .config 中的 CONFIG_XXX
bool "xxxx" # bool说明对应CONFIG项只有两种选项(加入内核或不加入),"xxx"是说明语句,GUI 中前面为 []
depend on xxx # 说明本CONFIG依赖于 xxx,因此设置本CONFIG的前提是设置xxx配置
default y/n # 本选项默认是开启或关闭
string "xxx" # 对应CONFIG项为输入字符串, GUI中前面为 ()
select xxx # 只要本CONFIG 被开启,则下面的select 也会被开启
tristate xxx # 本CONFIG有三个选择,加入内核/不开启/编译成模块,但连接入内核
menu xxx
endmenu # 这只是一个菜单,里面有很多CONFIG
menuconfig # 自身是一个CONFIG,并且是菜单
手机扫一扫
移动阅读更方便
你可能感兴趣的文章