关键字:
二、
构造内核
常用命令包括:
make config, dep, clean, mrproper, zImage, bzImage, modules, modules_install
(1) make config
核心配置,调用./scripts/Configure 按照arch/i386/config.in 来进行配置。
命令执行完后产生文件.config,其中保存着配置信息。下一次再做make config将产生新的.config文件,原.config被改名为.config.old
(2)make dep
寻找依存关系,产生两个文件.depend和.hdepend。其中.hdepend表示每个.h文件都包含其它哪些嵌入文件。而.depend 文件有多个,在每个会产生目标文件(.o)文件的目录下均有,它表示每个目标文件都依赖哪些嵌入文件(.h)。
(3)make clean
清出以前构核所产生的所有目标文件、模块文件、核心以及一些临时文件等,不产生任何文件。
(4)make mrproper
删除所有因构核过程中产生的所有文件,及除了做make clean外,还要删除.config,.depend等文件,把核心源码恢复到最原始的状态。下次构核时就必须重新配置了。
(5)make, make zImage, make bzImage
make:
构核。通过各目录的Makefile文件进行。会在各个目录下产生一大堆目标文件,若核心代码没有错误,将产生文件vmlinux,这就是所构的核心。并产生映射文件System.map通过各目录的Makefile文件进行。.version 文件中的数加1,表示版本号(又产生一个新的版本了),让你明白,你已经对核心改动过多少次了。
Make zImage:
在make的基础上产生压缩的核心映象文件./arch/$(ARCH)/boot/zImage以及在./arch/$(ARCH)/boot/compresed/目录下产生一些临时文件。
Make bzImage:
在make 的基础上产生压缩比例更大的核心映象文件./arch/$(ARCH)/boot/bzImage以及在./arch/$(ARCH)/boot/compresed/目录下产生一些临时文件。在核心太大时进行。
(6)make modules
编译模块文件,你在make config时所配置的所有模块将在这时编译,形成模块目标文件,并把这些目标文件存放在modules目录中。使用如下命令看一看。
Ls modules
(7)make modules_install
把上面编译好的模块目标文件目录/lib/modules/$KERNEL_VERSION/ 中。比如我的版本是2.0.36,做完这个操作后可使用下面的命令看看:
ls /lib/modules/2.0.36/
相关的命令还有很多,有兴趣可看相关资料和Makefile文件。
另外注意,这儿我们产生了一些隐含文件
.config
.oldconfig
.depend
.hdepend
.version
它们的意义应该很清楚了。