menuconfig


 

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,并且是菜单


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM