hikey 970 开发板刷基础固件和Android系统
刷板子的系统主要包括两个方面,一个是基础固件,一个就是系统文件。根据板子上面四个开关状态的不同板子会处在不同的状态。
开关位于图中的22的位置 这四个开关的功能分别是
- 自动开机 这个开关如果是On,当板子通电的时候就会自动启动系统。反之则上电之后要按电源键启动。
- 启动模式 开关是On的时候上电后启动至刷基础固件模式,这时候可以通过程序给板子刷基础固件。当是off的时候系统会从已经安装的bootloader启动。
- 系统启动模式 当是On的时候系统会以UEFI模式启动,反之则会直接启动系统
- 扩展功能选择 当是On的时候会使用低速扩展口功能,当是Off的时候会使用蓝牙功能。
基础固件包含了板子的bootloader等等。如果基础固件刷错了系统就不能再启动了。甚至连fastboot也不能使用,也无法再刷其他系统。正常情况下只是刷系统是不需要刷基础固件的。
安装基础程序
sudo apt-get install android-tools-adb
sudo apt-get install android-tools-fastboot
基础固件
以下的操作都是在Linux系统环境下完成的
下载镜像
从96boards的970下载主页下载最新的系统镜像。目前(2018.5.19)只有Android的。这个文件中包含了基础固件和系统镜像。
下载完成后你需要解压这个文件。在image文件夹中包含了需要的文件。
下载镜像工具
git clone https://github.com/96boards-hikey/tools-images-hikey970
官方的工具有错误,我们需要进行修改后才能用 在 recovery-flash.sh 的第一行
#/bin/bash
改为
#!/bin/bash
将第九行
UEFI_BUILD_PATH=/home/qubo/tools-images-hikey970
改为
UEFI_BUILD_PATH=${PWD}
然后把刚才下载的文件中的image
里的所有文件复制到tools-images-hikey970
文件夹
设置开发板启动方式
把板子的开关设置成 On On On Off,然后上电。按照之前的说明,这时候板子处在刷基础固件的状态。 用数据线通过USB把板子和电脑连接起来。
正常情况下你会在/dev/ 文件夹下面发现一个ttyUSBX的设备,X是一个数字可能是0,1之类的。确认自己的板子是对应哪个设备。
刷入固件
运行
sudo ./recovery-flash.sh ttyUSBX
# 如果你的设备是ttyUSB0那么你可以省略第二个参数
程序卡在了 wait for devices
可能的原因是
- 你安装过modemmanager,这个程序会给我们的板子发数据导致程序写入失败。解决方法很简单,卸载这个软件
sudo apt-get purge modemmanager
- 你刷入了错误的固件。可能你的固件是从别的地方下载的,也可能是自己编译的。如果是这样那么很有可能是固件自身出了问题。
系统镜像
实际上在刷入上个基础固件的时候会自动的把系统镜像也刷入进去。这时候把板子上的开关设置为On Off On Off就可以启动系统了。第一次启动的时候要多等一会,因为Android要先初始化一下。
如果只是要刷系统固件可以只刷入系统固件中的下面几个文件。执行
sudo fastboot flash boot boot.img
sudo fastboot flash cache cache.img
sudo fastboot flash system system.img
sudo fastboot flash userdata userdata.img