OpenHarmony 4.0 Release源码下载、编译及烧录

一、前言

本文以OpenHarmony 4.0 Release(以下简称4.0r)为例,详细介绍如何拉取、编译4.0r源码,以及如何烧录4.0r镜像。

二、环境配置

设备参数
主机平台Windows 10 64bit 16G RAM
代码服务器Ubuntu 20.04 128G RAM 16T存储
运行设备DAYU200 RK3568 2G RAM 1T存储

RK3568开发详情参考:RK3568开发板介绍

三、源码下载

首选推荐源码下载至linux代码服务器,资源更充裕,下载和编译更高效;若条件有限,需在个人PC上下载和编译4.0r源码,可使用虚拟机或WSL2下载和编译4.0r源码,参考:Windows 10 使用WSL2下载和编译安卓10源码

参考链接:
OpenHarmony搭建开发环境
OpenHarmony-v4.0-release 源码获取

安装OpenHarmony 工具和库

在linux环境下运行以下命令,安装OpenHarmony源码下载和编译所需的工具和库

$ sudo apt-get install -y gcc-arm-linux-gnueabi gcc-9-arm-linux-gnueabi
$ sudo apt-get install -y python python3 python3-pip binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev   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 genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev

获取源码

可通过repo + ssh和repo + https获取4.0r源码,两种方式取其一,推荐ssh

  • 方式一: repo + ssh
    注意: ssh需要在gitee注册公钥,步骤如下:
# 查看linux服务器个人公钥
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAxxx...xxxserver2
#将上述公钥copy,添加到gitee ssh公钥处「个人设置」->「安全设置」->「SSH公钥」->「添加公钥」,否则没有权限拉取源码,报错如下:
...
git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists
...

在这里插入图片描述

repo + ssh拉取代码步骤如下

#创建名为OpenHarmony_4.0_release文件夹,用于存放OpenHarmony 4.0 release源码
$ mkdir OpenHarmony_4.0_release
# 进入OpenHarmony_4.0_release目录
$ cd OpenHarmony_4.0_release
#初始化4.0r源码仓库
$ repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
#正常结果
...
Resolving deltas: 100% (6490/6490), done.
...
repo has been initialized in xxx/OpenHarmony_4.0_release
#拉取所有子仓库代码
$ repo sync -c
#拉取git lfs大文件(如二进制资源、模型文件、镜像等)
$ repo forall -c 'git lfs pull'
#统一将所有git仓库切换至OpenHarmony-v4.0-Release分支
$ repo start --all OpenHarmony-v4.0-Release
  • 方式二:repo + https
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'
$ repo start --all OpenHarmony-v4.0-Release

四、源码编译

OpenHarmony 4.0 release源码编译步骤如下:
注意:bash build/prebuilts_download.sh仅首次编译时执行,后续编译无需执行

#进入源码根目录
$ cd OpenHarmony_4.0_release/
# 下载预便于工具链、编译器、依赖等,完成编译前的环境配置 (存在一定耗时,耐心等待~)
bash build/prebuilts_download.sh
#基于rk3568标准设备类型全量编译(默认8线程)
./build.sh -p rk3568
#一切顺利,编译成功结果如下:
...
[OHOS INFO] rk3568 build success
[OHOS INFO] Cost time:  0:40:14
=====build  successful=====
2025-09-18 20:20:30

在这里插入图片描述
生成镜像位于:out\rk3568\packages\phone\images
在这里插入图片描述

常见编译问题参考:OpenHarmony常见编译异常处理
注意:有时Ubuntu系统因为环境问题,导致OpenHarmony源码编译异常,可借助docker部署干净的ubuntu环境来下载和编译OpenHarmony源码,可参考:Docker 编译OpenHarmony 4.0 release

五、镜像烧录

参考链接
烧录OpenHarmony源码镜像需要使用RKDevTool烧写工具
在这里插入图片描述
RKDevTool_windows工具下载

安装USB驱动

