hikey 970 开发板刷基础固件和Android系统

原链接: http://community.bwbot.org/topic/462
运行测试平台:小强ROS机器人

刷板子的系统主要包括两个方面,一个是基础固件,一个就是系统文件。根据板子上面四个开关状态的不同板子会处在不同的状态。

hikey 970 开发板刷基础固件和Android系统_第1张图片

开关位于图中的22的位置
这四个开关的功能分别是

  1. 自动开机
    这个开关如果是On,当板子通电的时候就会自动启动系统。反之则上电之后要按电源键启动。
  2. 启动模式
    开关是On的时候上电后启动至刷基础固件模式,这时候可以通过程序给板子刷基础固件。当是off的时候系统会从已经安装的bootloader启动。
  3. 系统启动模式
    当是On的时候系统会以UEFI模式启动,反之则会直接启动系统
  4. 扩展功能选择
    当是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可能的原因是

  1. 你安装过modemmanager,这个程序会给我们的板子发数据导致程序写入失败。解决方法很简单,卸载这个软件

    sudo apt-get purge modemmanager
    
  2. 你刷入了错误的固件。可能你的固件是从别的地方下载的,也可能是自己编译的。如果是这样那么很有可能是固件自身出了问题。

系统镜像

实际上在刷入上个基础固件的时候会自动的把系统镜像也刷入进去。这时候把板子上的开关设置为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

你可能感兴趣的:(技术交流)