Environment:linux red hat , version: 2.6.22
Complie tool:arm-linux-gcc , version: 3.4.5
Code source:linux kernel, version: 2.6.2.22
get Code soource from:
https://www.kernel.org/pub/linux/kernel/v2.6/ is 2.6.xx version
example soorce is :
linux-2.6.22.tar.gz
>tar zxvf linux-2.6.22.tar.gz
>cd linux-2.6.22
>vi Makefile
#change this
#ARCH ?= $(SUBARCH)
#CROSS_COMPILE ?=
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
#CROSS_COMPILE ?=
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
>make s3c2410_defconfig
//why? 因为linux-2.6.22\arch\arm\configs目录中存在s3c2420_defconfig所以我们可以如此做。如果没有则是以后移植的事情了,以后的篇章会做说明。
>make uImage
编译数分钟结束后,如果提示如下:
"mkimage" command not found - U-Boot images will not be built
Image arch/arm/boot/uImage is ready
Image arch/arm/boot/uImage is ready
这说名mkimage这个命令不存在,不能生成U-boots指定的images文件,所以生成的Image我们无法用uboot升级的
对于这个命令在uboot/tools/目下可以找到,uboot可以再http://ftp.denx.de/pub/u-boot/下载到
>sudo cp /home/liqinghan/u-boot-1.1.6/tools/mkimage /opt/arm-3.4.5/bin/
>make uImage
编译成功提示如下:
Image Name: Linux-2.6.22
Created: Fri Oct 10 23:36:43 2014
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1510468 Bytes = 1475.07 kB = 1.44 MB
Load Address: 0x30008000
Entry Point: 0x30008000
Image arch/arm/boot/uImage is ready
Created: Fri Oct 10 23:36:43 2014
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1510468 Bytes = 1475.07 kB = 1.44 MB
Load Address: 0x30008000
Entry Point: 0x30008000
Image arch/arm/boot/uImage is ready