免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 932 | 回复: 0
打印 上一主题 下一主题

Linux2.6.30平台搭建移植文档 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-14 16:55 |只看该作者 |倒序浏览

一、环境平台介绍
1、bootloader环境:vivi0.1.4 交叉编译器arm-cross2.95.3
2、内核kernel环境:vivilinux-2.6.30 交叉编译器arm-cross3.4.5-software(软浮点运算)
3、根文件系统工具:busybox-1.9.2 交叉编译器arm-cross3.4.5-software(软浮点运算)(参照上篇s3c2410移植----之使用busybox-1.9.2制作根文件系统)
# vi /etc/inittab
  ::sysinit:/etc/init.d/rcS
  ttySAC0::askfirst:-/bin/sh
  ::ctrlaltdel:/sbin/reboot
  ::shutdown:/bin/umount -a -r
# vi /etc/fstab
proc            /proc          proc     defaults        0     0
tmpfs           /tmp           tmpfs    defaults        0     0
sysfs           /sys           sysfs    defaults        0     0
/dev/mtdblock4  /program       yaffs2   defaults        0     0


4、yaffs文件系统源码包
二、用vivi构建bootloader(不包含解压过程)
1、修改vivi/Makefile文件
   25 行:CROSS_COMPILE = /usr/local/arm/2.95.3/arm/bin/arm-linux-
2、按照自己的需求自定义mtd分区,修改arch/s3c2410/smdk.c文件
修改 NAND flash 分区如下:
mtd_partition_t default_mtd_partitions[] = {
        {
                name: "bootloader", //0x0—0x000E0000
                offset: 0,
                size: 0x000E0000, //bootloder占896个字节
                flag: 0
        },
        {
                name: "param", //0x000E0000—0x00100000
                offset: 0x000E0000,
                size: 0x00020000, //param占128个字节
                flag: 0
        },
        {
                name: "kernel", //0x00100000—0x00400000
                offset: 0x, 0x00100000,
                size: 0x00300000, //kernel占3M
                flag: 0
        },
        {
                 name: "root", //0x00400000—0x01800000
                offset: 0x00400000,
                size: 0x01400000, //占20M
                flag: MF_BONFS
        },
        {
                name: "user", //0x01800000—0x04000000
                offset: 0x01800000,
                size: 0x02800000, //40M
                flag: MF_BONFS
        }
};
4、在vivi目录下执行make menuconfig,选择Load an Alternate Configuration File,输入arch/def-configs/smdk2410保存
4、执行make 在vivi目录下将生成vivi的二进制可执行文件
5、将vivi下载到开发版
三、修改编译内核
1、解压linux-2.6.30.tar.gz2源码包
2、修改内核mtd分区和bootloader(vivi)使其一致
   编辑文件arch/arm/plat-s3c24xx/common-smdk.c
static struct mtd_partition smdk_default_nand_part[] = {
    [0] = {
        .name   = "bootloader",
        .size   = 0x000E0000,
        .offset = 0,
    },
    [1] = {
        .name   = "param",
        .offset = 0x000E0000,
        .size   = 0x00020000,
    },
    [2] = {
        .name   = "kernel",
        .offset = 0x00100000,
        .size   = 0x00300000,
    },
    [3] = {
        .name   = "root",
        .offset = 0x00400000,
        .size   = 0x01400000,
    },
    [4] = {
        .name   = "user",
        .offset = 0x01800000,
        .size   = 0x02800000,
    }
};
3、修改文件drivers/mtd/nand/s3c2410.c
将s3c2410_nand_init_chip函数里的NAND_ECC_SOFT改为NAND_ECC_NONE(因为在内核中默认配置不支持ECC校验,当然也可以在内核配置时选中ECC选项)
4、解压yaffs.tar.gz2源码包,进入yaffs2文件夹,给内核打上补丁使内核支持yaffs2
   # ./ patch-ker.sh c /home/linux-2.6.30
5、到llinux-2.6.30目录下执行命令
   #cp arch/arm/configs/s3c2410_defconfig .config
6、执行make menuconfig,并对选项进行配置
选项Userspace binary formats
       [ ]Kernel support for a.out and ECOFF binaries (BINFMT_AOUT) (去除该选项)
选项Boot options(根据自己的root目录在那个mtd分区来改)
  Default kernel command string
  命令 param set linux_cmd_line
   改成: noinitrd root=/dev/mtdblock3 console=ttySAC0,115200 init=/linuxrc
选中YAFFS2 file ststem support以支持yaffs
其余按默认配置
7、执行make zImage,在arch/arm/boot目录下将生成一个zImage的文件


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94145/showart_1996126.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP