制作uboot的执行脚本
首先进入uboot的源码解压目录的tool文件夹下面
1.新建一个文件名字,touchxxx.script
2.编辑这个文件,vimxxx.script
内容如下:
uttext 20 30"********************************************"
uttext 20 40"Android210 upgrade system v4.0"
uttext 20 50"********************************************"
uttext 20 60" "
uttext 20 70"Update bootloader"
nand scrub
nand erase
mmc rescan 0
fatload mmc 020008000 u-boot.bin
nand write20008000 0 80000
uttext 20 80"Done."
uttext 20 90"Update kernel..."
fatload mmc 020008000 zImage
nandwrite 20008000 600000 400000 (注意假如你的内核超过4M,更改400000 变成比你的内核到的就行,比如4.1M应该改成500000)
uttext 20 1000"Done."
fatload mmc 020008000 zImage.debug
setenv bootargsroot=/dev/ram0 init=/init console=ttySAC0,115200
bootm 20008000
uttext 20 160"Failed. Please check the recover zImage.debug."
sleep 10
reset
2.编辑完成使用mkimage 命令来封装这个脚本,以便uboot的autoscr能够执行,在tool文件下下面执行这个命令封装:./mkimage -A ARM -O linux -T script -C none -a 0 -e 0-n "autoscr example script" -d utscript_sd.script utscript_sd
执行完后会生成utscript_sd 文件
利用U-BOOT中的autoscr命令,可以在U-BOOT中运行“脚本”。首先在文本文件中输入需要执行的命令,然后用tools/mkimage封装,然后下载到开发板上,用autoscr执行就可以了。
① 编辑如下的脚本mini2410.script。
$ cat > mini2410.script <<EOF
echo
echo Script Configuration:
echo ----------------------
echo set update_kernel:
setenv update_kernel 'tftpboot 0x30008000 uImage;nand erase 0x80000 0x200000;nand write 0x30008000 0x80000 0x200000'
echo set update_rootfs:
setenv update_rootfs 'tftpboot 0x30008000 root.cramfs;nand erase 0x280000 0x400000;nand write 0x30008000 0x280000 0x400000'
echo set update_boot:
setenv update_boot 'tftpboot 0x30008000 u-boot.bin;nand erase 0x0000 0x80000;nand write 0x30008000 0x0000 0x80000'
echo set update_usr(erase usr):
setenv update_usr 'nand erase 0x00680000 0x03980000'
saveenv
echo Done
② 用tools/mkimage对脚本进行封装。
$ cat mkscript_mini2410.sh
#!/bin/sh
./mkimage -A ARM -O linux -T script -C none -a 0 -e 0 -n "autoscr example script" -d mini2410.script /home/tftp/mini2410.img
③ 在U-BOOT中加载并执行这个脚本。
$ tftpboot 0x30008000 /home/tftp/mini2410.img
$ autoscr 0x30008000
◆ 支持WatchDog、LCD logo和状态指示功能等。如果系统支持splash screen,U-BOOT启动时,会把这个图像显示到LCD上,给用户更友好的感觉。
◆ 支持MTD和文件系统。U-BOOT作为一种强大的BootLoader,它不仅支持MTD,而且可以在MTD基础上实现多种文件系统,比如cramfs、fat和jffs2等。
◆ 支持中断。由于传统的BootLoader都分为stage1和stage2,所以在stage2中添加中断处理服务十分困难,比如BLOB;而U-BOOT是把两个部分放到了一起,所以添加中断服务程序就很方便。
◆ 详细的开发文档。由于大多数BootLoader都是开源项目,所以文档都不是很充分。U-BOOT的维护人员意识到了这个问题,充分记录了开发文档,所以它的移植要比BLOB等缺少文档的BootLoader方便。
Reference:
http://blog.chinaunix.net/space.php?uid=16400726&do=blog&id=2746351
本文介绍如何在U-Boot环境下创建和封装执行脚本,包括编辑脚本、使用mkimage命令进行封装及通过autoscr命令执行的过程。此外还介绍了U-Boot的一些特色功能。

306

被折叠的 条评论
为什么被折叠?



