linux中.config,makefile,kconfig

Makefile.config配置文件 ubuntu16.04+cuda8.0+cudnnv5+opencv3.0+python2.7安装Caffe编译通过的配置文件2 立即下载
1.顶层
顶层的Makefile文档读取内核配置文件.config文档的内容.递归向下访问子目录的形式完成build内核和模块的工作。
.config文件的内容是在makemenuconfig的时候,通过Kconfig文档配置的结果.arch/$(ARCH)/Makefile则提供补充体
系结构相关的信息;
2.内核中的kconfig
每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。
Kconfig  语法结构
每个菜单项都有一个关键字标识,最常见的就是config。
语法:
config symbol
options
symbol就是新的菜单项,options是在这个新的菜单项下的属性和选项
其中options部分有:
(1)类型定义:
每个config菜单项都要有类型定义,bool:布尔类型,tristate三态:内建、模块、移除, string:字符串,hex:十六进制, integer:整型
例如   configHELLO_MODULE
                bool"hello testmodule"
bool类型的只能选中或不选中,tristate类型的菜单项多了编译成内核模块的选项,假如选择编译成内核模块,则会在.config中生成一个
CONFIG_HELLO_MODULE=m的配置,假如选择内建,就是直接编译成内核影响,就会在.config中生成一个CONFIG_HELLO_MODULE=y的配置.
(2)依赖型定义dependson或requires
指此菜单的出现是否依赖于另一个定义
     configHELLO_MODULE
             bool"hello testmodule"
             dependsonARCH_PXA
这个例子表明HELLO_MODULE这个菜单项只对XScale处理器有效,即只有在选择了ARCH_PXA,该菜单才可见(可配置)。
(3)帮助性定义
只是增加帮助用关键字help或---help--
3.makefile的内容
(1)目标定义
目标定义就是用来定义哪些内容要做为模块编译,哪些要编译链接进内核。如:
obj-y += foo.o
表示要由foo.c或者foo.s文件编译得到foo.o并链接进内核,而obj-m则表示该文件要作为模块编译。
除了y,m以外的obj-x形式的目标都不会被编译。而更常见的做法是根据.config文件的CONFIG_
变量来决定文件的编译方式(该变量如何起作用见文末另一篇文章的链接),如:
obj-$(CONFIG_EXT2) += ext2.o
除了obj-形式的目标以外,还有lib-y library库,hostprogs-y 主机程序等目标,但是基本都应用在特定的目录和场合下。
(2)多文件模块的定义
最简单的kbuild Makefile如上一节一句话的形式就够了,如果一个模块由多个文件组成,那么稍微复杂一些,采用模块名加 –objs后缀或者 –y后缀的形式来定义模块的组成文件。如以下例子:
obj-$(CONFIG_EXT2) += ext2.o
ext2-y := balloc.o bitmap.o
或者写成如-objs的形式:
obj-$(CONFIG_EXT2) += ext2.o
ext2-objs := balloc.o bitmap.o
模块的名字为ext2,如果CONFIG_EXT2的值是m,由balloc.o和bitmap.o两个目标文件最终链接生成ext2.o 直至ext2.ko文件,如果CONFIG_EXT2的值是y,生成的 ext2.o将被链接进built-in.o最终链接进内核。
(3)目录层次的迭代
如下例:
obj-$(CONFIG_EXT2) += ext2/
如果CONFIG_EXT2 的值为y或m,kbuild将会将ext2目录列入向下迭代的目标中。
4.多文件makefile和kconfig
#CONFIG_ECAT_DRV为m时编译为模块,为y时编进内核  ecat.o为最终链接的目标文件
obj-$(CONFIG_ECAT_DRV) += ecat.o 
#-objs指定依赖的多个.o文件 这些文件都对应相应的.c文件
ecat-objs := ecateoe.o eoeappl.o mcihw.o ecatslv.o mailbox.o ecatappl.o ecat2440.o 
本地Kconfig
#建立一个本地子目录。“”为显示的目录名字 
menu "ecat driver here"      
    depends on NET  #依赖于上层的某个开关 
config ECAT_DRV  #配置变量名,必须和Makefile中的变量后半段一样  
    bool "ecat driver" #bool量, 显示的名字 
    ---help---  #下面为要显示的帮助文字 
        This is test for ecat. 
endmenu  #本地子目录结束
 上层Makefile
