Linux3.2.81内核移植(2440)

来源:互联网 发布:2013网络歌手 编辑:程序博客网 时间:2024/05/16 14:45

一、内核基本配置

1、  修改顶层的Makefile

ARCH?=(SUBARCH)

CORSS_COMPILE?=

修改为

ARCH=arm

CROSS_COMPILE=arm-linux-

 

2、  修改arch/arm/mach-s3c2440/mach-smdk2440.c文件的时钟频率

将s3c24xx_init_clock(16934400)

改为

s3c24xx_init_clock(12000000)

 

3、  执行make menuconfig配置系统类型(System-type)

System Type 

     ARM system type (ARM Ltd.Versatile family)

            (X) Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442

                            S3C2440and S3C2442 Machines

                                             [*]SMDK2440

                                               [*]SMDK2440 with S3C2440 CPU module (NEW) 

 

二、Nand Flash移植(MTD分区)

1、  修改内核源码“arch/arm/plat-s3c24xx/common-smdk.c”

文件中的“smdk_default_nand_part[]”的结构体

staticstruct mtd_partition smdk_default_nand_part[] = {

[0] = {

           .name       ="bootloader",

           .size =SZ_1M,

           .offset      = 0,

},

[1] = {

           .name       ="params",

           .offset = MTDPART_OFS_APPEND,

           .size =0x00020000,

},

[2] = {

           .name       ="kernel",

           .offset = MTDPART_OFS_APPEND,

           .size =SZ_4M,

},

[3] = {

           .name       ="root",

           .offset = MTDPART_OFS_APPEND,

           .size =MTDPART_SIZ_FULL,

}

};

 

2、  执行make menuconfig配置驱动DeviceDrivers

Device Drivers

             <*> Memory Technology Device (MTD)support

                                       <*>   NAND Device Support

                                                         <*>   NAND Flash support for Samsung S3C SoCs 

                                                         <*>   Support for generic platform NAND driver

                                       <*>   Caching block device access to MTD devices

                                       <*>   Direct char device access to MTD devices

 

三、串口驱动配置

 

1、  执行make menuconfig

Device Driversà

           Characterdevices

                    Serialdrivers

                             <*>Samsung SoC serial support 

                             [*]Support for console on Samsung SoC serial port 

                             <*>Samsung S3C2440/S3C2442/S3C2416 Serial port support (NEW)

 

四、增加对yaffs的支持

1、  下载yaffs源码(yaffs2)

2、  给内核打补丁,进入yaffs2目录,执行

./patch-ker.sh c m /work/system/linux-3.2.81

 

3、  进入内核目录,执行make menuconfig

File systemsà

           [*]Miscellaneous filesystemsà

                    <*>   yaffs2 file system support

 

 

五、支持NFS启动文件系统

File systems

    Network File Systems

       <*> NFS file system support   //要编译进内核,不能编译成模块

       [*] Root file system on NFS

Networking

    [*] Networking support 

       Networking options

           [*]   IP: kernel level autoconfiguration 

 

 

六、保存退出,执行make uImage

在arch/arm/boot中生成uImage,但是该uImage的加载地址和入口地址一样,u-boot无法启动,所以执行

mkimage -n  ‘linux-3.2.81’ -A arm -O linux -T kernel -C none -a0x30008000 -e 0x30008040 -d zImage uImage

生成的uImage即可使用

 

 

本教程使用arm-linux-gcc-4.3.2

 

0 0
原创粉丝点击