一、什么是刷机?
“刷机”这个词在日常生活中经常听到,例如有些人说“我手机很卡,需要重新去刷一下机”,“我手机这个功能不支持,可以去刷下机么”,等等。其实,专业一点来说,刷机就是重新在板载的iNand/Nand/SD卡等储存设备上面重新部署uboot、kernel、rootfs。通俗一点来说就是,重装一个操作系统,像在电脑上面重装系统一样。
二、准备刷机工具。
(一)软件工具
1、fastboot:现在刷机工具普遍用的是fastboot,无论是在开发板上还是手机。fastboot是一个windows下的一个刷机工具,同时也是uboot下面的一个命令,当在uboot下执行“fastboot”,就相当于将uboot交给Windows下面fastboot软件管理,只需在Windows下利用fastboot软件执行命令烧写镜像即可实现“刷机”。
2、fastboot驱动:安装了fastboot以后肯定需要安装fastboot驱动啦。
3、DNW工具:DNW方式刷机使用到。三星的镜像烧录软件,它的作用是直接将镜像烧录到指定地址的SRAM/DDR中去。(注意:是烧录到SRAM/DDR,而不是iNand/Nand/SD卡等,掉电以后数据会被清空)
4、DNW驱动:配套DNW跟USB-OTG使用。
5、九鼎创展SD卡烧写工具:SD卡刷机方式刷写镜像使用到,这个是直接将镜像烧录到SD卡上面,是九鼎公司的一个SD卡烧录软件。
6、secureCRT:显示uboot打印的串口信息,同时也是显示uboot控制台的重要工具。
7、USB转串口驱动:配套串口线跟secureCRT使用。
(二)硬件工具
1、串口线:连接开发板与PC的桥梁。
2、USB-OTG线:镜像烧录时使用到的。
3、SD卡:SD卡方式刷机使用到。
三、3种刷机方式的介绍。
(一)fastboot刷机,这种刷机方式的前提是你的开发板可以启动uboot并且进入uboot的控制台。大多数手机刷机也是这种。
(二)DNW+fastboot刷机,当你的开发板上不能启动uboot,也是通常所说的“变砖”,就使用这种方式,使用这种方式烧录一个uboot镜像以后,启动uboot进入控制台再使用fastboot刷机。
(三)SD卡+fastboot刷机,同上,也是针对开发板上不能启动uboot这种情况,烧写uboot并启动uboot以后进入控制台再使用fastboot方式刷机。
一、SD卡uboot+fastboot刷机详细介绍
九鼎的S5PV210开发板,在出厂前已经默认刷了Android4.0系统。如果需要刷其它的系统或者是由于系统问题无法启动时,就需要对板子刷机。
其实,刷机是对210开发板的一个基础学习,目的是实践之前学过的系统启动过程,进一步的了解系统的启动过程,加深理解(uboot、kernel、rom)。
二、准备工作
(1)工作平台:WIN10
(2)驱动工具:USB转串口、USB-OTG驱动。
1、USB转串口:我们使用的是优越者 usb转串口线。插在电脑上后,电脑会自动按安装驱动。
2、USB-OTG驱动:需要在进入fastboot模式下进行,在后续的步骤中,会详细讲解。
(3)刷机文件
1、Android4.0文件位置在:…\朱有鹏嵌入式\X210光盘资料\image\android4.0。文件夹下面有三文件。uboot.bin 、zImage-android、x210.img。
2、Linux-QT4.8系统。文件在..\朱有鹏嵌入式\X210光盘资料\B盘\linux\QT4.8\image文件夹下面:uboot_inand.bin、zImage-qt、rootfs_qt4.ext3
最好将需要烧写的文件,单独复制到一个文件夹下,方便后续的刷机。
三、破坏uboot程序
为了模拟出系统启动不了的情况,需要将uboot的代码给破坏掉,是系统无法启动。如果,板子本身就已经无法启动了,就不用去破坏uboot,只需要设置SecureCRT.EXE串口。
(这里我们只是让SD0通道上的iNand中的uboot第一个扇区毁坏了,让uboot不能起作用 ,系统还在iNand中存放着,这样系统启动首先还是从iNand的uboot启动,但是由于uboot第一个扇区被破坏掉了,启动失败,制作SD uboot启动后,会自动从SD卡中启动)
(1)第一步:串口线与电脑连接。特别注意Com口不要插错了,选择Uart2。
(2)第二步:打开SecureCRT.EXE软件(使用管理员身份打开)。配置参数
1、点击文件/连接。在对话框中点击新建(New Session)
2、设置协议为串口Serial
3、串口通讯参数配置。注意:在数据流控制中,一个都不要勾选。
4、连接串口。光标出现了闪烁,说明连接成功。
(3)第三步:开机。破坏uboot代码。
1、android 系统控制台,执行如下指令:
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
sync
2、Linux系统控制台,执行如下指令:
busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync
sync
以上所有的验证是在Android下测试的,Linux下操作是一样的。
(4)开机,发现系统无法启动。出现如下的提示信息:
四、制作SD uboot启动
(1)工具文件
1、x210_Fusing_Tool.exe (…\朱有鹏嵌入式\X210光盘资料\A盘\tools文件夹下)
2、uboot_inand.bin(…\朱有鹏嵌入式\X210光盘资料\B盘\linux\QT4.8\image)
(2)烧写SD卡。选择uboot_inand.bin文件烧写到SD卡中。
五、使用fastboot刷机
(1)使用SD启动。将刚刚制作好的SD卡插入开发板中,注意插在SD2中。
(3)长按软复位按键(前提是串口已经与电脑相连,打开SecureCRT软件)。在SecureCRT中出现3 2 1倒数的时候,按下回车键。再输入fastboot 回车。
如果出现了上图中的提示就说明已经成功进入fastboot模式。
(4)安装USB-OTG驱动。只有在进入fastboot模式下,才可以识别到设备,驱动文件。驱动位置:A盘\tools\USB驱动\x210_android_driver
(5)在电脑汇中运行cmd,找到fastboot软件的文件夹位置。
说明:
1、输入:d: 即可进入D盘
2、输入:dir:可以查看当前文件下的文件。
3、输入:cd fastboot 即进入fastboot文件夹。
建议文件使用如下的方式存放,这样fastboot.exe才可以找到需要刷机的文件。
烧录android4.0.4
fastboot flash bootloader android4.0/uboot.bin 烧uboot
fastboot flash kernel android4.0/zImage-android 烧linux kernel
fastboot flash system android4.0/x210.img 烧android rom
开发板上出现了如下的界面,说明正在烧写ROM文件,需要等待一段时间才可以完后。
特别注意:在执行上面的三条指令时,完成一条指令后,需要看是否出现提示信息。
烧录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
六、刷机成功开机
----------------------------------------------------------------------------------------------------------------------