解压下载好的DriverAssitant_v5.1.1.zip,鼠标选中DriverInstall.exe双击打开安装程序
在这里插入图片描述
选择"驱动安装"按钮,安装成功后点击"确定",关闭弹框
在这里插入图片描述

烧写镜像

打开RKDevTool.exe烧写工具
在这里插入图片描述
表格鼠标右键选择"导入配置"
在这里插入图片描述
选择生成镜像目录out\rk3568\packages\phone\images\config.cfg文件,鼠标√项最右侧空白栏,选择相应文件,更新选项路径

名称文件
LoaderMiniLoaderAll.bin
Parameterparameter.txt
Ubootuboot.img
misc
resourceresource.img
Boot_linuxboot_linux.img
ramdiskramdisk.img
Systemsystem.img
Vendorvendor.img
sys-prod
chip-prod
updaterupdater.img
Userdatauserdata.img
bootctrl

在这里插入图片描述
表格区域鼠标右键选择"导出配置",选择合适路径保存为xxx/config.cfg,以便后续烧录直接导入该配置文件,避免重复更新配置
在这里插入图片描述
此时RKDevTool 显示没有发现设备发现一个MASKROM设备,不在’LOADER’烧写模式,无法给设备烧写镜像。

  • 将RK3568设备开机,按下图连接蓝色USB烧写线
    在这里插入图片描述
  • 设备开机后,持续按下Recovery(2) + RESET(1)按键大约3秒,然后松开 RESET(1) 按键,大约3秒后松开Recovery(2) 按键,正常情况RKDevTool 识别到设备,并进入LOADER模式
    在这里插入图片描述
  • 点击"执行"按钮,进行程序烧写,烧写成功后设备自动开机
    在这里插入图片描述
    可通过以下hdc命令查看系统版本、关闭自动锁屏
#查看系统版本信息
> hdc shell param get const.product.software.version
OpenHarmony 4.0.10.13

#修改电源模式为性能模式,避免自动锁屏
> hdc shell power-shell setmode 602
Set Mode: 602
Set Mode Success!
***Mutex Cycles Statistic***

更多OpenHarmony源码(FullSDK、模块等)编译技巧↩

✍OneMoreThink
想必你也想到了,每次编译源码后,config.cfg会被覆盖,每次RKDevTool烧录系统,选择配置文件、配置文件路径还是略显繁琐,最好能"傻瓜式"一键完成烧录,那么你可以使用笔者写好的OpenHarmony镜像自动烧录bat脚本工具,提升镜像烧录效率。

六、总结

Congratulations~✌ 通过本文,你已基本掌握:

  • OpenHarmony源码环境搭建
  • OpenHarmony源码下载和编译
  • OpenHarmony镜像烧录

接下来就可以尝试基于OpenHarmony源码进行开发创作了~

了解更多关于OpenHarmony文章↩

