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


相关推荐

  • 4个主要的map实现类介绍

    4个主要的map实现类介绍一、简单介绍map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍):HashMap:我们最常用的Map,HashMap的值是没有顺序的,他是按照key的HashCode来实现的,就是根据key的HashCode值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问…

    2022年5月30日
    32
  • pycharm上方的运行栏隐藏了_pycharm工具栏怎么调出来

    pycharm上方的运行栏隐藏了_pycharm工具栏怎么调出来pycharm顶部菜单栏不见,两种处理方法,处女座福音方法一:踩坑搜索,全网都是这样的:双击Shift键盘,点击Actions,搜索view,找到MainMenu,打开,ok方法二:曲线救国我找了半天,发现能进设置界面,随便点一个进入设置点击快捷键,将主菜单设置一个快捷键,这里我设置的W+W设置完成,应用界面上双击WW,就出现了主菜单,再把主菜单打开,完美。。…

    2022年8月27日
    11
  • Laravel 上传excel,读取并写入数据库 (实现自动建表、存记录值

    Laravel 上传excel,读取并写入数据库 (实现自动建表、存记录值

    2021年10月24日
    83
  • docker安装elasticsearch 7.6.2「建议收藏」

    docker安装elasticsearch 7.6.2「建议收藏」小伙伴们,你们好呀!我是老寇!安装elasticsearch的教程数不胜数,本文的安装方式是经过自己测试的,因此分享给有需要的小伙伴,一来是避免小伙伴少走弯路,二来方便后面知识的整合。本文是基于ES7.6.2的版本进行安装的,话不多说,我们开始吧。目录一、提前条件二、安装过程1.拉取镜像2.启动容器3.配置文件4.设置密码5.退出容器6.重启容器7.谷歌插件一、提前条件谷歌插件:elasticsearch-head服务器:centos7.5(

    2022年6月6日
    64
  • quartus波形仿真破解MODELSIM「建议收藏」

    quartus波形仿真破解MODELSIM「建议收藏」(1)对于Quartus14.0安装时自动安装了modelsim的ae和ase两个版本,分别位于D:\ProgramFiles\altera\14.0\modelsim_ase和D:\ProgramFiles\altera\14.0\modelsim_ae目录下(根据自己的安装路径而定)。其中ae是免费的,包含有altera的FPGA芯片,而ase除了altera的外,还有xilinx的,库更…

    2022年5月24日
    56

发表回复

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

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