最近编译一小工具源码时,需要用到内核源码的支持。编译内核源码时,用到了一条命令make oldconfig,查阅了一些资料,弄清了它的作用。如下:
1、如果.config不存在,运行make config/menuconfig时的缺省设置由固化在各个Kconfig文件中各项目的缺省值决定。
2.如果.config存在,运行make config/menuconfig时的缺省设置即是当前.config的设置,若对设置进行了修改,.config将被更新。
make menuconfig 会将原来的.config文件保存为.config.old。
3. arch/arm/defconfig是一个缺省的配置文件,make defconfig时会根据这个文件生成当前的.config。
4. arch/arm/configs文件夹中有许多命名为xxx_defconfig的配置文件,如果运行make xxx_defconfig,当前.config文件会由xxx_defconfig文件生成。
5. make oldconfig的作用:
在《Linux内核设计与实现3》(Linux Kernel Development 3)中写道:
在修改过配置文件之后,或者在用已有的配置文件配置新的代码树的时候,运行make oldconfig来验证和更新配置。
这里,对make oldconfig的作用没有作明确的说明;
在linux-2.6.xx目录的README文件中,说明make oldconfig的作用:所有问题都基于已有的.config文件,只对新特性和新设定提出询问;
在《构建嵌入式Linux系统》(Building Embedded Linux Systems)中,详细解释了make oldconfig的作用:
make oldconfig:
通过命令界面配置内核,会自动载入既有的.config配置文件,并且只有在遇到先前没有设定过的选项时,才会要求你手动设定。然而,make config却会要求你手动设定所有的选项,即使你之前曾设定过。开发者通常会通过make oldconfig将他们的配置更新为官方配置选项所做的变更,以避免重新设定整个内核的配置。
make oldconfig会备份当前.config文件为.config.old,如若make config/menuconfig设置不当可用于恢复先前的.config。http://blog.chinaunix.net/uid-22028566-id-3196168.html