2. OpenHarmony 手册

2.1. 支持设备列表

主控 板卡型号 板卡规格(内存)
RK3568 ROC-RK3568-PC 2G/4G(8G暂不支持)
RK3568 AIOJ-RK3568 2G/4G(8G暂不支持)

2.2. 源码编译

2.2.1. 环境搭建

必要条件:X86 Ubuntu18.04操作系统(其他系统请自行解决依赖包问题)

sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex
bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib
libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache
libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8
python3-pip ruby

2.2.2. 源码下载

获取Firefly补丁脚本

mkdir openharmony
cd openharmony
wget https://gitlab.com/firefly-linux/openharmony/oh_sdk_preinit/-/raw/master/sdk_init.sh
chmod a+x sdk_init.sh

选择编译开发板

cd openharmony

# 查找支持的设备
./sdk_init.sh -l

# 选择指定开发板
./sdk_init.sh -b <BOARD_NAME>

获取OpenHarmony官方源码

cd openharmony
repo init --repo-url=https://gitlab.com/firefly-linux/git-repo -u https://gitee.com/openharmony/manifest.git -b refs/tags/$(cat .tag_release) --no-clone-bundle
.repo/repo/repo sync -c --no-tags
.repo/repo/repo forall -c 'git lfs pull'

获取Firefly补丁源码

cd openharmony
./sdk_init.sh -p

之后,更新代码运行如下命令:

cd openharmony
./sdk_init.sh -p

2.2.3. 获取docker

获取Docker镜像

docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0

进入源码根目录,创建本地docker

cd openharmony
docker run --name openharmony -itd -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0

以后直接运行如下命令进入docker

docker start openharmony
docker exec -it openharmony /bin/bash

2.2.4. 源码编译

进入docker进行编译

# 必须进入docker
docker exec -it openharmony /bin/bash
# 第一次编译需要下载工具链,以后可以跳过
bash build/prebuilts_download.sh
./build.sh --product-name rk3568 --ccache

编译完成之后,镜像在 out/rk3568/packages/phone/images/

2.3. 固件烧录

目前仅支持将固件烧录到EMMC

步骤如下:

  1. 连接好USB线缆,线的接入方式请阅读下面链接:

    ROC-RK3568-PC: https://wiki.t-firefly.com/zh_CN/ROC-RK3568-PC/03-upgrade_firmware.html

    AIOJ-RK3568: https://wiki.t-firefly.com/zh_CN/Core-3568J/03-upgrade_firmware.html

  2. 准备好 MiniLoaderAll.bin

    可以从以下链接下载 一个对应CPU型号的MiniLoaderAll.bin

  3. 点击下载工具的Advanced Function,然后将准备好的MiniLoaderAll.bin下载到存储器中,见下图

    _images/load_emmc_with_flash01.png

  4. 点击List Storage读取存储器,此时存储列表选中的是SPINOR,为确保Nor flash为空,我们选择EraseAll擦除

    _images/maskrom_erease_spinor_flash.png

    • X 表示设备不存在该存储器

    • 0 表示存在该存储器,但未选中

    • 表示存在该存储器并处于被选中状态

    _images/load_emmc_with_flash02.png

  5. 在存储列表中选中Emmc后点击Switch Storage

    _images/load_emmc_with_flash02.png

    可以看到存储列表中的Emmc状态就会从0切到,表示选择将固件下载到eMMC

    _images/load_emmc_with_flash03.png

  6. 点击EraseAll擦除

    _images/load_emmc_with_flash04.png

  7. 点击下载工具的Download Image

    在SDK目录”out/rk3568/packages/phone/images/”中,找到”config.cfg”文件。右键”Load Config”时,选择这个配置文件。然后将各个分区的路径改为你的固件路径即可。

    _images/openharmony_firmware_load.png

    如果没有这个文件,可以去社区获取:https://dev.t-firefly.com/forum.php?mod=attachment&aid=ODc0N3xkNDVjZGI1OHwxNjYwNzkyMTUxfDY0MjY5OXwxMTg2MzE%3D

2.4. 其他参考链接

OpenHarmony官方文档:https://gitee.com/openharmony/docs/tree/master