Kconfig ./config makefile

别再只改Makefile了!深入理解RK3568内核构建三剑客:Kconfig、.config与Makefile的协作关系 本文深入解析RK3568内核构建系统中Kconfig、.config与Makefile的协同机制,揭示它们在嵌入式Linux开发中的核心作用。通过详细的技术解析和实战案例,帮助开发者掌握内核配置、编译与构建的高级技巧,提升RK3568驱动开发效率。 阅读详情

linux内核包含了绝大部分硬件的驱动源码,我们想要从庞大的内核配置数据库读取出一套合适CPU配置和功能,我们就需要认识这个铁三角:

Kconfig:一个文本形式的文件,存在内核源码中的每一个文件夹下,内核配置命令make menuconfig读取相应的Konfig文件生成菜单界面;
.config:隐藏文件存放在内核源码顶层目录中,make menuconfig命令配置的结果,里面的每个选项用来指导Makefile哪些C文件需要编译,哪 些不需要编译;
Makefile:一个文本形式的文件,存在内核源码中的每一个文件夹下,用来控制编译该目录下的源码编译;

  在内核配置make menuconfig时,会出现一个配置菜单,它是由各层Kconfig文件组成。。我们在配置菜单中进行的相关配置(【】,【*】,【M】),最终都会存储于.config文件当中,因此Kconfig文件跟这些配置结果并没 有直接的关系,只是提供了配置菜单中的配置选项。

