Linux内核的.config 配置文件和defconfig 配置文件

news2024/11/19 13:26:03

  Linux 内核可以通过输入“make menuconfig”来打开图形化配置界面,menuconfig 是一套图形化的配置工具

一、图形化界面的操作

  menuconfig 图形化的配置工具需要 ncurses 库支持。ncurses 库提供了一系列的 API 函数供调用者生成基于文本的图形界面,因此在使用 menuconfig 图形化配置界面之前需要先在Ubuntu 中安装 ncurses

sudo apt-get install build-essential
sudo apt-get install libncurses5-dev

  以 RK3568 为例,在内核源码目录下输入以下命令,打开图形化配置界面。

export ARCH=arm64
make rockchip_linux_defconfig
make menuconfi

二、.config 配置文件介绍

  图形化配置界面配置好了以后,会得到一个.config 配置文件。在编译内核的时候会根据这个.config 文件来编译内核。
  当我们使用 make menuconfig 的时候,会通过 mconf 程序去解析 Kconfig 文件,然后生成对应的配置文件.config。mconf 程序源码在内核源码 scripts/kconfig 目录下。有了.config 配置文件以后,内核就可以根据这个配置文件来编译内核,比如控制某些驱动编译进内核,或者控制某些驱动不编译内核。config 会通过 syncconfig 目标将.config 作为输入然后输出需要文件,这里我们重点更关注auto.conf 和 autoconf.h。
在这里插入图片描述
  在 auto.conf 文件中,存放的是配置信息。
在这里插入图片描述
  在内核源码的顶层 Makefile 中会包含 auto.conf 文件,以此引用其中的变量来控制 Makefile的动作,如哪些驱动编译,哪些驱动不编译。如:
  auto.conf 文件

include include/config/auto.conf
CONFIG _A=y

  顶层 Makefile 中包含 auto.conf 文

ifeq ($(dot-config),1)
include include/config/auto.conf
Endif

  内核源码下 drivers/A/Makefile

obj-$(CONFIG _A) +=A.o

  注:obj-y 就是编译进内核,obj-m 就是编译成 ko 文件。
  在 autoconf.h 中,是 C 语言代码。用来配合编译时的条件选择。如下图所示
在这里插入图片描述

三、defconfig 配置文件

  defconfig 文件和.config 文件都是 linux 内核的配置文件,defconfig 文件在内核源码的arch/(ARCH)/configs 目录下,是 Linux 系统默认的配置文件。比如说瑞芯微平台 Linux 源码默认的配置文件为:kernel/arch/arm64/configs/rockchip_linux_defconfig。
  .config 文件位于 Linux 内核源码的顶层目录下,编译 Linux 内核时会使用.config 文件里面的配置来编译内核镜像。
  如果.config 文件存在,make menuconfig 界面的默认配置也就是当前.config 文件的配置,如果修改了图形化配置界面的设置并保存,那么.config 文件会被更新。
  如果.config 文件不存在,使用命令“make XXX_defconfig”命令会根据 arch/$(ARCH)/configs目录下的 XXX_defconfig 自动生成.config。make menuconfig 界面的默认配置则为 defconfig 文件中的默认配置,比如说瑞芯微平台 Linux 内核源码目录下输入“make rockchip_linux_defconfig” 会自动生成.config 文件。那么此时rockchip_linux_defconfig 的配置项和.config 的配置项是相同的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1105675.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据保护双保险,一文读懂NVMe协议中的Get LBA Status功能

就在前不久,我们发布了全新一代PCIe 5.0企业级NVMe SSD——PBlaze7 7940。与上一代PCIe 4.0产品相比,其综合性能有着超过100%的提升,增添了很多新的功能以满足企业级客户多样化的产品需求。其中一项新的功能便是我们今天谈论的主角——Get LB…

Mysql中日期相关的函数

Mysql中日期相关的函数 时间戳转变成日期datetime格式的函数 FROM_UNIXTIME(时间戳),如下图: 获取datetime类型的月份和年份的函数 month获取月份,如下图: year获取年份,如下图: 给特定日期加一个月…

2023年四川省安全员B证证模拟考试题库及四川省安全员B证理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年四川省安全员B证证模拟考试题库及四川省安全员B证理论考试试题是由安全生产模拟考试一点通提供,四川省安全员B证证模拟考试题库是根据四川省安全员B证最新版教材,四川省安全员B证大纲整理…

软件测试基础知识整理(详细版)

一、软件测试概述 1、软件缺陷 软件缺陷:又称之为“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。 缺陷的表现形式: 软件没有实现产品规格说明书所要求的功能模块; 软件中出现了产…

C++对象模型(16)-- 构造函数语义学:临时对象

临时对象是栈上的没有名字的对象,它在源码中是不可见的,是编译器偷偷摸摸在背后干的。 比如下面的代码就会产生临时对象: int i 1;// 这里的 i 会产生临时对象,这里的临时对象是在系统中产生,代码中看不见的 // 首先…

Deep Joint Demosaicking and Denoising

Abstract 去马赛克和去噪是数字成像流程的关键第一阶段,但它们也是一个严重不适定的问题,从单个噪声测量中推断出每个像素的三个颜色值。早期的方法依赖于手工制作的滤波器或先验,并且在硬情况下(例如摩尔纹或薄边缘)…

