iTOP-4412开发板-uboot-烧写大于300M文件的方法

2019年07月17日 10:48    发布者:就是塔塔
iTOP-4412 开发板,在使用自带 uboot 烧写文件系统的时候,如果文件系统大于
300M,会出现无法烧写的情况。我们可以通过分段烧写的方式来烧写大文件系统,uboot 源
码和镜像默认已经支持这个功能。
本文档以 Qt 为例,Android 系统和根文件系统也是可以采用分段烧写的方式。
1 fastboot 工具的更新
首先需要用高版本的 fastboot 工具,和文档打包在一起的“fastboot.zip”压缩包是高
版本 fastboot,使用这个 fastboot 工具替换 4412 默认的烧写工具。
解压高版本的 fastboot 压缩包,打开之后,使用命令“fastboot.ext -help”,如下图所
示。如下图所示,可以看到有-S 参数,表明支持分段烧写功能,如下图所示,这个功能老版
本的 fastboot 是没有的。2 编译和烧写命令
如下图所示,作者将 Qt 文件系统中放了几个重复的大文件,确保压缩包大于 300M,如
下图所示。未打包的 root 文件为 420M。如果文件太大,编译打包命令也要修改下,默认的打包命令是“make_ext4fs -s -l
314572800 -a root -L linux system.img root”。
注意上面的 314572800,314572800=1024*1024*300,也就是 300M,现在是
420M,肯定打包不了。
我们将命令修改为能够打包 900M 的,943718400=1024*1024*900
“make_ext4fs -s -l 943718400 -a root -L linux system.img root”。
如下图所示,使用 900M 的命令编译通过。一般情况下,900M 的文件系统已经很大了,如果需要更大的,用户可以自己修改这个参
数。
接着介绍烧写,在烧写前,介绍下分区参数,如果文件系统太大(例如大于 1G),那么
分区的时候也要修改下,如下图所示,进入 uboot 模式,使用命令“fdisk -c 0 2048 300
300”,将文件系统分区为 2G。接着用户执行分区格式化命令。
fatformat mmc 0:1
ext3format mmc 0:2
ext3format mmc 0:3
ext3format mmc 0:4
最后我们测试下烧写,如下图所示,作者要烧写的 system.img 大于 300M。打开 cmd.exe,如下图所示,使用命令“fastboot.exe flash system system.img -S
200M”,分段烧写,每次烧写 200M 的二进制文件。如上图所示,可以看出它分为多段来烧写。
烧写完成之后,重启开发板,进入文件系统,可以正常运行,烧写大文件完成,如下图所
示。

网友评论

岁月玉峰 2019年07月29日
收到分享内容
473143805qq.com 2019年08月08日
学习了,多谢啊