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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WritePrivateProfileString函数说明[通俗易懂]

    WritePrivateProfileString函数说明[通俗易懂]在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:   一.将信息写入.INI文件中.   .所用的WINAPI函数原型为: BOOLWritePrivateProfileString(   LPCTSTRlpAppName,   LPCTSTRlpKeyN

    2022年7月14日
    23
  • 教程-添加 Codelf 到 Mac 效率神器 Alfred 实现一键搜索「建议收藏」

    教程-添加 Codelf 到 Mac 效率神器 Alfred 实现一键搜索「建议收藏」Why?这里有SublimeText插件,Atom插件,CodelfChromeApp,WebStorm插件,自己用的编辑器没有Codelf插件也请参考WiKi。但如果你用Mac上的效率神器Alfred,在任何桌面任何窗口,1秒就能一键搜索Codelf。Result?效果就是你在Alfred的搜索栏:输入”E”按Enter回车选中Codelf.输…

    2022年5月20日
    74
  • JavaScript实例教程

    JavaScript实例教程第一个javascript程序javascript放在head部分javascript放在body部分javascript放在head和body部分javascrip

    2022年7月1日
    21
  • java的输入输出格式

    java的输入输出格式不是特别完整和齐全,自己的一些小感悟,希望能帮助大家。对新手很友好,哈哈哈。输入:Scannerin=newScanner(System.in);新创建一个输入的Scanner对象,然后赋值给in,这个作用就是获取控制台的输入!!!in.nextInt()表示读入一个整数inta;表示定义一个变量a=in.nextInt();表示读入了一个数,把右边输入的值赋值给a。这里注意有一些规则,我们可以看到后面的类型名称首字母大写,大家可以记住这个小tip,养成好的代码风

    2022年7月9日
    15
  • 海量数据处理的方法总结

    海量数据处理的方法总结

    2021年10月5日
    44
  • 反射型XSS的利用「建议收藏」

    反射型XSS的利用「建议收藏」反射型XSS:用户输入的恶意代码,被执行。利用:它通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接才能引起。以前一直觉得反射型XSS危害不大,只能自己在客户端玩玩,实现弹窗。没想到,反射型XSS的利用比存储型还更容易,存储型XSS的利用还需结合CSRF.这篇博客很好的讲述了反射型XS…

    2022年5月4日
    96

发表回复

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

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