zoukankan      html  css  js  c++  java
  • ARM Linux.2.6.34内核移植

    ARM-LINUX-GCC版本4.3.2.以安装在/usr/local/arm/4.3.2下.

    第一步:
    修改linux-2.6.34/Makefile文件,在makefile中找到以下两条信息并做修改
    ARCH ? =arm 
    CROSS_COMPILE ?=/usr/local/arm/4.3.2/bin/arm-linux-

    第二步:
    修改平台输入时钟
    修改平台的时钟频率,修改内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c”
    把时钟初始化中(S3C24XX_init_clocks(16934400 ))的16934400 改为12000000,因为我们的开发板上为12M

    第三步:
    修改机器类型ID号::
       bootloader启动内核时,会传递机器类型ID进来,这里需根据bootloadr传进的ID修改内核ID号.
       在内核源码的“arch/arm/tools/mach-types”文件查找S3C2440,这里刚好与我们的bootloader相同,所以不用做修改,直接保存退出即可,如果不同则根据bootloader的内容修改此文件,或根据此文件修改boorloader的内容(在vivi中可通过param show查看)。

    第四步:
    解压yaffs2.tar.gz源码包,进入yaffs2文件夹,给内核打上补丁使内核支持yaffs2
    # ./patch-ker.sh  c  /home/linux-2.6.34
    结果:更新了两个文件系统下的文件
    Updating /home/linux-2.6.34/fs/Kconfig
    Updating /home/linux-2.6.34/fs/Makefile

    第五步:
    修改内核mtd分区和bootloader(vivi)使其一致
    编辑文件arch/arm/plat-s3c24xx/common-smdk.c

    static struct mtd_partition smdk_default_nand_part[] = {
        [0] = {
            .name    = "vivi",
            .size    = 0x30000,
            .offset    = 0,
        },
        [1] = {
            .name    = "kernel",
            .offset = 0x50000,
            .size    = 0x300000,
        },
        [2] = {
            .name    = "root",
            .offset = 0x350000,
            .size    = 0x3cac000,
        },
    };

    第六步:
    修改文件drivers/mtd/nand/s3c2410.c
    将s3c2410_nand_init_chip函数里的NAND_ECC_SOFT改为NAND_ECC_NONE(因为在内核中默认配置不支持ECC校验,当然也可以在内核配置时选中ECC选项)
    修改后如下:
    chip->ecc.mode        = NAND_ECC_NONE;

    第七步:
    到llinux-2.6.30目录下执行命令
       #cp  arch/arm/configs/s3c2410_defconfig  .config

    第八步:
    执行make menuconfig,并对选项进行配置

        1)System Type --->
            S3C2440 and S3C2442 machines --->
                仅保留SMDK2440 与SMDK2440 whith S3C2440 CPU module两个选项,将其他的选项全部勾掉

        2)Kernel Features --->
            [*]Use the arm EABI to compile the kernel(选中该选项)
           
        3)File systems --->
            a、把与ext2 ext3 ext4相关的所有选项全部去掉

            b、Miscellaneous filesystems --->
                <*>yaffs2 file system support(选中此选项)

              去除所有与jffs2相关的选项

    保存退出

    第九步:执行make zImage 编译生成内核.

    在arch/arm/boot下生成编译好的可执行程序zImage.  这个是在vivi下使用的.



                                                                                             wenhao@20110609





  • 相关阅读:
    设计模式之解释器
    mina学习
    我的学习网站(个人)
    jq实现剪裁图片设置为头像
    元素跟随着滚动条运动
    解决鼠标滚动的时候多次执行函数
    利用随机数生成一个简单的验证码
    自定义单选框或者复选框
    jquery实现旋转木马的插件slick
    js判断页面是pc打开还是手机打开
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2076522.html
Copyright © 2011-2022 走看看