Bootstrap的导航栏设计相关知识

Bootstrap的导航栏设计相关知识 目录 01-基础知识02-最基本的导航栏设计例子03-带下拉菜单的导航04-在导航栏中添加表单元素05-固定导航栏的位置(如固定到顶部和底部)06-设计导航栏的颜色和文本颜色 01-基础知识 导航栏是网页设计中不可缺少的部分,它是整个网站的…

ABB变频器使用PROFINET IO通信模块时的激活方法

ABB变频器使用PROFINET IO通信模块时的激活方法 ABB传动通讯总线适配器的激活(ACS380): 首先,如下图所示,要采购并安装PROFINET IO总线通信模块(我这里支持3种通信协议,大家在实际使用时,用到哪种就购买哪种即可), 如下图所示,进入参数设置, 如下图所示,进入“完…

如何使用Python抓取PDF文件并自动下载到本地

目录 一、导入必要的库 二、发送HTTP请求并获取PDF文件内容 三、将PDF文件内容写入到本地文件中 四、完整代码示例 五、注意事项 六、错误处理和异常处理 七、进一步优化 总结 在Python中,抓取PDF文件并自动下载到本地需要使用几个不同的库。首先&#xff0…

EV SSL数字证书贵吗

EVSSL证书通常适用于具有高需求的网站和企业,特别是涉及在线交易、金融服务、电子商务平台等需要建立用户信任的场景。大型企业、金融机构、电子商务平台等可以受益于使用EV证书来提升品牌形象和安全性。 申请EVSSL证书(Extended Validation SSL certifi…

复制粘贴(二):操作剪贴板 navigator.clipboard

使用 navigator.clipboard 可以随时获取剪贴板对象&#xff08;也就是说&#xff0c;在 copy/paste 事件外也可以用&#xff09; 但是&#xff0c;此操作必须用户允许&#xff1a; readText readText() 获取剪贴板中的文本内容 <!DOCTYPE html> <html><head&…

java: 错误: 无效的源发行版:17

原因分析&#xff1a; 这个错误表明你的Java开发环境不支持Java 17的源发行版。这可能是因为你的JDK&#xff08;Java Development Kit&#xff09;版本过低&#xff0c;不支持Java 17的特性。 以下是解决此问题的一些步骤&#xff1a; 检查你的JDK版本&#xff1a;在命令行…

java影院管理信息系统设计参考学习

系统设计&#xff1a; 1.1功能结构 为了更好的去理清本系统整体思路&#xff0c;对该系统以结构图的形式表达出来&#xff0c;设计实现该影院系统的功能结构图如下所示&#xff1a; 图1-1 系统总体结构图 1.2数据库设计 1.2.1数据库E/R图 ER图是由实体及其关系构成的图&…

易点易动设备管理系统帮助生产企业提升设备维修效率

在现代制造业中&#xff0c;设备的正常运行对于生产企业的成功至关重要。然而&#xff0c;设备故障和维修工作常常成为生产过程中的瓶颈&#xff0c;影响生产效率和利润。为了解决这个问题&#xff0c;许多企业采用了现代化的设备管理系统&#xff0c;其中易点易动设备管理系统…

智能管家“贾维斯”走进现实?AI Agent或成2023科技领域新风向标

漫威粉们想必都知道《钢铁侠》系列电影中&#xff0c;有一个不可或缺的角色——贾维斯。但就算是没有看过任何一部大电影的路人&#xff0c;只要通过一个词就可以了解“贾维斯”是一个什么样的角色——智能管家。 作为托尼斯塔克的助手&#xff0c;贾维斯的存在让主人的生活更…

分享40个Python游戏源代码总有一个是你想要的

下载链接&#xff1a;https://pan.baidu.com/s/1bwj2GQM1CbO1x2EIC-ZF6g?pwd8888 提取码&#xff1a;8888 项目名称&#xff1a; Chinese Chess Xiangqi 中国象棋 Python Python 图形化麻将游戏 (带蒙特卡洛AI) python做的一个足球小游戏 python做的坦克大战游戏 py…

【R】数据相关性的可视化

一千零一技|相关性分析及其可视化&#xff1a;copy&paste&#xff0c;搞定 .libPaths(c("/bioinfo/home/software/miniconda3/envs/R4.0/lib/R/library")) #data("mtcars") library("PerformanceAnalytics") # pdf("test.pdf") #…

前端开发调试技巧:如何在Component下选中当前插件并且查看当前插件信息

在react开发项目中&#xff0c;在Component下选中组件&#xff0c;然后在控制台输$r 按回车键即可输出该组件信息。例如 $r.props输出该组件的props参数。例子详情见如下截图

使用canvas实现图片轮播抽奖效果,轮播速度由慢到快,然后再到慢

整体的效果就是中间的那张图片会连续不断地切换&#xff0c;我部署到github上面了&#xff0c;可以点击链接试一试&#xff1a;canvas在线抽奖系统效果 附上源代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-…

【C++那些事儿】初识C++ 命名空间,C++中的输入输出以及缺省函数

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;数据结构和算法初阶更新完毕&#xff0c;我们继续来扩充我们的知识面&#xff0c;今天我们从认识C开始来带大家学习C&#xff0c;我之前看过一套…