<think>好的,我现在需要解决用户关于RK3568开发板在通过VSCode远程连接Ubuntu时只能获取到OpenHarmony 3.2版本,而官网有5.0版本的问题。首先,我需要理解用户的具体疑问:为什么在VSCode环境下只能下载到3.2版本,而官网存在更高的5.0版本,并且这两者的区别是什么。 首先,我需要确认OpenHarmony的版本发布情况。OpenHarmony是华为开源的操作系统,其版本号可能有不同的分支,比如长期支持版(LTS)最新开发版。通常,3.x版本可能是某个LTS版本,而5.0可能是较新的版本,但需要核实具体的版本发布策略。 接下来,用户提到通过VSCode远程连接Ubuntu下载源码时只能获取到3.2版本。这可能与使用的代码仓库、分支配置或构建脚本有关。可能用户使用的脚本或工具链默认指向了3.2版本的分支,而官网的5.0版本可能需要手动切换分支或更新仓库才能获取。此外,用户提到的引用内容中有关于产品配置编译应用的问题,比如引用[2]中提到系统编译应用不支持配置产品,需要删除PAD的构建项。这可能意味着在构建过程中,某些配置限制了版本的获取或编译,导致只能使用旧版。 另外,用户提供的引用[1]提到在特定文件中修改窗口类型以适应RK平台,这可能与硬件适配有关。RK3568作为特定的开发板,可能需要特定的驱动或内核支持,而OpenHarmony的不同版本可能对硬件支持存在差异。3.2版本可能已经针对RK3568进行了充分的适配测试,而5.0版本可能还在开发中,或者需要额外的配置才能在该开发板上运行。 接下来,我需要分析可能的原因: 1. **版本分支差异**:OpenHarmony可能有多个维护分支,3.2是稳定版,5.0是开发中的主分支或预览版。用户使用的脚本或仓库可能默认指向稳定分支,而5.0需要显式切换。 2. **硬件适配延迟**:新的OpenHarmony版本可能需要时间进行硬件适配,特别是RK3568这样的开发板。3.2版本可能已经包含必要的驱动配置,而5.0版本还在适配过程中,导致官方仓库尚未支持。 3. **构建配置限制**:如引用[2]所述,编译系统可能不支持某些产品配置,需要手动修改构建选项。用户在获取5.0版本时可能需要调整构建配置,移除或添加特定的构建项,才能成功编译4. **工具链或依赖问题**:VSCode远程连接Ubuntu的环境可能存在工具链版本或依赖库的限制,导致无法正确拉取或编译更高版本的源码。 关于版本区别,OpenHarmony 5.0可能引入了新功能、性能优化、安全更新等。例如,可能支持新的API、改进的分布式能力、更好的兼容性等,而3.2版本可能在稳定性硬件支持上更为成熟。 用户可能需要检查他们使用的仓库地址、分支设置,以及构建脚本中是否有硬编码的版本信息。此外,查阅OpenHarmony的官方文档或社区讨论,了解RK3568在5.0版本中的支持情况,是否有已知的适配问题或正在进行的工作。 最后,结合用户提供的引用内容,特别是关于编译配置硬件适配的部分,可能需要指导用户如何手动切换分支或修改构建配置,以获取5.0版本的源码,并解决可能的编译问题。</think>关于RK3568开发板获取OpenHarmony版本差异的原因及版本区别分析如下: ### 一、版本获取限制原因 1. **SDK分支管理策略** OpenHarmony 3.2属于长期支持版本(LTS),针对RK3568这类开发板会进行深度适配稳定性验证。而5.0版本可能属于主开发分支,尚未完成对RK3568的完整适配[^1]。部分开发环境工具链默认指向稳定分支,导致VSCode远程编译时只能获取3.2版本。 2. **硬件适配周期差异** 从引用[1]可见,RK平台需要特殊修改窗口类型配置: ```cpp #ifdef PRODUCT_RK option->SetWindowType(SUBWINDOW_TYPE_NORMAL); #else option->SetWindowType(SUBWINDOW_TYPE_VIDEO); #endif ``` 这类硬件适配代码需要时间合并到新版,导致5.0版本尚未包含完整RK3568支持。 3. **编译系统限制** 如引用[2]所述:"系统编译应用目前不支持配置产品",5.0版本可能引入了新的构建系统要求,当前VSCode远程环境缺少对应的配置支持,导致无法自动识别新版构建规则。 ### 二、3.2与5.0版本核心区别 | 特性 | 3.2版本 | 5.0版本 | |---------------------|---------------------------|---------------------------| | 内核支持 | Linux 4.19 + LiteOS | Linux 5.10 + 增强型微内核 | | 分布式能力 | 基础分布式通信 | 增强跨设备数据同步协议 | | 图形子系统 | 基础GPU加速 | 新增Vulkan 1.2支持 | | 开发框架 | ArkUI 1.0 | ArkUI 3.0声明式编程 | | 安全性 | 基础TEE | 集成国密算法支持 | ### 三、获取5.0版本的操作建议 1. 手动切换仓库分支: ```bash repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-5.0 ``` 2. 修改构建配置文件: ```python # build/config/ohos_config.json "product_name": "rk3568", "device_company": "rockchip" ``` 3. 更新编译依赖: ```bash sudo apt-get install ninja-build llvm-12 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值