menuconfig的配置文件|Linux内核根目录中的配置文件config中包含了许多宏定义

⑴ 如何实现类似linux menuconfig的配置工具

Make Menuconfig简介make menuconfig 图形化的内核配置make mrproper —–删除不必要的文件和目录. #make config(基于文本的最为传统的配置界面,不推荐使用) #make menuconfig(基于文本选单的配置界面,字符终端下推荐使用) #make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用) #make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦) 目的都是生成一个.config文件,这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。 选择相应的配置时,有三种选择,它们分别代表的含义如下: Y--将该功能编译进内核N--不将该功能编译进内核M--将该功能编译成可以在需要时动态插入到内核中的模块菜单解释[1]、Code maturity level options:代码成熟等级1.1.prompt for development and/or incomplete code/drivers. 关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址http://www.linuxprobe.com/chapter-02.html.如果要试验现在仍处于实验阶段的功能,比如khttpd、IPv6等,就必须把该项选择为Y了;否则可以把它选择为N。在Linux的世界里,每天都有许 多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些 bugs。这个问题是说,有一些drive还在做测试中,问您是否要选择这些drive或支持的程序码。如果键入Y,往后将会出现一些还在测试中的东西给 您做选择。(像Java的程序码和PCI bridge),台则就键入

⑵ 请问,l嵌入式inux内核编译的时候,命令make menuconfig 是读取的什么文件,和.config有关吗

