Linux内核Make Menuconfig 与 Makeifle间的交互_zhiweimai的博客-CSDN博客

以ARM平台为例,具体配置过程:

1.当执行make menuconfig 时,系统首先读取arch/arm/Kconfig生成整个配置界面

2.在读取配置界面的同时,系统会读取Kconfig文件,生成所有配置选项的默认值

3.当修改完配置并保存后,系统会更新顶层目录下的.config

4.当执行make时,各层的Makefile会根据.config文件中的编译选项来决定哪些文件会被编译到内核中,或者编译成模块。

Kconfig文件:在make menuconfig命令的时候读取的文件

.config文件 :是make menuconfig完成后的最终输出文件,内部包含了对内核所有的配置项

kconfig------->.config---------->makefile

linux-3.4.2/.config

CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m

=y :表示直接编译进内核

=m:表示编译程模块   ko文件,可以动态加载到内核运行

在make的过程,Makefile会对.config进行解析,并输出两个文件include/config/auto.conf

CONFIG_CPU_S3C2442=y
CONFIG_MMC=y
CONFIG_CPU_S3C2443=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_ZISOFS=y
CONFIG_BUG=y
CONFIG_NFS_FS=y
CONFIG_MII=y
CONFIG_ARM=y
CONFIG_CRYPTO=y

include/linux/autoconf.h

#define CONFIG_CPU_S3C2443 1
#define CONFIG_INITRAMFS_SOURCE ""
#define CONFIG_ZISOFS 1
#define CONFIG_BUG 1
#define CONFIG_NFS_FS 1
#define CONFIG_MII 1
#define CONFIG_ARM 1
#define CONFIG_CRYPTO 1
#define CONFIG_MTD_CFI_INTELEXT 1

auto.conf文件是作用于Makefile的,它是在定义Makefile变量。而autoconf.h是作用于源代码的,它是在定义一些的宏,匹配源码中的条件编译。

.config文件和Menuconfig以及Makefile参考学习相关推荐

  1. linux 的kernel文件夹里面没有makefile,makefile_linux kernel在哪儿_linux 内核配置机制(make menuconfig、Kconfi...

    你是否正在寻找关于menuconfig的内容?让我把最实在的东西奉献给你: 前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式--在一个独立的文件 ...

  2. 正确地保存编译内核产生的 config文件-使用make savedefconfig

    正确地保存编译内核产生的.config文件-使用make savedefconfig 一直以来保存编译内核生成的.config文件都是cp .config arch/arm/configs/xxx_d ...

  3. 【转载】]基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程 介绍、安装准备、安装、config文件以及运行脚本介绍...

    https://www.codetd.com/article/1137423 <版权声明:本文为博主原创文章,未经博主允许不得转载> 本次利用SPECCPU2006测试工具来进行Intel ...

  4. 基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)——介绍、安装准备、安装、config文件以及运行脚本介绍

    <版权声明:本文为博主原创文章,未经博主允许不得转载> 本次利用SPECCPU2006测试工具来进行Intel CPU Xeon E7-**** v4的测试以及调优,计划在机器I840-G ...

  5. 【Kubernetes 018】cfssl创建证书并结合RBAC的RoleBinding配置新用户config文件操作详解

    安全性是企业生产环境中的头等大事,对于访问同一集群的不同用户或者用户组来说,将权限分级是很有必要的.和很多云厂商一样,k8s也是采用按照角色和用户绑定的方式来分配权限的,这一节我们就来实际操作下,新建 ...

  6. menuconfig与Kconfig入门学习

    概述 menuconfig是Linux平台用于管理代码工程.模块及功能的实用工具. menuconfig的使用方式通常是在编译系统之前在系统源代码根目录下执行make menuconfig命令从而打开 ...

  7. Makefile快速学习

    Makefile经典教程(掌握这些足够) Makefile经典教程(掌握这些足够) Makefile经典教程(掌握这些足够) makefile很重要 什么是makefile?或许很多Winodws的程 ...

  8. 如何使用matlab的siso,MIMO-SISO-MATLAB-program 和 的 仿真源代码,非常详细,可以参考学习 267万源代码下载- www.pudn.com...

    文件名称: MIMO-SISO-MATLAB-program下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 213 KB 上传时间: 2016-01-09 ...

  9. Web.config文件使用

    一.认识Web.config文件 Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式), ...

最新文章

  1. springboot+kafka(ip地址瞎写的)
  2. 时髦的互联网公司都在用什么技术?
  3. android studio mac svn插件,mac下Android studio如何使用SVN进行版本控制?
  4. Ajax实战:Ajax的四个基本原则
  5. spring-security-oauth2实现OAuth2.0服务
  6. MySQL大表优化技术要点科普
  7. 什么是小样本学习?这篇综述文章用166篇参考文献告诉你答案
  8. jupyter notebook 设置默认目录
  9. 图书馆管理系统项目思路
  10. ElasticSearch学习(二):ElasticSearch下载与运行
  11. 示例1---从记事本中读取数值,然后写到数组中
  12. 产品经理三大证书,考哪个好
  13. PS抠图后有毛边怎么处理?
  14. 自学单片机是否先学c语言,学习单片机一定要先学好C语言再去学单片机吗
  15. g mysql windows_Windows平台配置5.7版本+MySQL数据库服务
  16. WMS系统(二)盘点之“核对库存”
  17. opencv的基本数据类型CvPoint,CvSize,CvRect和CvScalar
  18. 在64位Ubuntu 16.04系统里安装Qt 5.9.1
  19. 怎么把paper快快读了
  20. HTML元素中的属性2(路径详解)—零基础自学网页制作

热门文章

  1. 如何在Mac上删除iPhone和iPad iCloud备份?
  2. https://dl.bintray.com/scalding/generic/waroverlay.gradle不能访问
  3. [Matlab科学计算] Matlab打开Labview保存的TDMS文件
  4. 51NOD - 1305 Pairwise Sum and Divide(思维)
  5. 硬件知识:电机驱动芯片——DRV8833、TB6612、A4950、L298N的详解与比较
  6. dayjs 取本周时间段
  7. 【笔记】DenseTNT:End-to-end Trajectory Prediction from Dense Goal Sets
  8. 如何下载下载国标文件
  9. Karma与TSLint
  10. 光是无限远服务器怎么登陆,sv独立客户端怎么连接服务器(sv独立客户端登录密码)...