源代码目录顶层目录中的Makefile文件被称作顶层Makefile,它里面涉及到一个ARCH参数,还有一个CROSS_COMPILE参数,分别对应处理器内核架构和交叉编译器。一般情况下,ARCH默认为x86,CROSS_COMPILE默认也是x86平台上的交叉编译器。在执行make menuconfig,make bzImage,make modules等命令时,系统都会首先分析ARCH的值,根据选择的平台来执行相应操作。因此,如果想编译ARM平台的Linux内核,在输入相应命令时要加上架构和交叉编译器选项,如
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux- bzImage
make ARCH=arm CROSS_COMPILE=arm-linux- modules
如果直接将
ARCH=arm
CROSS_COMPILE=arm-linux-
这两行添加到顶层Makefile的开头,就可以将ARCH和CROSS_COMPILE的默认值改成"arm"和"arm-linux-"了。以后再编译ARM平台的Linux内核时就可以直接使用make menuconfig/bzImage/modules等命令,而不用再加"ARCH=arm CROSS_COMPILE=arm-linux-"。