前情提要 最近经常在网上刷到了OpenHarmony Next的新闻,虽然目前生态还不是很全面,但是个人觉得华为抛弃AOSP是一个非常正确的路线。
从目前开发者页面的信息来看,未来鸿蒙系统会采用强审核的规则,有可能像苹果一样,手机只能从华为应用商店下载应用,一般的开发者也只能通过其来分发,这样的好处是应用可以更加规范,假如不开放侧载功能的话,就会像iOS一样比较封闭了,但对与用户的隐私来说,可能是个好事情。
个人非常期待国内有厂商能够完全整合手机、电脑和IoT生态。
如果电脑也能用自研的系统而不是Windows,那就可以形成一个完整的生态链路。
个人感觉小米和华为比较有希望实现,并且华为实现可能更快。
届时,手机、电脑、可穿戴设备、车、智能家居等设备,都能在生态圈里起到作用,不同类型设备的互相联动,会产生非常大的火花,苹果已经宣布取消造车,未来国产的东西,是不是真的能崛起并引领世界潮流了呢?
大概记录一下下载代码和编译 本来想详细记录一下,但是最近在忙着把服务器的系统从ESXi迁移切换到PVE,就简单记录一下吧。
可以参考官方环境搭建教程 和官方编译指引
大体的流程是这样的
gitee上注册账号并添加公钥
本地git配置中添加gitee信息
下载代码
编译
我的开发环境基于 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