010-85270716

iTOP-4412-uboot-烧写大于300M文件的方法
2019-12-10

         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 的二进制文件。

        如上图所示,可以看出它分为多段来烧写。

        烧写完成之后,重启开发板,进入文件系统,可以正常运行,烧写大文件完成,如下图所 示。

收缩
  • 旺旺咨询
  • 点这里给我发消息
  • 电话咨询

  • 01085270716