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

2023-10-19 04:12

本文主要是介绍Linux内核的.config 配置文件和defconfig 配置文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  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 的配置项是相同的。

这篇关于Linux内核的.config 配置文件和defconfig 配置文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/237235

相关文章

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

什么是 Linux Mint? 适合初学者体验的桌面操作系统

《什么是LinuxMint?适合初学者体验的桌面操作系统》今天带你全面了解LinuxMint,包括它的历史、功能、版本以及独特亮点,话不多说,马上开始吧... linux Mint 是一款基于 Ubuntu 和 Debian 的知名发行版,它的用户体验非常友好,深受广大 Linux 爱好者和日常用户的青睐,

spring6+JDK17实现SSM起步配置文件

《spring6+JDK17实现SSM起步配置文件》本文介绍了使用Spring6和JDK17配置SSM(Spring+SpringMVC+MyBatis)框架,文中通过示例代码介绍的非常详细,对大家的... 目录1.配置POM文件2.在resource目录下新建beans.XML文件,用于配置spirng3

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red

Mysql8.0修改配置文件my.ini的坑及解决

《Mysql8.0修改配置文件my.ini的坑及解决》使用记事本直接编辑my.ini文件保存后,可能会导致MySQL无法启动,因为MySQL会以ANSI编码读取该文件,解决方法是使用Notepad++... 目录Myhttp://www.chinasem.cnsql8.0修改配置文件my.ini的坑出现的问题