云将东游过扶摇之枝而适遭鸿蒙。—《庄子·在宥》本文详细介绍了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.代码编译进入源代码目录执行下面命令下载编译工具链编译 标准/小型/轻量 都需要执行。bashbuild/prebuilts_download.sh --skip-ssl3.1标准系统编译3.1.1安装命令apt-getupdate-yapt-getinstall-y# 如果是ubuntu20.04系统请直接安装python3.9如果是ubuntu18.04请改为安装python3.8apt-getinstall-yapt-utils binutils bison flexbcbuild-essentialmakemtd-utils gcc-arm-linux-gnueabi u-boot-tools python3.9 python3-pipgitzipunzipcurlwgetgcc g ruby dosfstoolsmtoolsdefault-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-devtarrsyncliblz4-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-devapt-getinstall-ygrsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautilsquotappp libtinfo-dev libtinfo5 libncurses5 libncurses5-dev libncursesw5 libstdc6 gcc-arm-none-eabivimsshlocales doxygenapt-getinstall-ylibxinerama-dev libxcursor-dev libxrandr-dev libxi-dev# python需要安装以下模块pip3install--trusted-host https://repo.huaweicloud.com-ihttps://repo.huaweicloud.com/repository/pypi/simple requests setuptools pymongo kconfiglib pycryptodome ecdsa ohos-build pyyamlprompt_toolkit1.0.14 redis json2html yagmail python-jenkins pip3installesdk-obs-python --trusted-host pypi.org pip3installsix--upgrade--ignore-installed six# 安装nodejs npmapt-getinstall-ynodejsnpm# 如果提示node版本不够可以按照下面安装指定版本curl-o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh|bashsource~/.bashrc nvm list-remote nvminstallv20.16.0详见https://docs.openharmony.cn/pages/v5.0/zh-cn/device-dev/subsystems/subsys-build-all.md3.1.2执行编译命令./build.sh --product-name {product_name} --ccache./build.sh --product-name rk3568--ccache3.2小型/轻量系统编译3.2.1安装命令apt-getupdate-yapt-getinstall-y# 如果是ubuntu20.04系统请直接安装python3.9如果是ubuntu18.04请改为安装python3.8apt-getinstall-yapt-utils binutils bison flexbcbuild-essentialmakemtd-utils gcc-arm-linux-gnueabi u-boot-tools python3.9 python3-pipgitzipunzipcurlwgetgcc g ruby dosfstoolsmtoolsdefault-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-devtarrsyncliblz4-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-devapt-getinstall-ygrsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautilsquotappp libtinfo-dev libtinfo5 libncurses5 libncurses5-dev libncursesw5 libstdc6 gcc-arm-none-eabivimsshlocales doxygenapt-getinstall-ylibxinerama-dev libxcursor-dev libxrandr-dev libxi-dev# python需要安装以下模块pip3install--trusted-host https://repo.huaweicloud.com-ihttps://repo.huaweicloud.com/repository/pypi/simple requests setuptools pymongo kconfiglib pycryptodome ecdsa ohos-build pyyamlprompt_toolkit1.0.14 redis json2html yagmail python-jenkins pip3installesdk-obs-python --trusted-host pypi.org pip3installsix--upgrade--ignore-installed six# 安装nodejs npmapt-getinstall-ynodejsnpm# 如果提示node版本不够可以按照下面安装指定版本curl-o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh|bashsource~/.bashrc nvm list-remote nvminstallv20.16.0详见https://docs.openharmony.cn/pages/v5.0/zh-cn/device-dev/subsystems/subsys-build-all.md3.2.2安装hb工具OH3.2 安装python3-mpipinstall--userohos-build0.4.6OH4.x/5.x 安装python3-mpipinstall--userbuild/hb备注需要在源码根目录执行python3 -m pip install --user build/hb3.2.3执行编译命令hb set选择编译目标通过上下箭头进行选择。hbset选择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.md3.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-pipcamerahisilicon免set编译产品该命令可以跳过set步骤直接编译产品。附录二编译成功log如下[OHOS INFO]---------------------------------------------[OHOS INFO]end hpmcommand[OHOS INFO]start run hpmcommand[OHOS INFO]end hpmcommand[OHOS INFO]start run hpmcommand[OHOS INFO]unrecognized ninja log format, we need# ninja log v5[OHOS INFO][OHOS INFO]end hpmcommand[OHOS INFO]start run hpmcommand[OHOS INFO]c targets overlap rate statistics[OHOS INFO]subsystem files NO. percentage builds NO. percentage overlap rate[OHOS INFO]commonlibrary10.1%10.1%1.00[OHOS INFO]communication28738.4%28738.4%1.00[OHOS INFO]developtools60.8%60.8%1.00[OHOS INFO]hiviewdfx172.3%172.3%1.00[OHOS INFO]security19526.1%19526.1%1.00[OHOS INFO]startup263.5%263.5%1.00[OHOS INFO]systemabilitymgr152.0%152.0%1.00[OHOS INFO]test304.0%304.0%1.00[OHOS INFO]thirdparty14519.4%14519.4%1.00[OHOS INFO]updater40.5%40.5%1.00[OHOS INFO]xts304.0%304.0%1.00[OHOS INFO][OHOS INFO]c overall build overlap rate:1.00[OHOS INFO][OHOS INFO][OHOS INFO]end hpmcommand[OHOS INFO]wifiiot_hispark_pegasus build success[OHOS INFO]Cost Time:0:00:37