基于S3C2440的linux-3.6.6移植——内核移植,建立自己的平台系统

时间:2022-04-25 14:51:33

 

1.在下面的网站内下载目前最新的稳定版本的linux内核——linux-3.6.6

http://www.kernel.org/

 

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文件。