安装好了uboot后,就可以开始使用它来下载内核了。
我使用的内核版本是 2.6.29
在working目录下
mkdir kernel
cd kernel
cp /mnt/hgfs/forubuntu/kernel/linux-2.6.29.tar.gz ./
tar xvzf linux-2.6.29.tar.gz
cd linux-2.6.29
现在就在linux的顶层目录下了。
与在宿主机上编译x86的步骤一样,命令有些区别
1.清理
make distclean(有三种),一般我用这个
输出
CLEAN scripts/basic
CLEAN scripts/kconfig
CLEAN include/config
2.配置
mini2440在linux2.6后加入了配置文件,可以找到来进行修改。我这里直接使用光盘里面的linux中的config—mini2440
cp config-mini2440 .config
make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-
出现了图形编译模式。如果出错,把终端最大化。
直接退出,因为已经配置好了,我们直接拿来使用。
3.编译内核
make uImage ARCH=arm CROSS_COMPILE=arm-linux-
如果出现错误:cc1: error: invalid option `abi=aapcs-linux'
make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-
选择Kernel Features 取消 Use the ARM EABI to compile the kernel
保存退出
再make uImage ARCH=arm CROSS_COMPILE=arm-linux-
如果出现无法生成uImage 情况,即mkimage没有找到这条命令,则将 uboot/tool/mkimage 拷贝到 /usr/bin 中
编译成功后 出现
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-2.6.29.4-FriendlyARM
Created: Sat Mar 24 08:38:07 2012
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2012416 Bytes = 1965.25 kB = 1.92 MB
Load Address: 30008000
Entry Point: 30008000
Image arch/arm/boot/uImage is ready
uImage 在arch/arm/boot/ 下,到这里我们的内核就制作完成了。现在把内核下载是不能运行的,应为没有根文件系统,所以不能运行。
下篇文章会介绍,根文件系统的制作。