linux menuconfig搜索,linux–menuconfig

linux menuconfig搜索,linux–menuconfig|–linux内核中Makefile,Kconfig,.config的关系(1)三者的作用简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜Makefile:一个文本形式的文件,编译源文件的方法。Kconfig:一个文本形式的文件,内核的配置菜单。.config:编译所依据的配置。(2)三者的语法|–Makefile目标定义:目标定义就是用来定义哪…

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

|–linux内核中Makefile,Kconfig,.config的关系

(1)三者的作用

简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜

Makefile:一个文本形式的文件,编译源文件的方法。

Kconfig:一个文本形式的文件,内核的配置菜单。

.config:编译所依据的配置。

(2)三者的语法

|–Makefile

目标定义:目标定义就是用来定义哪些内容要做为模块编译,哪些要编译链接进内核。

直接编译:

obj-y  += hello.o

表示要由hello.c或者hello.s文件编译得到hello.o并链接进内核

而更常见的做法是根据.config文件的CONFIG_ 变量来决定文件的编译方式 :

条件编译:

obj-$(CONFIG_HELLO) += hello.o

obj-m则表示该文件要作为模块编译。

除了y,m以外的obj-x形式的目标都不会被编译。

|– Kconfig

类型定义:

每个config菜单项都要有类型定义: bool布尔类型、 tristate三态(内建、模块、移除)、

string字符串、 hex十六进制、integer整型。

eg:

config HELLO_MODULE

bool “hello test module”

bool 类型的只能选中或不选中,显示为[ ];

tristate类型的菜单项多了编译成内核模块的选项,显示为< > ,

假如选择编译成内核模块,则会在.config中生成一个 CONFIG_HELLO_MODULE=m的配置,

假如选择内建,就是直接编译成内核影响,就会在.config中生成一个CONFIG_HELLO_MODULE=y的配置.

hex十六进制类型显示为( )。

目录层次迭代

在Kconfig中有类似语句:source”drivers/usb/Kconfig”

用来包含(或嵌套)新的Kconfig文件,这样便可以使各个目录管理各自的配置内容,

使不必把那些配置都写在同一个文件里,方便修改和管理。

配置选项之间的依赖关系:

depend on:某选项依赖于另外一个选项生成

select   :反向依赖关系,该选项选中时,同时选中select后面定义的那一项

requie

默认值: default(默认y/n/m等值)

输入提示:prompt

帮助信息:help

|–.config

内核编译参考文件

修改方式:

(1)  make menuconfig

(2)  make xxx_defconfig

(3)  直接修改

!注意如果直接修改,不一定会生效,因为一些配置可能存在依赖关系,

make的时候会根据依赖关系进行规则的检查,不推荐直接在.config进行修改。

|–总结

输入命令make menuconfig修改相关配置

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

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

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


相关推荐

  • 不联网,ubuntu下安装gcc

    不联网,ubuntu下安装gcc1.下载 在GCC网站上(http://gcc.gnu.org/)或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为3.4.0。可供下载的文件一般有两种形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。 2.解压缩 根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符

    2022年7月24日
    28
  • java.lang.AbstractMethodError异常

    java.lang.AbstractMethodError异常前言:今天APP在客户华为Android10版本手机上闪退,报如下异常,10以下版本无任何问题,异常信息也没有自己APP报错的堆栈信息,无法直接定位到是那行代码导致的问题,苦逼了半天,梳理思路,终于解决了。分析:由于APP没有做Q版本适配,难道不兼容吗?于是安装Q版模拟器进行复现问题,直接运行安装发现没有闪退,难道是只有在华为手机上才出现问题吗?为了验证这个观点,就用客户相同的安装包进行…

    2022年6月2日
    36
  • @JsonIgnore作用「建议收藏」

    @jsonignore的作用作用是json序列化时将javabean中的一些属性忽略掉,序列化和反序列化都受影响。如下:packagecom.hzboy.orm;importjava.util.List;importjavax.persistence.CascadeType;importjavax.persistence.Column;importj

    2022年4月11日
    121
  • 组合之分苹果问题(22)[通俗易懂]

    组合之分苹果问题(22)[通俗易懂]1问题将n个苹果分给m个人,苹果都一样,人都一样。如果把4个苹果分给3个人,121112211是一种可能。问一共有多少种方法。2分析1当苹果比人数少时,就等同于将等数量的苹果分给等数量的人,因为人数较多,空的人都一样,所以做等效处理。比如2个苹果分给3个人和2个苹果分给2个人结果是一样的。2当苹果数<=人数时,等效于:有人没有苹果和所有人都分到苹果两种可能,然…

    2022年10月11日
    4
  • 常用的运维组合命令

    常用的运维组合命令

    2022年3月4日
    38
  • 虚拟机扩容磁盘后扩容分区_如何将磁盘主分区设置为活动分区

    虚拟机扩容磁盘后扩容分区_如何将磁盘主分区设置为活动分区当服务器数据太多的时候,硬盘不足的时候就得考虑扩容,为了不影响业务的正常运行,一般云服务器的本地磁盘都是不支持分区的,因为业务数据通常是不能中断和移动的,无论是增加硬盘或在原有磁盘增加分区的方式扩容,势必会存在卸载、挂载、移动等操作。所以对于云硬盘,如果我们要把他作为数据盘。即使能分区,也最好不要分区,以免以后扩容麻烦。以下用虚拟机看一下对未分区磁盘扩容的效果[root@k8s-node01…

    2022年8月30日
    5

发表回复

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

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