0%

OpenHarmony代码下载与编译简单记录

前情提要

最近经常在网上刷到了OpenHarmony Next的新闻,虽然目前生态还不是很全面,但是个人觉得华为抛弃AOSP是一个非常正确的路线。

从目前开发者页面的信息来看,未来鸿蒙系统会采用强审核的规则,有可能像苹果一样,手机只能从华为应用商店下载应用,一般的开发者也只能通过其来分发,这样的好处是应用可以更加规范,假如不开放侧载功能的话,就会像iOS一样比较封闭了,但对与用户的隐私来说,可能是个好事情。

个人非常期待国内有厂商能够完全整合手机、电脑和IoT生态。

如果电脑也能用自研的系统而不是Windows,那就可以形成一个完整的生态链路。

个人感觉小米和华为比较有希望实现,并且华为实现可能更快。

届时,手机、电脑、可穿戴设备、车、智能家居等设备,都能在生态圈里起到作用,不同类型设备的互相联动,会产生非常大的火花,苹果已经宣布取消造车,未来国产的东西,是不是真的能崛起并引领世界潮流了呢?

大概记录一下下载代码和编译

本来想详细记录一下,但是最近在忙着把服务器的系统从ESXi迁移切换到PVE,就简单记录一下吧。

可以参考官方环境搭建教程官方编译指引

大体的流程是这样的

  1. gitee上注册账号并添加公钥
  2. 本地git配置中添加gitee信息
  3. 下载代码
  4. 编译

我的开发环境基于 Ubuntu 22.04,但是官方的文档更推荐使用20.04或18.04版本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
magicdian@magicdian-compile-server:~/magicnas/openharmony$ lsb_release  -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy

magicdian@magicdian-compile-server:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 45 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 48
On-line CPU(s) list: 0-47
Vendor ID: AuthenticAMD
Model name: AMD EPYC 7402P 24-Core Processor
CPU family: 23
Model: 49
Thread(s) per core: 1
Core(s) per socket: 48
Socket(s): 1
Stepping: 0
BogoMIPS: 5589.49
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc cpuid extd_apicid tsc_k
nown_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext ssbd ibrs ibpb vmmcall f
sgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero wbnoinvd arat umip rdpid overflow_recov succor

需要配置python,22.04系统只有python3,只需要将python指向python3即可,如果没有记错我是用下面的命令配置的。

1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1

编译时如果遇到提示找不到 /usr/lib/java-wrappers/java-wrappers.sh

1
2
magicdian@magicdian-compile-server:~/magicnas/openharmony$ javac
/usr/bin/javac: 4: .: cannot open /usr/lib/java-wrappers/java-wrappers.sh: No such file

需要手动安装java-wrappers,安装命令sudo apt-get install -y java-wrappers

项目里有用到git-lfs,所以拉代码之前要记得安装

1
sudo apt-get install git-lfs

还需要安装 sudo apt-get install lz4 genext2fs

1
2
3
4
5
default-jdk is not installed. please install it.
u-boot-tools is not installed. please install it.
mtools is not installed. please install it.
mtd-utils is not installed. please install it.
gcc-arm-none-eabi is not installed. please install it.

上面这段好像是编译时的报错,我忘了是咋解决的了

error: ‘KHR/khrplatform.h’ file not found
这个折腾了我好久,在鸿蒙build仓库issue里也米有搜到,似乎是安装这两个包后解决的

1
2
sudo apt-get install libglfw3-dev
sudo apt install mesa-utils

针对rk3568板子编译成功,花了一个多小时

编译命令:./build.sh --product-name rk3568

1
2
3
4
5
6
7
All rules passed
[OHOS INFO] rk3568 build success
[OHOS INFO] Cost time: 1:10:41
=====build successful=====
2024-03-03 07:35:47
++++++++++++++++++++++++++++++++++++++++
magicdian@magicdian-compile-server:~/magicnas/openharmony$

后记

其实针对这种搭建环境的记录,真的需要做一步写一步,不然等操作完回过头来,很多地方就想不起来了,所以这篇记录比较零碎,等之后服务器系统重装完后,我再重新配置一遍,到时再补充。

Updated: 补充完整过程 -> Ubuntu 22.04下载与编译OpenHarmony