(转)系统固化

原文:http://blog.chinaunix.net/uid-20632682-id-82272.html

 

固化系统,包括固化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"
posted @ 2013-09-09 20:42  yinsua  阅读(509)  评论(0编辑  收藏  举报