OpenHarmony 标准/小型/轻量 系统编译
云将东游,过扶摇之枝,而适遭鸿蒙。—《庄子·在宥》
本文详细介绍了OpenHarmony 标准(standard/L2)、小型(small/L1)、轻量(mini/L0) 系统代码下载及编译方法。
1.编译环境要求
- 编译环境需要Ubuntu18.04及以上版本。笔者环境为WSL2 + Ubuntu20.04。
2.代码下载
2.1最新代码下载(最新代码已切到gitcode,建议按照2.2章节下载)
-
官方路径:https://gitee.com/openharmony,进入以后在公告栏有最新版本路径,例如:“社区已于2025-01-22发布OpenHarmony-v5.0.2-Release版本, 详情请参考https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.0.2-release.md”。

-
进入最新版本路径“https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.0.2-release.md”按照指示下载代码。
-
建议选择 通过repo获取->方式一(推荐)->从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。如下图:

2.2历史归档代码下载
- 路径:https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/Readme.md
选择对应版本点击进入详细信息,并下载代码
- 建议选择 通过repo获取->方式一(推荐)->从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。如下图:

3.代码编译
进入源代码目录执行下面命令下载编译工具链,编译 标准/小型/轻量 都需要执行。
bash build/prebuilts_download.sh --skip-ssl
3.1标准系统编译
3.1.1安装命令:
apt-get update -y
apt-get install -y
# 如果是ubuntu20.04系统请直接安装python3.9,如果是ubuntu18.04请改为安装python3.8
apt-get install -y apt-utils binutils bison flex bc build-essential make mtd-utils gcc-arm-linux-gnueabi u-boot-tools python3.9 python3-pip git zip unzip curl wget gcc g++ ruby dosfstools mtools default-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-dev tar rsync liblz4-tool genext2fs binutils-dev device-tree-compiler e2fsprogs git-core gnupg gnutls-bin gperf lib32ncurses5-dev libffi-dev zlib* libelf-dev libx11-dev libgl1-mesa-dev lib32z1-dev xsltproc x11proto-core-dev libc6-dev-i386 libxml2-dev lib32z-dev libdwarf-dev
apt-get install -y grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales doxygen
apt-get install -y libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
# python需要安装以下模块
pip3 install --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple requests setuptools pymongo kconfiglib pycryptodome ecdsa ohos-build pyyaml prompt_toolkit==1.0.14 redis json2html yagmail python-jenkins
pip3 install esdk-obs-python --trusted-host pypi.org
pip3 install six --upgrade --ignore-installed six
# 安装nodejs npm
apt-get install -y nodejs npm
# 如果提示node版本不够,可以按照下面安装指定版本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm list-remote
nvm install v20.16.0
详见:https://docs.openharmony.cn/pages/v5.0/zh-cn/device-dev/subsystems/subsys-build-all.md
3.1.2执行编译命令
./build.sh --product-name {product_name} --ccache
./build.sh --product-name rk3568 --ccache
3.2小型/轻量系统编译
3.2.1安装命令:
apt-get update -y
apt-get install -y
# 如果是ubuntu20.04系统请直接安装python3.9,如果是ubuntu18.04请改为安装python3.8
apt-get install -y apt-utils binutils bison flex bc build-essential make mtd-utils gcc-arm-linux-gnueabi u-boot-tools python3.9 python3-pip git zip unzip curl wget gcc g++ ruby dosfstools mtools default-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-dev tar rsync liblz4-tool genext2fs binutils-dev device-tree-compiler e2fsprogs git-core gnupg gnutls-bin gperf lib32ncurses5-dev libffi-dev zlib* libelf-dev libx11-dev libgl1-mesa-dev lib32z1-dev xsltproc x11proto-core-dev libc6-dev-i386 libxml2-dev lib32z-dev libdwarf-dev
apt-get install -y grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales doxygen
apt-get install -y libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
# python需要安装以下模块
pip3 install --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple requests setuptools pymongo kconfiglib pycryptodome ecdsa ohos-build pyyaml prompt_toolkit==1.0.14 redis json2html yagmail python-jenkins
pip3 install esdk-obs-python --trusted-host pypi.org
pip3 install six --upgrade --ignore-installed six
# 安装nodejs npm
apt-get install -y nodejs npm
# 如果提示node版本不够,可以按照下面安装指定版本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm list-remote
nvm install v20.16.0
详见:https://docs.openharmony.cn/pages/v5.0/zh-cn/device-dev/subsystems/subsys-build-all.md
3.2.2安装hb工具:
- OH3.2 安装:
python3 -m pip install --user ohos-build==0.4.6
- OH4.x/5.x 安装:
python3 -m pip install --user build/hb
备注:需要在源码根目录执行python3 -m pip install --user build/hb
3.2.3执行编译命令
hb set选择编译目标,通过上下箭头进行选择。
hb set

