1、分析vmlinux可执行文件是如何生成的?
1)在源代码顶层目录下
1.在内核源码顶层目录下打开Makefile文件,搜索vmlinux
vmlinux: scripts/link-vmlinux.sh autoksyms_recursive $(vmlinux-deps) FORCE
+$(call if_changed,link-vmlinux)
2)
2、整理内核编译流程: uImage/zImage/Image/vmlinx之间关系。
1)uImage镜像文件
1.在内核源码顶层目录下打开Makefile文件,搜索uImage,发现没有目标,猜测在Makefile中包含其他路径的Makefile文件
596 include arch/$(SRCARCH)/Makefile = arch/arm/Makefile
2.进入arch/arm目录下,打开Makefile文件,搜索uImage,打印每个变量信息
323 $(BOOT_TARGETS): vmlinux
324 $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
打印信息内容:
@
-f ./scripts/Makefile.build obj
arch/arm/boot
uImage
make -f ./scripts/Makefile.build obj=arch/arm/boot MACHINE=arch/arm/boot/uImage
3.进入内核源码/scripts/Makefile.build文件,搜索uImage
6 src := $(obj)&#