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内核(4.x)config选项介绍.pdf”是一份重要的文档,主要介绍了Linux内核的常用配置项及其作用。Linux内核是一种开源的操作系统内核,其个性化配置的灵活性很高。因此,该文档对于Linux内核的开发人员用户来说非常有用。 该文档首先介绍了内核配置的工具方法。在Linux内核开发使用过程中,可以通过多种方式来配置内核选项,例如make menuconfig、make defconfig等命令。文档对各种命令及其参数进行了详细介绍,有助于读者更加熟悉内核的构建过程。 其次,该文档介绍了内核配置选项的分类作用。内核配置选项分为核心选项、配置选项文件系统选项等。核心选项是内核开发中最基本的选项,包括处理器类型、内存管理等重要的基础选项。配置选项包括驱动程序、网络设备等。文件系统选项则涵盖了文件系统的相关选项。内核选项的作用非常关键,因为这些选项会影响到内核的运行效率稳定性。 此外,该文档还介绍了许多具体的内核选项,并对每个选项的作用使用方法进行了详细的解释。例如,“processor family”选项可以用于选择处理器的类型,而“debug kernel”选项则可以决定内核是否输出调试信息。这些具体的选项对于Linux内核开发人员用户来说非常有价值。 最后,该文档还提供了一些有用的内核调试性能优化技术。例如,可以通过设置内核调试选项来捕获内核崩溃的信息,也可以通过调整内核选项来提高内核的运行效率响应速度。 总的来说,“Linux内核(4.x)config选项介绍.pdf”是一份非常有用、详细的文档。它提供了丰富的内核配置选项信息,并对内核开发使用方面的关键知识进行了深入的介绍。对于Linux内核开发人员用户来说,这份文档无疑是一份不可或缺的资源。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值