menuconfig 图形化配置

menuconfig 图形化配置  uboot或Linux内核可以通过输入“makemenuconfig”来打开图形化配置界面,menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面  menuconfig重点会用到两个文件:.config和Kconfig,.config文件保存着uboot或Linux内核的配置项,使用menuconfig配置完uboot或Linux内核以后肯定要更新.config

大家好,又见面了,我是你们的朋友全栈君。

  uboot 或 Linux 内核可以通过输入“make menuconfig”来打开图形化配置界面, menuconfig是一套图形化的配置工具,需要 ncurses 库支持。 ncurses 库提供了一系列的 API 函数供调用者生成基于文本的图形界面
  menuconfig 重点会用到两个文件: .config 和 Kconfig, .config 文件保存着 uboot或 Linux 内核 的配置项,使用 menuconfig 配置完 uboot或 Linux 内核 以后肯定要更新.config 文件。 Kconfig文件是图形界面的描述文件,也就是描述界面应该有什么内容,很多目录下都会有 Kconfig 文件。
  关于 Kconfig的详细语法介绍,可以参考 linux 内核源码(不知为何 uboot 源码中没有这个文件)中的文件Documentation/kbuild/kconfig-language.txt

一、Kconfig 语法简介

1.1、 mainmenu

  顾名思义 mainmenu 就是主菜单,也就是输入“make menuconfig”以后打开的默认界面

1.2、调用其他目录下的 Kconfig 文件

  和 makefile 一样, Kconfig 也可以调用其他子目录中的 Kconfig 文件,调用方法如下:
  source “xxx/Kconfig” //xxx 为具体的目录名,相对路径

1.3、 menu/endmenu 条目

  menu 用于生成菜单, endmenu 就是菜单结束标志,这两个一般是成对出现的。

1.4、 config 条目

  config 条目就是具体配置项。以 config 关键字开头,后面跟着的就是配置项名字。.config 文件中的“CONFIG_xxx” (xxx 就是具体的配置项名字)就是 Kconfig 文件中 config 关键字后面的配置项名字加上“CONFIG_”前缀。
  config 关键字下面的这几行是配置项属性,属性里面描述了配置项的类型、输入提示、依赖关系、帮助信息和默认值等。

1.5、 depends on 和 select

  “depends on”说明“A”项依赖于“B”,也就是说“B”被选中以后“ A”才能被选中

1.6、 choice/endchoice

  choice/endchoice 代码段定义了一组可选择项,将多个类似的配置项组合在一起,供用户单选或者多选。

1.7、 menuconfig

  menuconfig 和 menu 很类似,但是 menuconfig 是个带选项的菜单

1.8、 comment

  comment 用 于 注 释 , 也 就 是 在 图 形 化 界 面 中 显 示 一 行 注 释

1.9、 source

  source 用于读取另一个 Kconfig

二、添加自定义菜单

  图形化配置工具的主要工作就是在.config 下面生成前缀为“CONFIG_”的变量,这些变量一般都要值,为 y, m 或 n,在 uboot 源码里面会根据这些变量来决定编译哪个文件。添加自定义菜单要求如下:
  ①、在主界面中添加一个名为“My test menu”,此菜单内部有一个配置项。
  ②、配置项为“MY_TESTCONFIG”,此配置项处于菜单“My test menu”中。
  ③、配置项的为变量类型为 bool,默认值为 y。
  ④、配置项菜单名字为“This is my test config”。
  ⑤、配置项的帮助内容为“This is a empty config, just for tset!”。
  打开顶层 Kconfig,在最后面加入如下代码:

menu "My test menu"
config MY_TESTCONFIG
 bool "This is my test config"
 default y
 help
  This is a empty config, just for test!
endmenu # my test menu

  Kconfig 文件的最终目的就是在.config 文件中生成以“CONFIG_”开头的变量。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142827.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eXtremeDB XML[通俗易懂]

    eXtremeDB XML[通俗易懂]ForC/C++applicationstheeXtremeDBschemacompileroption“–x”causes mcocomptogenerateinterfacefunctionstoretrieve,createandreplace(update) thecontentsofanobjectwiththecontent

    2022年10月14日
    1
  • vue v-if 多条件_vue vnode

    vue v-if 多条件_vue vnodev-if在模板中,可以根据条件进行渲染。条件用到的是v-if、v-else-if以及v-else来组合实现的。示例代码如下:<divid="app"><p

    2022年8月7日
    7
  • Vue刷新页面的三种方式[通俗易懂]

    Vue刷新页面的三种方式[通俗易懂]我们在写项目的时候,经常会遇到,用户执行完某个动作,改变了某些状态,需要重新刷新页面,以此来重新渲染页面。如:用户登录成功、增加、删除、更新等。原始方法:location.reload();vue自带的路由跳转:this.$router.go(0);用过的人都知道,前两者都是强制刷新页面,会出现短暂的闪烁,用户体验效果不好。所以,我们选择第三种方式:3.首先在App里面…

    2022年10月17日
    3
  • redis RDB持久化方式的工作原理是怎样的_杜兰特挽留纳什

    redis RDB持久化方式的工作原理是怎样的_杜兰特挽留纳什我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的,持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面,比如你redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用,重启redis,尽快让它对外提供服务。………

    2025年6月6日
    3
  • 二维码生成器小程序_小程序二维码制作

    二维码生成器小程序_小程序二维码制作使用Taro框架写小程序,生成二维码,在微信开放平台找到一个特别好用的二维码生成器(可在原生小程序,mpvue,taro中使用)文档地址:微信开放平台文档地址)github地址:github地址,有详细的描述在taro中使用1、安装npmiwxmp-qrcode2、使用importQRfrom’wxmp-qrcode'<canvasid={this.state…

    2025年6月13日
    2
  • 倒立摆matlab仿真程序_倒立摆状态空间建模

    倒立摆matlab仿真程序_倒立摆状态空间建模Matlab程序设计上交作业要求1纸质文档设计分析报告一份包括系统建模、系统分析、系统设计思路、程序及其执行结果。2Matlab程序按班级统一上交后备查。题目一考虑如图所示的倒立摆系统。图中倒立摆安装在一个小车上。这里仅考虑倒立摆在图面内运动的二维问题。图倒立摆系统假定倒立摆系统的参数如下。摆杆的质量m=0.1g摆杆的长度2l=1m小车的质量M=1kg重力加速度g=10…

    2022年8月18日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号