linux为什么安装不了ifconfig(oldconfig具体使用哪些config文件)

编译linux内核时,一般会先用make oldconfig指令配置.config文件,网上资料说make oldconfig会用到当前目录中已经存在的.config文件,那如果当前目录中没有.config文件呢?此时make oldconfig和make config是一样的吗?我以练习ldd3时用到的linux-2.6.10和Ubuntu5.04为例来说明。

首先来看干净的linux-2.6.10代码执行make oldconfig指令:

linux为什么安装不了ifconfig(oldconfig具体使用哪些config文件)(1)

干净的代码在当前目录中是不存在.config文件的,但是可以看到有提示 "using defaults found in /boot/config-2.6.10-5-386",config-2.6.10-5-386是Ubuntu5.04自带内核的配置文件,看来make oldconfig指令不仅会使用当前目录中的.config文件,也会使用其它位置的config文件,那make oldconfig指令到底会使用哪些config文件呢?

答案就在linux-2.6.10/scripts/kconfig/confdata.c这个文件中:

linux为什么安装不了ifconfig(oldconfig具体使用哪些config文件)(2)

可以看到所使用的config文件按顺序依次是:

  1. 当前目录中的 .config
  2. /lib/modules/$UNAME_RELEASE/.config
  3. /etc/kernel-config
  4. /boot/config-$UNAME_RELEASE
  5. 代码中的 arch/$ARCH/defconfig

当这5个文件都不存在时,make oldconfig和make config的作用就是一样的了。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页