构造嵌入式Linux系统----内核篇

来源:互联网 发布:非法网络众筹平台案例 编辑:程序博客网 时间:2024/04/28 00:16

环境:Ubuntu 9.10 arm-linux-gcc-4.3.2 linux-2.6.34 s3c2440

 

1. 修改内核代码根目录下的Makefile

    ARCH改为arm, CROSS_COMPILE改为arm-linux-

2. 修改arch/arm/mach-s3c2440/mach-smdk2440.c 函数__init smdk2440_map_io

    s3c24xx_init_clocks(16934400);改为s3c24xx_init_clocks(12000000);

    (这里是根据个人的板子提供的外部晶振是多少就修改成多少就好了)

3. 然后就是make menuconfig了

    (1). 选择Load an Alternate Configuration File, 输入arch/arm/configs/s3c2410_defconfig, 然后Ok

    (2). 配置System Type

    (3). 配置General setup, 添加Local version信息

    (4). 配置Kernel Features, 选择支持EABI

    (5). 选择Save an Alternate Configuration File, 输入.config, 保存配置单

4. 修改arch/arm/tools/mach-types, s3c2440的机器码修改为168(这里根据个人板子提供的uboot来决定)

5. 移植Nand flash驱动

    修改arch/arm/plat-s3c24xx/common-smdk.c 结构体mtd_partition smdk_default_nand_part[]

     [0] = {
         .name = "uboot",
         .size = 0x00040000,
         .offset = 0x00000000,
     },
     [1] = {
         .name = "kernel",
         .offset = 0x00200000,
         .size = 0x00200000,
    },
    [2] = {
        .name = "file_system",
        .offset = 0x00400000,
        .size = 0x0FB80000,
    }

    然后修改 结构体s3c2410_platform_nand smdk_nand_info

     .tacls  = 10,
     .twrph0  = 25,
     .twrph1  = 10,

    最后修改配置单, Device Drivers-->Memory Technology Device (MTD) support-->Nand Device Support

    选择Samsung S3C NAND Hardware ECC

    保存配置

6. 添加yaffs支持

    到http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/下载cvs-root.tar.gz

    解压进入cvs/yaffs2, 然后给内核打上补丁 ./patch-ker.sh c /home/victorsummer/linux-2.6.34

    修改配置单, File systems添加yaffs2选项, 增添语言支持选项

7. 现在就可以编译内核了make zImage, 编译完成后在arch/arm/boot下会生成名为zImage的镜像

    

          

 

原创粉丝点击