这一次写一下编译arm内核以及根文件系统的体验,我使用的是linux-2.6.30.4的内核,通过ftp://ftp.kernel.org/pub/linux/kernel下载。下面按步骤操作。第一步:解压源文件tar jxvf linux-2.6.30.4.tar.bz2 –C /opt 下。第二步:更改主目录下Makefile文件,使其支持arm架构。在193行的arch ?= $(SUBARCH)更改为arch ?=arm 将CROSS_COMPFILE ?=更改为 CROSS_COMPFILE ?= arm-linux-。第三步:修改平台的输入时钟,我们采用的平台是TQ2440的开发板,该平台采用的是12M赫兹的主频,所以需要修改其arch/arm/mach-s3c2440/mach-smdk2440.c 的__init smdk2440_map_io(void)函数的时钟16934400 改为12000000.第四步:更改平台机器码,使得u-boot的机器码与内核的机器码一致,因为u-boot的机器码是168(系统提供,在include/asm-arm/mach-types.h中),所以在内核中将机器码改为168(/arch/arm/tools/mach-types,默认是362)