Chinaunix首页 | 论坛 | 博客
  • 博客访问: 685526
  • 博文数量: 130
  • 博客积分: 2192
  • 博客等级: 大尉
  • 技术积分: 1410
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-31 15:37
文章分类

全部博文(130)

文章存档

2013年(1)

2012年(4)

2011年(27)

2010年(97)

2009年(1)

分类: 嵌入式

2010-07-08 20:34:15

Q:
对make ARCH=arm menuconfig命令感到很奇怪,因为在一级目录下的Makefile中找不到menuconfig这个标号,我想是在子目录下的Makefile中 有,但是我grep发现只有scripts文件家下的Makefile里才有menuconfig的标号,难道我们make ARCH=arm menuconfig实际是执行的scripts下的Makefile脚本?

其实问menuconfig的问题是我对往内核里加驱动的方式有一点疑惑,如果ARCH=arm,那第一层的内核配置Kconfig就是在 arch/arm/下面的Kconfig,在这个Kconfig里会把drivers下面的一个个文件夹下的Kconfig作为source加进来,而 drivers下面就有一个总的Kconfig,里面就已经把这些Kconfig作为source 包含了,为什么不直接把那个drivers下的Kconfig包含到arch/arm/下面的Kconfig呢?如果像现在这样,make ARCH=arm menuconfig完全用不到drivers目录下的那个Kconfig,那drivers目录下的那个Kconfig什么时候用的?只有在非交叉编译 的时候?如果是交叉编译,那这个drivers/Kconfig就是摆设?

A:

1.内核构建分两块,配置和构建,先要把配置系统建起来然后去构建内核。scripts 目录下的文件是用于配置系统构建的程序源文件。在一级Mafile中有*config目标,它代表所有和配置有关的目标,这个目标的动作就是进入 scripts目录去建配置系统
,根据不同的用户config方式(text,menu, x,qt,gtk,等)提供给用户不同的配置接口。

2.在x86平台下包含driver/Kconfig,其他平台有自己的device driver 菜单引入driver下各子目录的菜单
阅读(4216) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~