Android Things在NXP Pico i.MX7D上刷机的正常步骤还是很简单的,不过也陆续有不少朋友碰到各种问题。这里把问题和解决方法做个汇总,有新问题再继续补充。碰到问题的朋友,也可以在文后留言。
状况0. 提示"writing 'gpt'... FAILED (remote: device is locked.)"
刷写过程中,如果提示"writing 'gpt'... FAILED (remote: device is locked.)",则需要执行以下指令先解锁,再执行flash-all。
我从DP6.1系统刷到DP7时就遇到了此问题。
fastboot flashing unlock
目前已发布了Developer Preview 7版本
Developer Preview 7
Date: March 2018
Build Number: OIM1.180123.019
Play Services: 11.8.0
要从DP6.1升级到DP7,下载好DP7系统镜像之后,通过以下步骤重新刷系统:
1. 重启进入bootloader
adb reboot bootloader
2. 找到要刷机的设备
fastboot devices
3. 解锁
fastboot flashing unlock
4. 刷入系统
flash-all
状况1. 刷机过程异常终止
有朋友发现刷机过程中出现FAILED刷机过程异常终止了。
其实上面红色这条FAILED是没有问题的,这是一个"或"的关系,刷写bootloader0或bootloader,所以这一步是成功的,bootloader0分区不存在,但bootloader分区存在,刷写成功了。
需要关注的是最后一句蓝色框中的内容。
usage: fastboot [ <option> ] <command>
这其实是提示fastboot指令格式不对,也就是flash-all.bat文件中的某条调用fastboot指令的格式不对。为什么会出现这种情况呢?其实就是电脑上的fastboot版本不对。也就是Android SDK Platform Tools版本不对,按照官网文档描述,要更新到25.0.3或以上。
状况2. 系统没有刷完整,既无法进入Android Things,也无法进入bootloader
如果已经刷写Android Things,但没有刷写完整,则陷入比较尴尬的境地,既进入不了Android Things,又没办法用adb指令进入bootloader重新刷。
此时,就必须想办法进入bootloader,这需要用到串口控制台。
NXP板上有一个USB Type-C接口,用于供电、fastboot刷系统、adb连接,如图中1。
另外还有个Micro USB口,这是个USB串口,用于串口调试,如图中2。
先将2.Micro USB接口接入电脑。通常电脑上可以自动找到驱动出现串口,如果没有,可下载FTDI的串口驱动程序(http://www.ftdichip.com/Products/ICs/FT232R.htm)。
下载一个串口调试工具,可以用PuTTY,下载地址:https://www.putty.org/
安装完成后,在PuTTY中打开串口控制台。
Connection type选择Serial,填写串口号,在自己电脑的设备管理器中查看,我这里是COM5,Speed填写115200,点击Open,会打开如下图所示的串口控制台。
此时,插入1. USB Type-C接口,给NXP开发板上电启动,串口控制台中会有启动信息输出。尽快在串口控制台中任意按下按键,中止自动启动。
Hit any key to stop autoboot
停止自动启动后,会出现=>命令提示符。
在=>输入 fastboot usb 回车。
此时,开发板就已经进入bootloader模式了。打开Windows命令提示符,执行:
fastboot devices
就可以找到设备了。
之后再用flash-all重新刷机即可。