Linux内核构建三要素:Makefile、Kconfig与.config协同机制 Linux内核构建系统是实现内核高度可配置与模块化的核心基础设施,其本质是将用户功能需求转化为可执行代码的工程化流水线。该系统以Kconfig定义配置项语义与依赖关系,以Makefile将CONFIG_XXX变量翻译为obj-y/m等编译指令,最终由.config文件固化配置快照并驱动整个编译流程。这种‘声明式配置→条件化编译→状态快照’的技术范式,支撑了嵌入式定制、驱动开发、安全裁剪等关键场景。尤其在内核驱动移植与模块化集成中,Kconfig依赖声明与Makefile条件编译(如obj-$(CONFIG_ 阅读详情

相关推荐

关于.config文件生成的编译过程。

1.  kernel/Makefile 中有 %config: scripts_basic outputmakefile FORCE         $(Q)mkdir -p include/linux include/config         $(MAKE) $(build)=scripts/kconfig $@            #其中build=-f scripts/Make

suxinmin的专栏 1589

Kconfig与Makefile的简单介绍

1. Kconfig介绍与使用 来源-Kconfig介绍 背景介绍 在分析u-boot源码的时候,我发现很多文件夹下面都有一个Kconfig文件,我很好奇它是干什么用的。通过网上查阅资料,我发现它对于u-boot的配置极为重要,因此特记录下自己对kconfig的理解。 什么是kconfig Linux kernel的目录结构下一般都会存在Kconfig和Makefile两个文件。分布在各级目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在

MIRSTAMP的博客 1562

黑猫带你学Makefile第9篇:menuconfig/Kconfig/deconfig/.config及Makefile之间的关系

本文结合个人工作/学习经验、网络资料辛苦整理/撰写而成,付费内容,禁止转载。本文所在专栏《》Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎么编进内核,不知道怎么配置内核,这些问题都和Makefile、Kconfig、.config有关,下面简单谈谈Makefile、Kconfig和.config。...

黑猫奥利奥的博客 2631

Linux内核源码之Kconfig和Makefile

但是一般我们不采取这个方案,我们选择在配置界面中通过空格、esc、回车选择某些选项选中或者不选中,最后保存退出的时候,Linux内核会把新的选项(正确的参考答案)更新到.config中,此时我们可以把.config重命名为其它文件保存起来(当你执行make distclean时系统会把.config文件删除),以后我们再配置内核时就不需要再去arch/arm/configs下考取相应的文件了,省去了重新配置的麻烦,直接将保存的.config文件复制为.config即可.

生活需要深度 1620

歪枣网股票数据下载接口汇总一

歪枣网上下载接口动态信息如下: 接口名称:A股列表,接口描述:沪深京A股基本信息,接口地址:/doc/getStockHSABaseInfo?code=all&fields=code,name,stype,hsgt,bk,roe,zgb,ltgb&export=0&token= 请求参数描述: 参数名:code,参数描述:股票代码,支持批量查询,用逗号分隔,每次最多30个;若为all,则表示全部,即可获取任意一天内的所有数据。 请求参数描述: 参数名:fields,参数描述:数据字段

waizaowang的博客 2731

安卓风控对抗实战:如何用AOSP定制ROM绕过Momo、AIDA64等检测(从环境搭建到设备画像)

本文详细解析了如何通过定制AOSP ROM绕过Momo、AIDA64等安卓风控检测工具的设备指纹识别。从环境搭建到硬件参数修改,再到内核级特征混淆,提供了一套完整的底层对抗方案,显著提升设备伪装通过率。

weixin_30687051的博客 490

Linux内核中Makefile、Kconfig、

核心:学习过数据结构的童鞋应该知道,对于一棵非标准树,还是有办法将其进行遍历的,只是算法比较复杂而已。那么在Linux内核源码的这棵树,就是通过Kconfig文件建立各层子目录之间的连接,通过Makefile文件来选择各个目录下的对应的文件是否被编译,而.config文件就像是作为总控制台吧,控制着Makefile文件去编译指定的程序代码文件(主要是C和汇编)。而这一切控制关系是由Kconfig文件建立起来的。 .config文件 基于firefly-rk3288-linux_defconfig文件生成了

栋哥修炼日记 1878

Hyper-V集群部署指南

工欲善其事,必先利其器。搭建一个方便管理的服务集群,是分布式学习很重要的环境。 目前流行的虚拟机产品主要为Vmware 和 win10自带的Hyper-V(win10家庭版无此功能),网上关于Vmware的教程更多,显然它更容易上手,但Hyper-V也算是一个很不错的产品,这里记录一下我的学习过程: 目录 Hyper-V的安装 服务集群的搭建 虚拟机的网络通信 NAT网络的搭建 端口映射 Linux的静态IP 虚拟机的自启动问题 Hyper-V的安装 也不能算说是安装,如果你的win1

Swing 6919

Linux从模块化机制学到Kconfig,Makefile构建配置原理

0x00 前言 在学习Linux内核过程中,我们经常会看到,驱动程序的注册过程通常分为以下两种步骤: 模块初始化 驱动程序注册 但是呢!模块初始化,中的模块化机制module,不仅用于支撑驱动的加载和卸载!!! 喵呜,那让我们来演示一下还能怎么用! // filename: HelloWorld.c #include <linux/module.h> #include <linux/init.h> static int hello_init(void) { printk(

CheAyuki13的博客 4319

Microsemi Libero使用技巧11——CoreUARTAPB RX管脚分配时不显示

调用串口IP核CoreUARTAPB,并例化到顶层设计,发现UART_RX管脚在进行管脚分配时没有显示出来,最后发现是CoreAPB3总线IP核配置不对导致,改为如下配置后正常。

whik1194的博客 757

91、Windows网络配置:动态更新与名称解析全攻略

本文全面解析了Windows XP Professional系统中的网络配置方法,重点介绍了动态更新和名称解析两大核心功能。动态更新部分涵盖DHCP客户端、静态配置客户端、远程访问客户端和多宿主客户端的配置方法,并提供禁用动态更新和编辑Hosts文件的注意事项。名称解析部分详细讲解了NetBIOS名称解析的基础知识、WINS配置方法、B节点广播与Lmhosts文件的使用,以及WINS代理的作用和配置要点。通过操作建议流程图和关键操作步骤回顾,帮助用户快速掌握网络配置的核心技巧,适用于不同网络环境的实际需求。

blue42的博客 234

什么是Starter

Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块。 我们在Maven的依赖中加入spring-boot-starter-web就能使项目支持Spring MVC,并且Spring Boot还为我们做了很多默认配置,无需再依赖spring-web、spring-webmvc.

Leon_Jinhai_Sun的博客 2438

基于STM32单片机设计的红外测温仪(带人脸检测)_34

当前设计的这款红外非接触式测温仪由测温硬件+上位机软件组合而成,主要用在地铁、车站入口等地方,可以准确识别人脸进行测温,如果有人温度超标会进行语音提示并且保存当前人脸照片。

8769

menuconfig、Kconfig、makefile、./config之间的关系

1,流程说明 (1)内核在编译之前,需要进行配置;而配置项则是类似于“make xxx_config”在 kernel文件下arch/arm/configs/xxx_config。 (2)上述为粗略配置,当前目录下会生成 .config(重要文件) (3)执行make menuconfig 进行精细配置 (4)编译运行 2,menuconfig读取Kconfig文件 (1)menuconfig显示菜单内容,一方...

噗呲_DayBreak 661

Qt界面美化-飞扬青云自绘控件插件的使用-避免采坑

1、先上一个集成到QtCreater中的效果图: 2、飞扬青云自绘控件插件下载地址:https://gitcode.net/mirrors/feiyangqingyun/qucsdk?utm_source=csdn_github_accelerator 3、集成插件到QtCreater中的方法: (1)、查看自己使用的QtCreater的版本信息,我的:Qt 5.15.2 MSVC2019 64位 (2)插件下载下来后工程预览: 我选择msvc版本的SDK,打开找到匹配的SDK:...

小米的修行之路 2792

YOLOv8改进 | Conv篇 | 轻量级下采样方法ContextGuided(大幅度涨点)

ContextGuided通过创新的局部-全局协同机制,解决了传统下采样方法中细节丢失与上下文缺失的核心痛点。实验证明其在YOLOv8上可实现最高2.6%的mAP提升,且计算开销增加不足5%。这种即插即用的设计为实时目标检测系统提供了新的优化方向。创新启示:轻量化不代表简单裁剪,智能信息融合才是未来方向!下一步探索与Transformer结合构建混合架构多尺度上下文融合机制3D点云中的扩展应用资源获取完整训练代码:[GitHub链接]预训练模型:[Google Drive链接]讨论话题。

QQ_778132974的博客 289

Linux/Android Kconfig Makefile defconfig 和 .config关系

在进行android L-》M升级时遇到打印: Root cause is probably that a dependancy declared in Kconfig is not respected or config was added in Kconfig but value not explicitly added to defconfig. Recommanded method Linux/Android Kconfig Makefile defconfig 和 .config关系

深度理解是快乐的源泉 4589

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Linux内核中的Kconfig/Makefile/.config 文件解析

Linux内核中的Kconfig、Makefile、.config   转载自:http://www.cnblogs.com/taomaomao/archive/2012/01/05/2312816.html 本文参考文章地址:http://hi.baidu.com/donghaozheng/blog/item/02e1b231f0df64a25fdf0eea.html

程序猿的实验室 1696

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Kconfig重点语句解析

注1:要真正添加自己的驱动,需要Kconfig文件和Makefile文件一起配合。

m0_56860780的博客 626

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Kconfig,.config和makefile的关系

我们在使用make menuconfig这个命令的时候,屏幕上会出现配置界面: 那么,我们输入make menuconfig命令以后,在界面出现以前,系统做了哪些事情呢(两件事情)? 1、menuconfig读取Kconfig文件的项目内容: 1)、menuconfig显示的菜单内容(菜单的目录结构、每一个菜单项目的细节),由内核源码树各个目录下的Kconfig文件来提供(Kconfig是整个linux配置机制的核心)。 a、Kconfig文件中按照一定的格式包含一些配置项,每一个配置项在make men

weixin_A13253323604 589

linux make xxx_defconfig 过程 Makefile.build 脚本分析

config-targets := 0 mixed-targets := 0 dot-config := 1 ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),) ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),) dot-config ...

