刷板子的系统主要包括两个方面,一个是基础固件,一个就是系统文件。根据板子上面四个开关状态的不同板子会处在不同的状态。
开关位于图中的22的位置
这四个开关的功能分别是
- 自动开机
这个开关如果是On,当板子通电的时候就会自动启动系统。反之则上电之后要按电源键启动。 - 启动模式
开关是On的时候上电后启动至刷基础固件模式,这时候可以通过程序给板子刷基础固件。当是off的时候系统会从已经安装的bootloader启动。 - 系统启动模式
当是On的时候系统会以UEFI模式启动,反之则会直接启动系统 - 扩展功能选择
当是On的时候会使用低速扩展口功能,当是Off的时候会使用蓝牙功能。
基础固件包含了板子的bootloader等等。如果基础固件刷错了系统就不能再启动了。甚至连fastboot也不能使用,也无法再刷其他系统。正常情况下只是刷系统是不需要刷基础固件的。
安装基础程序sudo apt-get install android-tools-adbsudo 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.imgsudo fastboot flash cache cache.imgsudo fastboot flash system system.imgsudo fastboot flash userdata userdata.img