选择mini系统中->wifiiot_hispark_pegasus目标,如下图:
回车选中对应编译目标,如下图:
hb build 编译产品、开发板或者部件
hb build
本例中 mini系统中wifiiot_hispark_pegasus为Hi3861芯片,Hi3861为risc-v内核,需要安装risc-v编译环境,通常上述编译会报错误“[OHOS ERROR] ccache: error: Could not find compiler “riscv32-unknown-elf-gcc” in PATH”。解决办法详见:https://docs.openharmony.cn/pages/v4.1/zh-cn/device-dev/quick-start/quickstart-pkg-3861-tool.md
3.2.4采用build.sh编译轻量和小型系统
轻量和小型系统也可以使用build.sh进行编译,最终也是调用hb进行编译,但采用build.sh没有下拉选择项,需要输入正确的product name。
- 轻量系统wifiiot_hispark_pegasus编译命令
./build.sh --product-name wifiiot_hispark_pegasus --ccache --no-prebuilt-sdk
- 小型系统ipcamera_hispark_taurus_linux编译命令
./build.sh --product-name ipcamera_hispark_taurus_linux --ccache --no-prebuilt-sdk
附录一:hb工具使用说明:
hb set:设置要编译的产品
hb env:查看当前设置信息
hb clean:清除 out 目录对应产品的编译产物,仅保留 args.gn、build.log
hb build:编译产品、开发板或者部件
hb build 后无参数,会按照设置好的代码路径、产品进行编译,编译选项使用与之前保持一致。-f 选项将删除当前产品所有编译产品,等同于 hb clean + hb build。
hb build {component_name},基于设置好的产品对应的单板、内核,单独编译组件,例如:hb build kv_store。
hb build -p ipcamera@hisilicon,免 set 编译产品,该命令可以跳过 set 步骤,直接编译产品。
附录二:编译成功log如下:
[OHOS INFO] ---------------------------------------------
[OHOS INFO] end hpm command
[OHOS INFO] start run hpm command
[OHOS INFO] end hpm command
[OHOS INFO] start run hpm command
[OHOS INFO] unrecognized ninja log format, we need # ninja log v5
[OHOS INFO]
[OHOS INFO] end hpm command
[OHOS INFO] start run hpm command
[OHOS INFO] c targets overlap rate statistics
[OHOS INFO] subsystem files NO. percentage builds NO. percentage overlap rate
[OHOS INFO] commonlibrary 1 0.1% 1 0.1% 1.00
[OHOS INFO] communication 287 38.4% 287 38.4% 1.00
[OHOS INFO] developtools 6 0.8% 6 0.8% 1.00
[OHOS INFO] hiviewdfx 17 2.3% 17 2.3% 1.00
[OHOS INFO] security 195 26.1% 195 26.1% 1.00
[OHOS INFO] startup 26 3.5% 26 3.5% 1.00
[OHOS INFO] systemabilitymgr 15 2.0% 15 2.0% 1.00
[OHOS INFO] test 30 4.0% 30 4.0% 1.00
[OHOS INFO] thirdparty 145 19.4% 145 19.4% 1.00
[OHOS INFO] updater 4 0.5% 4 0.5% 1.00
[OHOS INFO] xts 30 4.0% 30 4.0% 1.00
[OHOS INFO]
[OHOS INFO] c overall build overlap rate: 1.00
[OHOS INFO]
[OHOS INFO]
[OHOS INFO] end hpm command
[OHOS INFO] wifiiot_hispark_pegasus build success
[OHOS INFO] Cost Time: 0:00:37
更多推荐


所有评论(0)