最近在裁剪内核慢慢关注这个问题

defconfig、 .config

defconfig 一般在arch/arm64/configs/目录下,是一个简单的内核配置,是没有展开的。

.config一般是用来执行make menuconfig的基础配置

从.config到defcong不是简单的复制操作,而是make arch=arm64 defcong

通过menuconfig生成的.confg也不是直接拷贝成defcong,而是使用make savedefconfig

The .config file is not simply copied from your defconfig file. The motivation for storing defconfig in such a format is next: in defconfig we can only specify options with non-default values (i.e. options we changed for our board). This way we can keep it small and clear. Every new kernel version brings a bunch of new options, and this way we don't need to update our defconfig file each time the kernel releases. Also, it should be mentioned that kernel build system keeps very specific order of options in defconfig file, so it's better to avoid to modify it by hand. Instead you should use make savedefconfig rule.

Simplified explanation

When .config file is being generated, kernel build system goes through all Kconfig files (from all subdirs), checking all options in those Kconfig files:

  • if option is mentioned in defconfig, build system puts that option to .config with value chosen in defconfig
  • if option isn't mentioned in defconfig, build system puts that option to .config using its default value, specified in corresponding Kconfig

Check scripts/kconfig/Makefile and scripts/kconfig/conf.c files to see how it's actually done.

具体查看

https://stackoverflow.com/questions/41885015/what-exactly-does-linux-kernels-make-defconfig-do

defconfig、 .config相关推荐

  1. 在配置文件(.settings、.config)中存储自定义对象

    引言 我前面曾写过一篇<使用配置文件(.settings..config)存储应用程序配置>,我在其中指出"settings无法实现对一些复杂类型及自定义类型的支持". ...

  2. linux kernel defconfig和.config

    在Linux内核里,编译内核文件时,先要配置.config文件,然后Makefile在编译时通过读取.config文件的配置来选择要编译的文件,选择驱动的加载方式. xxx_defconfig 一般在 ...

  3. linux kernel: defconfig和.config

    在Linux内核里,编译内核文件时,先要配置.config文件,然后Makefile在编译时通过读取.config文件的配置来选择要编译的文件,选择驱动的加载方式. defconfig 一般在arch ...

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

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

  5. Git最佳实践(init、config、status、add、commit、diff、push) 1.0v

    Git最佳实践 工程设计领域中使用版本控制来管理工程蓝图的设计过程,在IT开发过程中借鉴了版本控制思想管理代码的版本迭代. Git是一个开源的分布式版本控制系统,最初由Linus Torvalds创作 ...

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

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

  7. UVM学习笔记(一)工厂、phase机制、config

    目录 一.工厂机制 1.1 使用步骤 1.2 um_coreservice_t类 1.3 factory创建component.object实例的方法 1.4 UVM创建component.objec ...

  8. Java微服务——SpringCloud实战篇2:整合Gateway、Config、Bus

    Java微服务--SpringCloud实战篇2:整合Gateway.Config.Bus 如果小伙伴在阅读下列内容时,对于编写SpringCloud项目是零基础,那么请先阅读小编的另一篇博文:&qu ...

  9. Git log、diff、config 进阶

    前一段时间分享了一篇<更好的 git log>简要介绍怎么美化 git log 命令,其中提到了 alias命令,今天再继续谈谈 git相关, 看看如何通过配置自己的 git config ...

最新文章

  1. FMS3系列学习网上教程
  2. UVA 512 Spreadsheet Tracking
  3. 字符串转换成ascii码
  4. 《梦断代码》读后感 - 驱动,责任,交流,远虑
  5. MySQL外键命名规范
  6. Python库大全,建议收藏留用!
  7. Bootstrap 禁用某个菜单项
  8. 8086CPU(汇编语言,王爽)
  9. excel几个数相加等于某个数_『excel表如何从一列数据中筛选出合计等于某数的某些数?』...
  10. JavaWeb编年史(青铜时代)
  11. latex如何生成pdf标签/目录?
  12. WEB自动化学习路线(转载)
  13. 我裂了,换领导后,竟然每天都要写日报
  14. wps表格打印怎么铺满a4纸
  15. html5实现canvas迷宫游戏,HTML5/Canvas/JS 迷宫生成动画
  16. echarts自定义主题构建
  17. 电商翻身受宠社交成大势 2019上市科技股大盘点
  18. c语言洗牌发牌 无大小王 分四堆,C语言入门题
  19. java 汇编_大话+图说:Java 汇编指令——只为让你懂
  20. IBHLink S7++ 模块 AEG 调功器 Thyro-S 1S 400-100 HRL1

热门文章

  1. AIX samba服务器配置
  2. 远程客户端连接MysqL数据库太慢解决方案
  3. 商用彩信服务成为企业3G应用新需求
  4. Git和SVN的区别,Git的使用方法大全
  5. 抢占式和非抢占式的进程调度
  6. python形参中的:*args和**kwargs区别
  7. linux进程退出没有log,Linux下应用进程消失原因分析-Go语言中文社区
  8. php接收vue请求数据axios,详解vue axios用post提交的数据格式
  9. teechart绘制实时曲线_快速学会CAD绘制传输线路图纸
  10. python网络爬虫面试题,搞定这套Python爬虫面试题(面试会so easy)