默认情况下,当我们输入make menuconfig,是针对x86平台来配置内核(实际上内核源代码顶层目录中的Makefile里,有确定我们的Linux所运行的平台的代码,执行make menuconfig默认是针对我们所运行的平台来配置内核的),可是当我们要编译往开发板上下载的内核时,实际上也就使我们要交叉编译我们的内核,则需要针对特定的平台来配置和编译内核。比如我们要针对ARM平台,我们可以这样来开始我们的配置:
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
CROSS_COMPILE变量用来指定编译器,在这里是arm-linux-gcc(在menuconfig之前有一个空格),也可以用编译器的绝对路径。而ARCH参数则用来指定体系架构,在这里是arm。为了避免每次配置和编译内核都要显式地指定这两个变量,我们也可以直接在内核源码顶层根目录下的Makefile中直接修改这两个变量的取值。
在arch/arm/configs目录下有许多针对特定板子的默认配置文件,我们可以用两种方法来使用这些默认的配置文件:
第一,执行make def_config,比如:
make mini2440_defconfig
这样内核的构建系统就会自动的在内核源码根目录创建与默认配置文件内容相同的.config文件。
第二,直接copy默认的配置文件到内核源码跟目录的.config。
之后再执行make menuconfig(假定ARCH和CROSS_COMPILE两个变量已在Makefile中修改过了。)就可以开始正常的配置了(配置过程中完成一些诸如创建头文件等的必要工作)。
之后执行make(假定ARCH和CROSS_COMPILE两个变量已在Makefile中修改过了。)就可以开始内核的编译构建过程了。
阅读(1910) | 评论(0) | 转发(0) |