核心步骤:

  1. 安装USB转串口线驱动,使用SecureCRT做串口连接,进入系统控制台,并且破坏出厂预烧录的android系统以从SD启动
  2. 制作启动SD卡,并且从SD卡启动使用fastboot烧录uboot、kernel、根文件系统等到板载iNand中(dnw工具烧录)
  3. android系统镜像烧录、linux+QT镜像的烧录

第一步:破坏iNand中的bootloader以从SD2启动

busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
sync

1.启动系统,进到系统内部控制台
006QQ7Zvly1fxpd5929gkj30k20kf40x.jpg

在系统控制台SecureCRT窗口输入命令:

busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync

然后按回车确认,带系统返回数值后再输入命令:

sync

结果如下图
006QQ7Zvly1fxpdca54qej30jk0743yw.jpg

此时,开发板板载iNand的第一个扇区已被破坏(全被0填充)

busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
sync

解释:这句话的意思就是说把板载的iNand的第一个扇区用全0来填充,其实就是擦除它,这样我们板载的iNand的bootloader的开始第1个扇区就被破坏了。将来启动时iROM还是会先从iNand中读取前16KB,然后计算校验和。这时候因为有1个扇区被擦掉了,所以校验和不通过,所以启动失败(会从SD2去执行2nd启动)。
注意:破坏板载iNand的bootloader后,不插外部SD卡,启动时串口得到:SD checksum Error

第二步:制作启动SD卡(其实就是烧录uboot到SD卡中)
有2种烧写方法:一种是在windows中用刷卡工具去制作启动SD卡;另一种是在linux中用dd命令。
在此介绍第一种(比较简单),使用刷卡工具x210_Fusing_Tool
制作完SD后将SD卡插入开发板SD2通道(注意不是SD3),然后开机就可以进入uboot界面了。在uboot开机自动启动倒数3秒之内迅速按下电脑回车键,打断自动启动。(否则会自动启动iNand中的android)
进入uboot系统后,使用fastboot模式后依此烧录刷入uboot、kernel、system
fastboot是uboot中用来快速下载镜像的一个命令,fastboot同时还是一个windows上的软件。
fastboot下载时要注意1:fastboot是使用USB线进行数据传输的,所以fastboot执行之前要先连接开发板和主机之间的usb线。
fastboot下载时要注意2:需要安装驱动。

第三步:在开发板打断自动启动后,输入fastboot命令,进入fastboot模式,同时电脑设备管理器中显示“Android phone”设备说明已进入该模式。如下图:
006QQ7Zvly1fxqhetgeu9j30jh0e9jsa.jpg

006QQ7Zvly1fxqhf1uugij30fk05gglr.jpg

第四步:在电脑使用cmd命令符模式进入fastboot软件执行刷机命令进行刷机烧录

fastboot flash bootloader android4.0.4/uboot.bin        烧uboot
fastboot flash kernel android4.0.4/zImage-android        烧linux kernel
fastboot flash system android4.0.4/x210.img             烧android rom

如下图:
006QQ7Zvly1fxqi4hll1vj311p09qwfn.jpg

006QQ7Zvly1fxqi4oc86fj311o07hq3s.jpg

006QQ7Zvly1fxqi4v6o46j311i0aomy2.jpg

最后烧录完system后在重启开发板,这样就完成了开发板的刷系统步骤。
以上为Android系统的刷机步骤,同理linux+QT刷机步骤也可如法炮制:

fastboot flash bootloader linuxQT/uboot_inand.bin        烧uboot
fastboot flash kernel linuxQT/zImage-qt                烧linux kernel
fastboot flash system linuxQT/rootfs_qt4.ext3            烧rootfs

uboot的参数不用特意设置(因为我们刷了专为linux+QT定制的uboot,这个uboot中估计已经预制好了所有的启动参数)

总结:
1.先拿到开发板的时候,板子系统是可以正常开机的,所以我们先要破坏板子iNand上的uboot系统的第一个扇区,使其无法在开机的时候通过校验,导致无法开机。
2.使用SD卡烧录工具,把系统的uboot烧录到SD卡中,把SD卡插入开发板,开机时候系统从板上iNand启动失败后检测到SD卡中有uboot,使用SD卡中的uboot引导系统开机。
3.在系统通过SD卡进入uboot的时候打断系统自动开机,在其uboot系统页面输入fastboot命令进入fastboot模式。再使用电脑cmd命令符模式启动fastboot软件,在该软件下使用fastboot flash系列命令一次刷入uboot、kernel、system,然后拔掉内存卡就可以重启开发板,完成开发板的Android系统刷机。

最后修改:2019 年 07 月 07 日
如果觉得我的文章对你有用,请随意赞赏