前言
最近在做OpenHarmony相关的设备开发,发现网络上大部分都是基于3.1的教程,针对4.0/4.1的文档反而没那么多,而4.0/4.1和3.1之间的编译又有一些差距,在踩了无数个坑之后,终于完成了4.0/4.1的编译,为了方便大家后续的开发,特意写一篇文章来介绍以贝启RK3568开发板为例的OpenHarmony设备开发的详细过程。
基本环境
操作系统: Ubuntu 22.04
开发板:贝启RK3568
OpenHarmony版本:OpenHarmony 4.0标签
环境准备
获取源码
首先前往OpenHarmony官方的gitee仓库
从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。这里我们选择OpenHarmony-v4.0-Release
的标签获取版本发布当时的源码。
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
注:官方的源码不一定适配所有开发板,对于某些开发板(比如本文使用的贝启RK3568),需要打上厂家提供的补丁才能正常使用,这部分内容本系列第二篇内容会讲到。
配置开发环境
为了在编译的时候不出现问题,本文采用docker镜像的方式创建开发环境(我们假设上一步已经将源码存在$(pwd)/docker_data$
):
sudo docker run -itd --name OH-compile -v $(pwd)/docker_data:/data/ ubuntu:bionic-20230530
创建完成之后,进入容器的内部,安装基本的环境:
apt-get update && 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
然后安装源码自带的prebuilts脚本:
bash build/prebuilts_download.sh
到这里,不出意外的话就可以尝试我们的第一次编译了,在源码目录执行如下脚本命令:
root@b08acd16337c:/data/BQ3568# ./build.sh --product-name rk3568 --target-cpu arm64 --ccache
等待20分钟左右,可以看到编译完成:
(未完待续)