当前位置: 首页 > news >正文

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

文章目录

  • 一、前言
  • 二、环境配置
  • 三、源码下载
    • 安装OpenHarmony 工具和库
    • 获取源码
  • 四、源码编译
  • 五、镜像烧录
    • 安装USB驱动
    • 烧写镜像
  • 六、总结

一、前言

本文以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文章↩

http://www.dtcms.com/a/390591.html

相关文章:

  • 大模型提示词Prompt工程:2-全攻略+最佳实践框架+原理解析+实战案例库+七招要诀
  • 大模型微调——Prompt-Tuning
  • code2prompt 快速生成项目 Markdown 文档(结合大模型进行问答)
  • UIKit-CAGradientLayer
  • K8s LoadBalancer服务深度解析
  • Windows 系统开发 iOS 与安卓应用全流程指南,附 PC 前端工具链
  • CentOS 7 系统 “cannot find a valid baseurl for repo base7x86_64” 报错完整解决方案
  • centos7通过kubeadm安装k8s1.27.1版本
  • kubesphere(k8s)如何设置存储类的默认路径
  • 在 k8s 上部署 Kafka 4.0 3节点集群
  • k8s 部署 EMQX 5.8.6 静态三节点集群
  • UVa1374/LA3621 Power Calculus
  • 以 NoETL 重塑 AI-Ready 的数据底座,Aloudata 获评 IDC 面向生成式 AI 的数据基础设施核心厂商
  • 声音转文字API平台推荐
  • Vue3: watch watchEffect
  • 梯度提升算法及其在回归与分类中的应用实战
  • 【自然语言处理与大模型】大模型应用开发四个场景
  • 深度神经网络-传播原理
  • 交通仿真术语
  • 关于Oracle主外键约束的几个SQL语句
  • Python 操作 SQLite:Peewee ORM 与传统 sqlite3.connect 的全方位对比
  • go资深之路笔记(四)中间件(Middleware)设计模式
  • MySQL分库分表迁移:ETL平台如何实现数据合并与聚合
  • [极客大挑战 2019]BabySQL
  • SQL-索引使用
  • 数据库和数据仓库有什么区别
  • SpringBoot2.7X整合Swagger、Redission3.X的bug
  • uniapp安卓原生插件实现开启ble Server[外围模式]
  • React 18.2中使用React Router 6.4
  • 人员在岗监测技术研究:基于计算机视觉的智能监管方案