Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1254021
  • 博文数量: 479
  • 博客积分: 12240
  • 博客等级: 上将
  • 技术积分: 4999
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-24 17:12
文章分类

全部博文(479)

文章存档

2014年(1)

2013年(1)

2012年(1)

2011年(95)

2010年(177)

2009年(167)

2008年(16)

2007年(21)

分类: LINUX

2010-03-19 14:13:31


固化系统,包括固化x-load、U-Boot、Kenel以及rootfs。需要借助SD卡进行固化。
在SD卡中存入如下文件:
MLO              ——x-load的SD版本,第一个存放,仅用于SD卡启动。
x-load.bin.ift —— x-load的NAND FLASH版本,最终要固化到NAND上的。
u-boot.bin     —— u-boot镜像文件,需要固化到NAND的。
uImage         —— Linxu内核文件,需要固化到NAND的。
ramdisk.gz     —— ramdisk,用于引导系统并固化rootfs。
rootfs.tar.bz2 —— 最终的rootfs。

插入SD卡,选择从SD启动系统,进入U-Boot的命令提示符,
输入 nand scrub,擦除整块NAND FLASH。
输入 run burn_xload 固化x-load
输入 run burn_uboot 固化uboot
输入 run burn_kernel 固化Linux内核

然后输入 run ramboot,选择通过ramdisk启动系统,等系统启动完成,运行burn_rootfs脚本,实现rootfs的固化。

固化完成后,拔掉SD卡,重新启动系统即可进入正常的用户系统了。


U-Boot中相关的命令:
                "bootdelay="    "3\0"\
                "baudrate="     "115200\0"\
                "loadaddr="     "0x80200000\0"  \
                "rdaddr="       "0x81600000\0"  \
                "kernel_ofs="   "0x280000\0"\
                                \
                "burn_xload="   "mw.b 0x80000000 0xFF 0x100000; mmcinit; "\
                                "fatload mmc 0:1 0x80000000 x-load.bin.ift;"\
                                "nand unlock; nand erase 0 40000; nandecc hw; "\
                                "nand write.i 0x80000000 0 40000; nand lock;\0"\
                "burn_uboot="   "mw.b 0x80000000 0xFF 0x100000; mmcinit;"\
                                "fatload mmc 0:1 0x80000000 u-boot.bin;"\
                                "nand unlock; nand erase 0x80000 0x1C0000;"\
                                "nandecc sw; nand write.i 0x80000000 0x80000 0x1C0000;nand lock;\0"\
                "burn_kernel="  "mw.b 0x80000000 0xFF 0x500000; mmcinit;"\
                                "fatload mmc 0:1 0x80000000 uImage;"\
                                "nand unlock; nand erase ${kernel_ofs} 0x500000;"\
                                "nandecc sw; nand write.i 0x80000000 ${kernel_ofs} 0x300000; nand lock;"\
                                "setenv kernelsize ${filesize}; saveenv\0"\
                                \
                "console="      "ttyS2,115200n8\0"      \
                "optargs="      "mem=99M\0"    \
                "mmcargs="      "setenv bootargs console=${console} ${optargs}"\
                                " root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait \0" \
                "ramargs="      "setenv bootargs console=${console} ${optargs} root=/dev/ram0 rw"\
                                "ramdisk_size=32768 initrd=${rdaddr},32M\0"     \
                "ubifsargs="    "setenv bootargs console=${console} ${optargs} root=ubi0:rootfs "\
                                "ubi.mtd=0 rw rootfstype=ubifs\0"       \
                                \
                "loadbootscript="       "fatload mmc 0 ${loadaddr} boot.scr\0"  \
                "loadbootscript="       "fatload mmc 0 ${loadaddr} boot.scr\0"  \
                "bootscript="           "echo Running bootscript from mmc ...; autoscr ${loadaddr}\0"\
                "load_kernel_nand="     "nand read ${loadaddr} 0x280000 ${kernelsize}\0"\
                "loaduimage="           "mmcinit; fatload mmc 0 ${loadaddr} uImage\0"        \
                "loadramdisk="          "mmcinit; fatload mmc 0 ${rdaddr} ramdisk.gz\0"  \
                                \
                "mmcboot="              "run loaduimage; run mmcargs; bootm ${loadaddr}\0"   \
                "ramboot="              "run loaduimage; run loadramdisk; run ramargs; bootm ${loadaddr}\0"\
                "nandboot="             "run load_kernel_nand; run ubifsargs; bootm ${loadaddr}\0"\
                "nfsboot="              "tftp ${loadaddr} uImage; mmcinit; run loadramdisk;"\
                                        "run ramargs; bootm ${loadaddr}\0"

阅读(2620) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~