• 新站上线,多多支持!

linux-2.6.22.6内核启动流程分析之配置

Linux主题 admin 112℃ 0评论

  配置过程最终结果是生成fig文件,我们想要对配置的目的有很清楚的了解,必须先对.config文件进行分析。通过cd命令切换到linux-2.6.22.6内核目录,输入

  分析fig文件被什么文件使用,为了简便化我们以网卡DM9000配置项为例进行分析。首先要在.config文件内找到关于DM9000相应配置,vi编辑器环境下输入/DM9000命令既能执行搜索命令,搜索的结果如下图:

  这里CONFIG_DM9000=y代表编译时对DM9000的支持会被编译进内核,如果不进行设置,内核就不支持网卡,如果CONFIG_DM9000=m的话,最终网卡会被编译成一个模块,这个模块可以动态加载到内核中。

  输入:q命令退出vi编辑器,通过grep CONFIG_DM9000 * -rwR可以查找到哪些文件包含 CONFIG_DM9000 这个值。执行上面搜索命令,可以找到有很多和CONFIG_DM9000 相匹配的文件目录,省去一些默认配置和一些其他芯片的配置文件,可以看到下图内容:

  不管配置项中CONFIG_DM9000=y 或者CONFIG_DM9000=m,只要使能网卡,CONFIG_DM9000不为空,autoconf.h中宏都被定义为1,这些宏在c源码中被包含使用。显然fig中这些配置项中配置等于y或者等于m的差异不是在自动生成.h文件中体现,那么我们可以先去猜测这些差异是在子目录下的Makefile中体现。

  我们可以看出f文件内容与.config文件内容相似,由它的名字也可以猜到auto.config文件也是执行make命令或make uImage命令根据.config文件内容自动生成。auto.config文件也会和autoconf,h文件一样被其它文件包含,而包含它的文件是顶层的Makefile文件。

  总结:通过以上分析可以知道,配置内核时会生成.config文件。执行make 命令或 make uImage 命令会根据配置生成的.config文件,执行以下两种操作:

  2.config文件内容同时被用来自动创建生成autoconf.h文件,autoconf.h文件定义相应宏作为头文件被c源代码包含使用。

  本站(无色榴莲)所刊载文章不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。


本文由稳网互联整理发布,内容来自互联网,如有侵权请邮件联系,本站将第一时间删除!
喜欢 (0)
发表我的评论
取消评论
表情     9 + 4 = ? (必填)

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址