1.在下面的網站內下載目前最新的穩定版本的linux內核——linux-3.6.6
Linux Kernel 的詳細介紹:請點這裡
Linux Kernel 的下載地址:請點這裡
2.解壓到當前目錄
tar –xvjf linux-3.6.6.tar.bz2
3.修改在根目錄下的Makefile文件中的第195行和第196行:
ARCH ?=arm
CROSS_COMPILE ?= arm-linux-
4.修改機器碼,要與uboot中所設置的機器碼一致,在arch/arm/tools目錄下的mach-types文件中的第207行添加:
zhaocj2440 MACH_ZHAOCJ2440 ZHAOCJ2440 1008
5.在arch/arm/mach-s3c24xx目錄下
復制mach-mini2440.c文件為mach-zhaocj2440.c文件:
cp mach-mini2440.c mach-zhaocj2440.c
把mach-zhaocj2440.c文件內的所有MINI改為ZHAOCJ,把mini改為zhaocj
第246行中的zhaocj2440_default_nand_part結構體改為:
/* NAND Flash on ZHAOCJ2440 board */
static struct mtd_partition zhaocj2440_default_nand_part[] __initdata = {
[0]= {
.name = "u-boot",
.size = SZ_512K,
.offset = 0,
},
[1]= {
.name = "u-boot-env",
.size = SZ_512K,
.offset = SZ_512K,
},
[2]= {
.name = "kernel",
.offset = SZ_2M,
.size = SZ_4M+ SZ_2M,
},
[3]= {
.name = "root",
.offset = SZ_8M,
.size = MTDPART_SIZ_FULL,
},
};
在該目錄下,在Makefile文件中的第78行處添加:
obj-$(CONFIG_MACH_ZHAOCJ2440) += mach-zhaocj2440.o
仍然是在該目錄,在Kconfig文件中的第467行處添加:
config MACH_ZHAOCJ2440
bool "ZHAOCJ2440 development board"
select S3C_DEV_NAND
select S3C_DEV_USB_HOST
help
Say Y here to select support for the ZHAOCJ2440
6.在drivers/mtd/nand目錄下的s3c2410.c文件內,第846行中的NAND_ECC_SOFT改為NAND_ECC_NONE,即:
chip->ecc.mode = NAND_ECC_NONE;
7.在arch/arm/configs目錄下,復制mini2440-defconfig文件為zhaocj2440-defconfig文件,並把第21行中的CONFIG_MACH_MINI2440=y 修改為:
CONFIG_MACH_ZHAOCJ2440 = y
8.退回到linux-3.6.6的根目錄下,復制配置文件:
cp arch/arm/configs/zhaocj2440_defconfig .config
9.使用menuconfig來配置內核:
make menuconfig
不用修改裡面的任何內容,保存退出即可。
10.最後執行下面兩個命令:
make clean
make zImage
等待一段時間後,便會在arch/arm/boot/目錄下生成zImage文件。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2013-10/91993p2.htm