最近在研究 fcu1101时,板子只支持sd的方式更新系统。
使用原厂的一键制作sd卡的代码,不知道什么原因总是不成功。
经过几天的折腾,总结一下:
比如找一个128M的sd卡,接到windows上,用系统自带 硬盘管理 将SD卡分成2个区。比如将第一个分区划分10M,第二个分区划分剩余空间,并格式化为 fat32 的格式。再将第一分区删除。
将update.tar.bz2 解压的文件拷贝到第二分区。第二分区下将看到 sdrun 和 target 两个目录。
然后将sd卡 连接到虚拟机中的ubuntu,在sd卡的分区位置打开终端(终端中的当前位置为sd卡的根目录)运行
sudo dd if=/dev/zero of=/dev/sdb bs=1k seek=384 conv=fsync count=129
sudo dd if=sdrun/u-boot.imx of=/dev/sdb bs=1k seek=1 conv=fsync
然后就可以按照厂家说明书中的步骤继续刷机了。
说明:
dd if=/dev/zero of=$DRIVE bs=1024 count=1
(我感觉)上面的这句代码将会“删除”mrb信息,导致分区无法读。所以不要运行这句代码。
sd卡不正常时,当时刷机出现类似低格那种小方块,当时跑了一夜也没跑完。正常的刷机,其实不慢,几分钟吧,debug监控中没有乱码,会出现 writing 的语句。