*#添加下面这一句 
obj-$(CONFIG_ECAT_DRV) += ecat/  #打开下一级目录编译 
上层Kconfig
*#添加下面这一句 
source "driver/xxx/ecat/Kconfig" 
#导入子文件夹中的Kconfig文件,可以为相对路径 
2025华为OD面试手撕代码真题目录及面试八股文 本专栏更新每年华为OD机试的高频手撕代码题,每个题目都会使用五种语言进行解答(C & C++& Java & Python & JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2024e卷,od机试,2024E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2024华为od,如何备 阅读详情

相关推荐

从仿真到真机:如何将XTDrone的VINS-Fusion+RTABMap建图方案部署到真实无人机上?

本文详细介绍了如何将XTDrone的VINS-Fusion+RTABMap建图方案从仿真环境迁移到真实无人机上。内容涵盖硬件选型、传感器配置、VINS-Fusion调优、RTABMap性能优化以及系统集成等关键步骤,特别针对三维稠密重建在真实环境中的挑战提供了实用解决方案。

weixin_29056781的博客 241

关于驱动中的Makefile 和Config

本文参考友善之臂的MICRO2440用户手册 首先学习什么Makefile,什么是Kconfig ,什么是.config Makefile:一个文本形式的文件,其中包含一些规则告诉make编译哪些文件以及怎样编译这些文件。 Kconfig:一个文本形式的文件,其中主要作用是在内核配置时候,作为配置选项。 .config:文件是在进行内核配置的时候,经过配置后生成的内核编译参考文件。 Kconfig 1.先了解一下Kconfig的语法: 一个典...

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 1657

5分钟快速验证lvgl界面:VScode模拟器极简配置法(免环境变量版)

本文介绍了一种5分钟快速验证LVGL界面的极简配置方法,使用VSCode模拟器免环境变量配置,适合UI设计师和产品经理快速预览界面效果。通过预编译的SDL2库和配置好的VSCode工程模板,实现开箱即用的LVGL界面验证,大幅提升工作效率。

weixin_30790841的博客 314

浅谈内核的Makefile、Kconfig和.config文件

本文转自百问科技公众号!Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎么编进内核,不知道怎么配置内核,这些问题都和Makefile、Kconfig、.config有关,下面简单谈谈Makefile、Kconfig和.config。希望对你有启发。 三者的作用:简单来说就是去饭店点菜:K...

勇往直前的博客 638

碳纳米管NRAM:突破5纳米制程的下一代存储技术

在半导体存储领域,非易失性存储器和随机存取存储器是两大基础技术方向。传统DRAM速度快但断电易失,NAND Flash非易失但写入慢、寿命有限,两者在先进制程下都面临物理极限挑战。碳纳米管作为一种新型纳米材料,凭借其优异的导电性、机械强度和尺寸微缩潜力,为存储技术革新提供了物理基础。基于碳纳米管的NRAM技术,通过控制纳米管间的可逆接触实现电阻状态切换,兼具DRAM级速度和Flash的非易失性,同时具备近乎无限的擦写寿命和出色的CMOS工艺兼容性。这项技术不仅能满足5纳米以下制程的存储需求,在数据中心缓存、

weixin_42576804的博客 427

ensp VRRP+MSTP综合性实验

网络结构拓扑图 实验要求 要求: 1、全网互通,IP地址任意规划,路径最优,无环路。 2、AR1上面有一个loopback口,ip地址为1.1.1.1/24, 要求所有电脑能访问。 3、vlan10通过LSW1访问1.1.1.1,当LSW1出现问题即使 g0/0/1故障亦能通过lsw2访问。 vlan30通过LSW2访问1.1.1.1,当LSW2出现问题即使 g0/0/1故障亦能通过lsw1访问。 4、LSW1为vlan10的主根,vlan30的备根。 LSW2为vlan30的主根,vlan1

qq_45631844的博客 1万+

什么是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

手把手教你学Simulink——基于Simulink的滑模控制器车辆稳定性仿真建模示例

本文详细介绍了基于Simulink的滑模控制器在车辆稳定性控制中的应用。通过建立二自由度车辆动力学模型(含魔术公式轮胎),设计横摆角速度与质心侧偏角滑模控制器,在Simulink中实现直接横摆力矩控制。文章包含完整的建模流程:从参考模型设计、滑模控制器推导(含等效控制和边界层法),到MATLAB参数设定和Simulink模块搭建。通过双移线测试和路面突变场景验证,证明该控制器能在低附着路面(μ=0.3)将横摆角速度误差控制在±5%以内,显著提升车辆稳定性。同时提供了工程实践要点和扩展方向(如高阶滑模、自适应

MHD0815的博客 106

【环境搭建】linux上编译安装caffe框架+Makefile.config文件详解

1.ubuntu16.04上编译安装caffe;2.caffe的Makefile.config文件详解;3.ubuntu16.04上编译安装protobuf

Zhang_Chen_的博客 2833

YOLO26涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇 | 引入 LFSB 差分双维注意融合模块,通过交替特征融合与分离策略,能够精准区分目标特征,顶会助力YOLO26有效涨点

本文提出LSFB差分双维注意融合模块,用于改进YOLO26目标检测模型。该模块通过融合-分离交替策略和差分注意力机制,有效提升模型在复杂场景下的特征分离能力,特别是在处理重叠物体或反射干扰时表现优异。LSFB采用双向投影、双维注意力计算和跨流减法算子,实现特征共享与独立提取的平衡。实验表明,该模块能显著减少特征混淆,提高检测精度和鲁棒性。文章还详细介绍了模块实现的核心代码、YAML配置文件修改方法以及三种改进方案,为YOLO26模型性能提升提供了创新解决方案。

Ai缝合怪、助力小伙伴高效发论文 325

innovus:NRDB-2276 special net route layer与NanoRouteMode route layer冲突问题解决方法

NanoRouteMode中设置绕线层次2-6,但是被动到的special net有8-11的preferred route layer,这个层次可能是create_route_type+set_ccopt_property -net_type 定义的。二者绕线层次范围有冲突,导致在调整过这条net后再绕线就会提示失败。然后再下route_design 等route命令去绕别的net。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1099

Linux内核配置文件之解读Makefile

一、Makefile 初探    Linux的内核配置文件有两个,一个是隐含的.config文件,嵌入到主Makefile中;另一个是include/linux/autoconf.h,嵌入到各个c源文件中,它们由make config、makemenuconfig、make xconfig这些过程创建。    几乎所有的源文件都会通过linux/config.h而嵌入autoconf.h

zxl1217的专栏 1910

PostgreSQL 核心原理:大字段(大对象)是如何被压缩和存储的(TOAST存储机制)

PostgreSQL通过TOAST机制高效处理大字段存储问题,解决单行超过8KB页大小限制的挑战。TOAST采用透明分片、按需加载和自动压缩策略,支持TEXT、JSONB等变长类型,无需用户干预。其核心包括四种存储策略(plain/external/main/extended),自动将大字段分片存入专用TOAST表,主表仅保留指针。读取时按需解压拼接,支持部分加载优化。TOAST表结构包含chunk_id、序列号和分片数据,配合内置PGLZ压缩算法,平衡存储效率与访问性能。该机制使PostgreSQL能稳定

数据知道的博客 2623

linux下Kconfig与.config和Makefile详解

一.linux内核中Makefile、Kconfig、.config的关系 (1)三者的作用 Makefile:一个文本形式的文件,编译源文件的方法。 Kconfig:一个文本形式的文件,内核的配置菜单。 .config:编译所依据的配置 (2)三者的关系 简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜。在运行make menuconfig后在配置界面中出现的就是Kconfig中的选项,在界面中看到的已经配置好的选项就是从.config中读取出来的,当配置完

chengziwang的博客 6694

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

linux defconfig、 .config 、kconfig 与makefile

linux defconfig、 .config 、kconfig 与makefile 展开 当驱动文件编写完成之后,需要将其编译进内核uimage或者编译模块(.ko),此时需要修改kconfig 和makefile文件。下面以博通平台为例,阐述下kconfig等文件的用途等,本人水平有限,如有错误之处,请不赐指正。 介绍Kconfig makefile 等文件的文章很多,可以参考:点击打开链...

weixin_42082222的博客 869

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

linux中config相关文件作用linux defconfig、 .config 、kconfig 与makefile

linux defconfig、 .config 、kconfig 与makefile 当驱动文件编写完成之后,需要将其编译进内核uimage或者编译模块(.ko),此时需要修改kconfig 和makefile文件。下面以博通平台为例,阐述下kconfig等文件的用途等,本人水平有限,如有错误之处,请不赐指正。 介绍Kconfig makefile 等文件的文章很多,可以参考:点击打开链接,...

ALIX的博客 2193

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LINUX内核编译--Makefile、.config、Kconfig、menuconfig解析

LINUX内核编译–Makefile、.config、Kconfig、menuconfig关系说明 Makefile makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile文件是脚本文件,在内核目录(/home/topeet...

stm32_newlearner的博客 4720

Linux下的Kconfig defconfig .config 和 Makefile文件之间的联系

在Linux内核里,编译内核文件时,先要配置.config文件,然后Makefile在编译时通过读取.config文件的配置来选择要编译的文件,选择驱动的加载方式。.config文件的生成可通过make menuconfig ARCH=arm 或make defconfig 方式生成,这两种方式看上去虽然不同,但是两者的原理是一样的,都是通过Kconfig文件的配置来的。 1.make menu...

刘先森的博客 7009

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

Kconfig、.config和Makefile构成了Linux内核构建系统的核心三要素,它们各司其职又紧密配合: Kconfig作为"菜单定义者",定义所有可配置选项及其关系;.config作为"选择记录者",保存用户的具体配置选择;Makefile作为"执行指挥者",根据.config的配置指导编译过程。 三者形成完整工作流:Kconfig提供配置界面 → 用户选择生成.config → Makefile解析.config决定编译内容。这种分层设计实现了配置与编译的完美解耦,使Linux内核能够灵活组合

道阻其长,未来可期。笔耕不辍,行则将至! 1359

Linux内核中的Kconfig、Makefile、.config

本文参考文章地址:http://hi.baidu.com/donghaozheng/blog/item/02e1b231f0df64a25fdf0eea.html          本文参考友善之臂的MICRO2440用户手册 毛毛同学今天学习了驱动程序模块的安装与卸载,在这个过程中毛毛发现,内核的目录中有许多的Kconfig、Makefile文件,但是毛毛不知道为什么需要这些文件,这

bugouyonggan的专栏 2204

Linux内核defconfig在哪,linux defconfig、 .config 、kconfig 与makefile

当驱动文件编写完成之后,需要将其编译进内核uimage或者编译模块(.ko),此时需要修改kconfig 和makefile文件。下面以博通平台为例,阐述下kconfig等文件的用途等,本人水平有限,如有错误之处,请不赐指正。介绍Kconfig makefile 等文件的文章很多,可以参考:点击打开链接,这里只简单说明。1.deconfig 文件:一般由平台厂商提供,内核编译用做.config的参...

weixin_35910783的博客 1845

Linux内核中Makefile、Kconfig和.config的关系

我们在编译Linux内核时,往往在Linux内核的顶层目录会执行一些命令,这里我以RK3288举例,比如:make firefly-rk3288-linux_defconfig、make menuconfig、make firefly-rk3288.img、make zImage等等。先不管这具体的含义,首先提出几个疑问: 本文引用地址:http://emb.hqyj.com/Column/7565.html (1)Linux内核如此庞大(几万个文件),目录又分为很多层,它是如何将各层目录下的文件关联起来的

qq_37363920的博客 531

linux中kernel编译所涉及的Makefile,Kconfig,.config,kbuild makefiles文件

前言 在内核源数目录下一般会存在两个文件,一个是Makefile文件,另一个是Kconfig文件。那.config文件呢?其实它是一个中间产物,在make menuconfig后会生成此文件,这个menuconfig这个选项其实就是Kconfig文件中编写的,而Makefile就是告诉编译器如何编译,如何生成我们想要的模块或者结果。 关系: Makefile:文本形式的文件,包含一些规则告诉make编译哪些文件以及怎样编译这些文件。 .config:文件是在进行内核配置的时候,经过配置后生成的内核编译参考

weixin_42271802的博客 1673

Linux内核kconfig调用关系,Linux内核中Makefile、Kconfig和.config的关系

我们在编译Linux内核时,往往在Linux内核的顶层目录会执行一些命令,这里我以RK3288举例,比如:make firefly-rk3288-linux_defconfig、make menuconfig、make firefly-rk3288.img、make zImage等等。先不管这具体的含义,首先提出几个疑问:本文引用地址:http://emb.hqyj.com/Column/7565...

weixin_29790285的博客 271

简析linux下Makefile Kconfig .config

简述三者的关系简述三者的关系Makefile:制定工程源文件的编译规则,指定哪些文件的编译,是一个文本文件;Kconfig:制定内核的配置菜单,命令menuconfig进入的菜单选项就是它配置的;:编译内核的具体配置选项;退出配置菜单后,就会根据菜单配置生成一个.config文件;执行编译命令make时就根据.config配置编译。1 Makefile。

Qurry的博客 1119

4.学习Camera之——Linux内核中的Kconfig、Makefile、.config

Kconfig、Makefile、.config.

Linux_zhicheng的博客 443
上一篇: platform简单总结
下一篇: 字符设备驱动
快乐的小鸟
博客等级 码龄14年 25粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值