monkea123的博客 825

Linux 内核构建系统详解总结:Kconfig、defconfig、.config、Makefile 四者关系与构建流程

嵌入式 Linux 开发中,经常和 xxx_defconfig、.config、Kconfig、Makefile 这四个文件打交道。很多初学者搞不清它们各自的作用和关系,本文用最通俗的语言把它们讲清楚。

weixin_38293850的博客 391

Linux 内核驱动编译:Kconfig 与 Makefile 核心玩法,触摸驱动如何编译进内核?

查看驱动目录下的makefile 可以看到很多配置项 linux\drivers\char\Makefile: obj-$(CONFIG_DTLK) += dtlk.o obj-$(CONFIG_APPLICOM) += applicom.o obj-$(CONFIG_SONYPI) += sonypi.o obj-$(CONFIG_RTC) += rtc.o obj-$(CONFIG_HPET) += hpet.o obj-$(CONFIG_EFI_RTC) += efirtc.o obj-$

欲盖弥彰1314 1791

uboot顶层Makefile前期所做工作说明三

uboot顶层 Makefile前期的所做的工作

wojiaxiaohuang2014的博客 260
上一篇: 解析 sizeof 与 strlen
下一篇: 内核入门驱动——helloword模块
G_sng
博客等级 码龄9年 11粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值