通常使用购买的开发板,我们都会得到一个附送的光盘,光盘保存了相关的资料及源码,其中包括针对该款开发板移植的内核源码压缩包。下面我们讲解如何使用该压缩包编译得到内核镜像文件zImage。zImage是使用gzip压缩过的内核二进制文件,是针对嵌入式系统的常用内核格式。
编译步骤如下。
(1)将内核源码压缩包复制到虚拟机的一个目录中,注意,要保证当前用户在该目录下的有相关权限,如用户家目录。
(2)解压缩内核源码压缩包。
(3)mini2440根据屏的不同有多种款式,所以在源码顶级目录下有很多编译的配置文件,如针对x35屏的config_mini2440_x35文件,配置文件决定了需要编译哪些代码及如何配置内核的功能等,我们可以直接把配置文件复制成当前目录下的.config文件,这就是内核的默认配置文件。
(4)为了和u-boot传递的机器号对应,我们需要修改arch/arm/mach-s3c2440/machmini2440.c文件的第487行,将mini2440修改成s3c2440,关于机器号的内容可参考其他相关资料。
(5)在内核源码顶级目录下执行make zImage编译内核。编译完成后可以在arch/arm/boot/目录下得到zImage文件。
(6)u-boot默认支持的是uImage格式的内核镜像文件,从zImage得到uImage需要使用u-boot提供的一个工具,具体做法是把u-boot源码目录下tools目录下的mkimage工具复制到虚拟机/usr/bin目录下,然后在内核源码顶级目录下执行命令make uImage,最后可以在arch/arm/boot/目录下得到uImage文件。uImage就是最终u-boot支持的内核镜像文件。