学嵌入式就要不但要学其然,还要学其所以然~(1)你的步骤很不规范,而且没有明白各步骤都做了什么。(2)编译内核的过程如下: A. 如果你原来就有配置文件,比如你的S3C_2410_defconfig,你需要执行的是 make S3C_2410_defconfig ARCH=ARM(这样他做的就是将arch/arm/configs中的 s3c2410_defconfig复制到源码根目录下为.config文件,如果你指定ARCH=x86那么 它就会从arch/x86目录下找配置文件。(这里涉及到一个规范问题,最好不要直接 复制改名,详细的可以参考内核文档)。现在已经有了.config配置文件,下面直接 执行make就可以了,当然需要在Makefile文件中指定参数或者make时加参数。 B. 如果没有配置文件,则需要配置内核,目的:生成内核编译配置文件 .config 有四种方法。 文本交互 make congig .文本窗口 make menuconfig 图形窗口 make xconfig 使用现有配置文件 make oldconfig(作用:备份当前.config文件为.config.old,使用已 有的内核配置文件,仅提示一些新的特性)(3)所以,你make menuconfig的时候会生成.config文件把原来的覆盖掉,当然原来的配置不 起作用了,你需要用make oldconfig或者直接make才行。

⑶ gentoo在make menuconfig配置完成后,有一个.config文件 保存在哪里啊,找

#cd/usr/src/linux#vi.config

⑷ Linux内核根目录中的配置文件.config中包含了许多宏定义,

一、Linux内核的配置系统由三个部分组成,分别是: 1、Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则; 2、配置文件(config.in(2.4内核,2.6内核)):给用户提供配置选择的功能; 3、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make config、Make menuconfig 和 make xconfig)。这些配置工具都是使用脚本语言,如 Tcl/TK、Perl 编写的(也包含一些用 C 编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写 Makefile 和配置文件就可以。 二、Make menuconfig过程分析 1、scripts文件夹存放的是跟make menuconfig配置界面的图形绘制相关的文件,我们作为使用者无需关心这个文件夹的内容 2、读取arch/arch/$ARCH/Kconfig以及各子目录下的Kcondig文件,生成配置条目。 $ARCH由linux内核根目录下的makefile文件决定 ARCH ?= arm CROSS_COMPILE ?= arm-linux- Kconfig文件中为配置信息的宏定义,与我们在make menuconfig图形界面看到的信息一致。 例如: config CPU_S3C2410_DMA bool depends on S3C2410_DMA && (CPU_S3C2410 || CPU_S3C2442) default y if CPU_S3C2410 || CPU_S3C2442 help DMA device selection for S3C2410 and compatible CPUs 因此,Kconfig文件很重要的作用就是:定义配置宏、相关依赖关系、帮助信息 3、读取内核根目录下.config文件,生成配置选项:[*]编译进内核 [M]编译为模块 [ ]不编译 arch/arm/configs/文件夹下存放了一些配置模板 我们可以通过cp /arch/arm/configs/xx_defconfig .config来使用这些配置模板 通过图形界面变更配置选项会自动更新到.config文件中 make disclean 会删除.config 4、编译过程根据.config生成 Linux内核根目录下的 include/config/auto.conf文件 CONFIG_EEPROM_93CX6=m CONFIG_DM9000=y 根目录Makefile以及子目录的Makefile根据auto.conf生成编译条件 obj-$(CONFIG_DM9000) += dm9000.o //obj-m += dm9000.o 5、编译过程根据.config生成Linux内核根目录下的 include/linux/autoconf.h文件 .config 或 auto.conf 中定义要编译为 m 模块的项,如: CONFIG_DEBUG_NX_TEST=m 在 autoconf.h 中会被定义为: #define CONFIG_DEBUG_NX_TEST_MODULE 1 .config或auto.conf 中定义为编译为 y 的选项,如: CONFIG_DM9000= y 在 autoconf.h 中会被定义为: #define CONFIG_DM9000 1 autoconf.h中是.config或者auto.conf中配置信息的另一种体现形式,它是站在源码的角度,供源码使用的C语言宏定义。 6、总结 我们在使用make menuconfig时,首先会确定架构arch,然后读取arch目录的Kconfig中的配置宏定义,生成编译条目,然后读取Linux内核根目录下的.config选项, 将.config中的配置信息显示在图形界面上[*] [M] or []。我们在图形界面中更改配置选项会自动保存到.config文件中。编译过程根据.config随后生成auto.conf文件,它决定了makefile中各个文件的编译类型,静态编译进内核、编译成模块、不编译;同时生成autoconf.h,它以C语言宏定义的形式表达了 各个文件是否被编译,源码中会判断某文件是否被编译进行不同的处理。 三、将自定义文件添加进内核配置系统 1、修改文件目录下Kconfig文件 添加: config HELLO tristate "just a test hello" default y —help— This is a test //tristate 或 bool 表示可选择种类数量3[*][M][ ]、2 // "just a test hello"将作为标题显示在配置的图形界面 2、修改文件目录下makefile文件 obj-$(CONFIG_HELLO) += hello_drv.o 3、make menuconfig 我们会在字符设备驱动的界面看到 ust a test hello 并且默认编译进内核 4、make编译内核发现 autoconfig.h 自动添加 #define CONFIG_HELLO 1 auto.conf 自动添加 CONFIG_HELLO=y

⑸ 刚刚开始学习Linux,不知道Make menuconfig怎么使用

Linux内核的make menuconfig实际上是执行了:scripts/kconfig/mconf arch/mips/Kconfigmconf表示是 menuconfig,如果是用基于QT的配置工具,则执行的将会是qconf,arch/mips/Kconfig是要读取的Kconfig文件,这个会因平台而异,这里因为针对的是MIPS平台,故读取的是arch/mips/目录下的Kconfig文件。如果Linux源码树顶层目录下已有.config文件,make menuconfig则从.config文件取默认参数,如果没有.config则从各个Kconfig中取默认参数。mconf会把用户的选择保存到Linux源码树顶层目录的.config文件中,然后解析该文件并将解析结果写入到include/linux/autoconf.h 中。include/linux/autoconf.h将会被include/linux/config.h包含,因此,需要关心配置情况的内核源文件只需要#include <linux/config.h>即可。mconf解析.config文件时所采用的规则具体要仔细分析mconf.c源代码。


赞 (0)