首页
学习
活动
专区
圈层
工具
发布

Kconfig与Makefile

毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。基本上,Linux内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。...Kconfig和Makefile就是Linux Kernel迷宫里的地图。地图引导我们去认识一个城市,而Kconfig和Makefile则可以让我们了解一个Kernel目录下面的结构。...利用Kconfig和Makefile寻找目标代 就像利用地图寻找目的地一样,我们需要利用Kconfig和Makefile来寻找所要研究的目标代码。...这时就有必要先去阅读Kconfig和Makefile文件。 对于Kconfig文件,我们可以看到下面的选项。...Kconfig和Makefile很好的帮助我们定位到了所要关注的目标,就像我们到一个陌生的地方要随身携带地图,当我们学习Linux内核时,也要谨记寻求Kconfig和Makefile的帮助。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux-Kconfig总结与分析

    使用Kconfig时,需要注意的地方 1.在Kconfig中定义的配置宏,前缀都没有"CONFIG_",只有编译内核时,自动生成autoconf.h才会出现前缀. 2.如果XX_defconfig板卡配置文件中定义新的宏...=y时,而在Kconfig并没有声明它,则内核编译出来的autoconf.h里也不会定义它的. 3.如果XX_defconfig板卡配置文件中没有设置CONFIG_MODULES=y,则编译make modules...时将会失败,而make menuconfig时, Kconfig中的tristate参数也会被读写为bool参数(也就是不能设置m) CONFIG宏变量参数 bool: 表示该CONFIG宏只能选择...-探索宏变量参数 接下来我们来试试如何给不同宏设置不同参数,以MY_SYMBOL1~ MY_SYMBOL5为例 设置MY_SYMBOL3~ MY_SYMBOL5依赖于MY_SYMBOL2 修改内核顶层Kconfig...其中上面的CONFIG_MY_SYMBOL2_MODULE宏是因为我们在Kconfig设置它为default m,所以CONFIG_MY_SYMBOL2_MODULE是个模块宏.

    3.4K20

    鸿蒙OpenHarmony轻内核Kconfig使用笔记

    鸿蒙轻内核使用Kconfig进行图形化配置,本文专门讲解下鸿蒙轻内核LiteOS-M和LiteOS-A的图形化配置方法。 本文首先简单介绍下kconfig的基础知识,接着介绍下如何使用图形化配置。...1、 Kconfig简介Kconfig语言定义了一套完整的规则来表述配置项及配置项间的关系,详细内容可以参考Linux官方文档 Kconfig Language ,此处不赘述。...1.1 Kconfig和.config文件Kconfig是配置项的描述文件,支持设置配置项及其默认值,依赖关系等等,比如kernel\liteos_a\Kconfig,该文件还会继续依赖各个模块的Kconfig...osource我们知道kconfig使用source来引用其他kconfig文件,而osource等于optional source,表示可选的,如果osource指定的kconfig文件不存在,也不报错...rsourcersource等于 relative source,后面引用的kconfig文件支持相对路径。路径相对于包含rsource语句的kconfig而言。

    40320

    Linux 内核中 Kconfig 文件的作用和添加 menuconfig 项的方法

    这里就需要配置 Kconfig 文件了。本文简单说明一下如何修改。...便于需要时查找 Ref: Linux内核中Kconfig文件的作用 本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...---------- Kconfig的作用 Kconfig就是服务于menuconfig的一个配置文件。在对应目录下配置Kconfig文件,就是在配置对应的menuconfig项目。...Makefile的修改 如果你修改了对应文件夹下面的Kconfig,那么你还要修改相应的Makefile才行。...以前文为例,我添加了配置项在Kconfig中,这个Kconfig的位置是drivers/char/,那么我必须在这个文件夹下的Makefile中添加一行: obj-$(CONFIG_XXXX_MOTOR

    4.5K50

    Linux内核构建三剑客:Kconfig、.config与Makefile关系详解

    Linux内核构建三剑客:Kconfig、.config与Makefile关系详解 三者核心关系图 三者对比表格 特性 Kconfig .config Makefile 本质 配置描述文件 配置存储文件...Kconfig - 配置的"菜单定义" 作用:定义用户可以配置的选项,就像餐厅的菜单 典型Kconfig结构: # arch/x86/Kconfig 示例 config 64BIT bool "...配置的继承与覆盖 # 多层级配置示例 # 顶层Kconfig可能包含: source "drivers/Kconfig" # 包含子目录配置 # 配置优先级: # 1....Kconfig中的默认值(default) # 4....厨师根据点菜单决定如何制作每道菜 一句话总结: Kconfig定义"可以选什么",.config记录"用户选了啥",Makefile根据".config"决定"怎么编译"。

    6610

    menuconfig 图形化配置

    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 为具体的目录名,相对路径...endmenu # my test menu   Kconfig 文件的最终目的就是在.config 文件中生成以“CONFIG_”开头的变量。

    2.1K10

    全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS系统定制开发

    RTOS环境下的软件包主要由三部分组成,源文件,Makefile,Kconfig,如下: hello_world ├──hello_world.c ├──Kconfig └──Makefile 其中Makefile...指定该模块的编译规则,Kconfig则指定该模块的编译配置,从而达到功能可裁剪,镜像文件大小可灵活配置的目的。...Kconfile的写法如下: obj-$(CONFIGCOMPONENTHELLOWORLD)+=hello_world.o 此外,需要在上层目录的Kconfile以及Kconfig中加上该软件包,如下...: 上层Makefile obj-$(CONFIGCOMPONENT_HELLO_WORLD)+=helloworld 上层Kconfig sourcecomponents/aw/hello_world.../Kconfig 开发完成后,运行mrtos_menuconfig,选中该模块对应的CONFIG后退出,然后mrtos进行编译,这样新增的软件包便可以编译到RTOS镜像文件中了。

    44510

    linux menuconfig搜索,linux系统menuconfig解析

    介绍 跟make menuconfig这个命令相关的文件,包括三类,包括.config,Kconfig,Makefile。为什么不说三个,而说三类呢?...因为Kconfig和Makefile是配合使用的,在很多的子目录都存在,而.config只存在于根目录中。...这三个文件的作用分别是: Kconfig:定义了配置项 .config:对配置项进行赋值 Makefile:建立配置项的生成法则 三者的关系为:make menuconfig依赖于Kconfig进行系统可视化配置...,Kconfig为可视化配置菜单;在可视化配置界面修改完相应配置之后,生成的配置项保存在.config文件里,即对不同的配置项定义的赋值;在系统中运行make的时候,Makefile会依赖于.config...Management” source pm/Kconfig endmenu 如果有多级菜单的话,可以通过多级嵌套来实现,这里类似于if和fi关键字;如果当前menu下包含有其他路径下的Kconfig文件

    1.6K30

    arm-linux 开发步骤

    Kconfig以及内核裁减 Kconfig是用于定制内核的,有了交叉环境、BSP以及内核源码后,就可以做Kconfig.源码包的Makefile需要从.config得到信息以便把需要的东西编译到内核,不需要的东西不放进来...以下引用自互联网 Kconfig文档的作用 内核源码树的目录下都有两个文档Kconfig(2.4版本是Config.in)和Makefile。...分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。...*上面的内容说明了,Kconfig就是对应着内核的配置菜单。...假如要想添加新的驱动到内核的源码中,能够修改Kconfig,这样就能够选择这个驱动,假如想使这个驱动被编译,要修改Makefile so添加新的驱动时需要修改的文档有两种(注意不只是两个) *Kconfig

    5.1K30
    领券