OpenHarmony标准系统 [dayu200编译与烧录] 原创
本篇将详细介绍如何编译并烧录OpenHarmony标准系统
@toc
环境配置
作者的环境配置如下:Win
+ WSL2
+ Ubuntu20.04
+ OpenHarmony 3.2Release
标准系统(standard system)
OpenHarmony standard system 是面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为128MiB,可以提供增强的交互能力、3D GPU以及硬件合成能力、更多控件以及动效更丰富的图形能力、完整的应用框架。可支撑的产品如高端的冰箱显示屏。
润和HH-SCDAYU200开发套件
- 基于Rockchip RK3568,集成双核心架构GPU以及高效能NPU;
- 板载四核64位Cortex-A55 处理器采用22nm先进工艺,主频高达2.0GHz;
- 支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口;
- 配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。
OpenHarmony 3.2Release源码获取
OpenHarmony 3.2Release 是OpenHarmony里程碑式的一个版本,在开放原子开源大赛中,该版本也作为项目开发代码版本。在体验标准系统时,使用此版本的源码是一个不错的选择。
源码获取
repo + ssh 下载
注意:此方法需要配置好 git
详细的获取流程可以参考官方文档:
zh-cn/release-notes/OpenHarmony-v3.2-release.md · OpenHarmony/docs - Gitee.com
repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
repo + https 下载
repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-3.2-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
[ 推荐 ] Dev Eco Device Tool 获取
我们还可以通过Dev Eco Tool工具直接获取,这个操作更为简便,而且个人感觉速度要比repo sync -c
执行得更快,所以推荐大家直接使用一站式工具获取源码 。
标准系统的全量编译
指令编译
./build.sh --product-name rk3568
Dev Eco Device Tool
一站式编译,我们需要安装如上图红色方框的部分,橙色方框需要去官方每日构建去下载,但是已经下架了相关信息了,不过没关系,这个不影响我们的编译,没有配置也没关系。之后点击左侧栏PROJECT TASKS 中的 build 即可。
关于编译时长的问题
轻量系统的编译比较快,可以在几秒内完成。但是标准系统不一样,其自身代码就在20G这个量级,编译产物 out 目录也有10G。整个过程十分漫长,当然根据电脑配置不同,编译的时长也有所差异。作者的电脑是 i9-13980HX + 64G内存, 个人感觉还是挺高的,全量编译下来也用了50多分钟,近1个小时,也得益于使用了 WSL2, 能让虚拟机性能完全释放,WSL是真地香。关于WSL的环境搭建,可以看作者的另一个博客,里面详细的介绍了win
+ wsl
环境的搭建。
博客链接: OpenHarmony智能开发套件环境搭建篇
考虑到大家编译可能比较慢,本篇也会附上OpenHarmony 3.2Release 版本纯净代码 全量编译后的镜像文件 images ,供大家体验。
烧录
编译产物
out目录树结构
└──out
├── gen
├── kernel
├── preloader
└── rk3568
烧录工具 [RKDevTool.exe]
这个工具也会在本篇的附件 HiHope_DAYU200 中提供给大家。
首次打开的话是需要下载固件的,但是这个过程也是自动化的,非常简单,就不演示了。下面我们开始烧录。
- 导入镜像文件
镜像文件,位于我们的产物out目录下,具体路径为:out/rk3568/packages/phone/images
我们需要把这个文件全部移动到Windows系统下,这个烧录工具无法直接通过Windows的文件资源管理器识别WSL的文件内容。所以可以直接从资源管理器中先把文件拖到Windows的桌面上。
右击选择 导入配置
选择images下的一个config.cfg 文件
- 修改镜像文件的路径
导入镜像文件后,会发现一个问题,所有文件的路径都不对。这个只是路径错了,但实际的文件信息是成功配置好的,所以我们还需要手动地去修改以下这里的所有路径。
还是注意images的存放位置,尽量不要出现中文。
- 连接设备
连接成功后,我们可以看到烧录工具的提示信息,记住这个提示信息的位置,后面我们还需要观察。
- 进入烧入模式
这里需要使用一个组合键,首先我们同时按住,按住橙色框出来的两个按键。待提示信息提示没有发现设备。
松开绿色框中的按键,另一个保持按住的状态,代提示信息提示发现一个LOADER设备,此时开发板进入烧录待烧录的状态。
-
开始烧录
点击执行按键即可进行烧录,烧录完成后开发板会自动开机。
- 运行
WSL2 磁盘清理
使用WSL2虽然很香,但是也有美中不足的地方。比如在我们清理文件的时候,WSL2的文件是清理掉了但是并不会释放存储空间,这会导致随着长时间的使用,磁盘空间不足的情况,特别是WSL默认是装在了系统盘上, 如果没有迁移,那更要注重日常的清理了。
diskpart
我们主要使用diskpart来让WSL2释放出未归还的存储空间。首先以管理员模式运行PowerShell,一定要管理员模式。
- 停止WSL的工作
wsl --shutdown
- 启动diskpart
diskpart
- 选择WSL的磁盘
select vdisk file="your path"
- 释放存储空间
compact vdisk
- 完成后输入 exit 退出即可。
踩坑记录
就是在编译源码的时候,作者没有使用hb
使用hb set
指令也能够看到有hihope的rk3568,接着执行命令hb build -f
进行全量编译。但是作者通过这个方式得到的编译产物始终无法让dayu200开机,会不停地重复开机画面进入不了系统。也不知道什么原因,hb
指令编译过程中 INFO
是 7w9多条,而使用build.sh
指令,和Dev Eco
只有4w2条左右。有明白的大佬也可以出来解答一下哈。
参考阅读
zh-cn/release-notes/OpenHarmony-v3.2-release.md · OpenHarmony/docs - Gitee.com
使用diskpart释放WSL2的磁盘空间_wsl2释放空间_hzgaoshichao的博客-CSDN博客
https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200