OpenHarmony 4.0 Release 编译及报错

1、环境准备

安装下面这三东西,是为了下载 Harmony 源码

sudo apt install curl

sudo apt install python3-pip

sudo apt install git-lfs

安装下面这五个东西,是为了解决编译到最后报错(头铁不信的,你可以试试,等最后再安装)

sudo apt install default-jdk

sudo apt install mtd-utils

sudo apt install scons

sudo apt install gcc-arm-none-eabi

sudo apt install gcc-arm-linux-gnueabi

sudo apt-get install libxt-dev

sudo apt-get install libx11-dev

sudo apt install xorg-dev

sudo apt-get install liblz4-tool

sudo apt install dwarves

2、安装 repo

务必按照此步骤安装repo。ubuntu默认提供的repo每次启动都会访问googlge服务器,会被墙。

此外20.04下需要root身份执行--否则提示没权限。

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo

chmod a+x /usr/local/bin/repo

pip3 install -i Simple index requests

3、下载源码

官网版本更新说明}([docs: OpenHarmony documentation \| OpenHarmony开发者文档 - Gitee.com](https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes "docs: OpenHarmony documentation | OpenHarmony开发者文档 - Gitee.com")) 目前最新为 4.0 版本,内核基于 5.10,老版本 2.x 1.x 已经停止维护,内核基于 4.19 参考官网下载方式 repo init -u [OpenHarmony/manifest](https://gitee.com/openharmony/manifest "OpenHarmony/manifest") -b OpenHarmony-4.0-Release --no-repo-verify repo sync -c repo forall -c 'git lfs pull' 注意那个 4.0 之前没有 v,以前的版本是有这个 v 的,不然会初始化失败,还有就是注意检查电脑是否断网了 ## 4、下载编译依赖工具包 源码下载完成后,进入根目录执行 bash build/prebuilts_download.sh 看你网速快慢,我这大概10分钟,下载完成后会多出 openharmony_prebuilts 文件夹 ## **5、编译源码** ./build.sh --product-name rk3568 --ccache 第一次编译前面阶段 2W 多个文件,后面阶段 6W 多个文件,整体时间看你电脑性能。 编译中间要是出错看提示就行,少啥就自行安装,比如这种 default-jdk is not installed. please install it. mtd-utils is not installed. please install it. scons is not installed. please install it. gcc-arm-none-eabi is not installed. please install it. gcc-arm-linux-gnueabi is not installed. please install it. Missing dependencies, please check! \[OHOS INFO\] Set cache size limit to 100.0 GB \[OHOS INFO\] generated build prop info to /hom nce:sync_fence All rules passed Do NO-Config-Cmds-In-Init rule checking now: \[WARNING\]: local_code_sign is not in start cmd list. path:/system/etc/init/local_code_sign.cfg \[WARNING\]: intell_voice_service is not in start cmd list. path:/system/etc/init/intell_voice_service.cfg Please refer to: https://gitee.com/openharmony/developtools_integration_verification/tree/master/tools/startup_guard/rules/NO-Config-Cmds-In-Init/README.md Do NO-Config-SystemParameter-In-INIT rule checking now: Please modify according to README.md \[OHOS INFO\] rk3568 build success \[OHOS INFO\] Cost time: 1:58:23 =====build successful===== 2023-11-29 11:47:19 ++++++++++++++++++++++++++++++++++++++++ --------------------------------------------------------------------------------------------------------------------------------- ## **6、编译错误** ### **1、fatal error: X11/XXXX.h: No such file or directory** \[OHOS ERROR\] In file included from ../../third_party/flutter/glfw/src/init.c:28: \[OHOS ERROR\] In file included from ../../third_party/flutter/glfw/src/internal.h:169: \[OHOS ERROR\] ../../third_party/flutter/glfw/src/x11_platform.h:39:10: fatal error: 'X11/Xcursor/Xcursor.h' file not found \[OHOS ERROR\] #include \ \[OHOS ERROR\] \^\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~ \[OHOS ERROR\] 1 error generated. \[OHOS ERROR\] \[7497/20650\] CC clang_x64/obj/third_party/flutter/glfw/src/glfw/input.o \[OHOS ERROR\] FAILED: clang_x64/obj/third_party/flutter/glfw/src/glfw/input.o sudo apt-get install libxt-dev sudo apt-get install libx11-dev sudo apt install xorg-dev ### **2、error: use of undeclared identifier 'strlen'** \[OHOS ERROR\] idxVal = (idxVal \>= projectModels.size()) ? 0 : idxVal; \[OHOS ERROR\] \~\~\~\~\~\~ \^ \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~ \[OHOS ERROR\] ../../ide/tools/previewer/util/CommandParser.cpp:785:36: warning: comparison of integers of different signs: 'int' and 'std::vector::size_type' (aka 'unsigned long') \[-Wsign-compare

OHOS ERROR\] if (enumValue \< 0 \|\| enumValue \>= projectModels.size()) { \[OHOS ERROR\] \~\~\~\~\~\~\~\~\~ \^ \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~ \[OHOS ERROR\] ../../ide/tools/previewer/util/CommandParser.cpp:855:24: error: use of undeclared identifier 'strlen' \[OHOS ERROR\] size_t argLength = strlen(str); \[OHOS ERROR\] \^ \[OHOS ERROR\] 2 warnings and 1 error generated. CommandParser.cpp 添加 #include \ ### **3、kernel编译报错\|/bin/sh: 1: lz4c: not found** SORTTAB vmlinux SYSMAP System.map OBJCOPY arch/arm64/boot/Image LZ4 arch/arm64/boot/Image.lz4 /bin/sh: 1: lz4c: not found make\[3\]: \*\*\* \[/home/kevin/disk/code/OpenHarmony4.0/out/kernel/src_tmp/linux-5.10/arch/arm64/boot/Makefile:31: arch/arm64/boot/Image.lz4\] Error 127 make\[3\]: \*\*\* Deleting file 'arch/arm64/boot/Image.lz4' make\[2\]: \*\*\* \[arch/arm64/Makefile:162: Image.lz4\] Error 2 make\[1\]: \*\*\* \[arch/arm64/Makefile:208: rk3568-toybrick-x0-linux.img\] Error 2 make\[1\]: Leaving directory '/home/kevin/disk/code/OpenHarmony4.0/out/kernel/OBJ/linux-5.10' make: \*\*\* \[Makefile:185: __sub-make\] Error 2 sudo apt-get install liblz4-tool ### **4、 error: Cannot resolve BTF IDs for CONFIG_DEBUG_INFO_BTF, please install libelf-dev, libelf-devel or elfutils-libelf-devel** \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/dma.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/emergency-restart.h \[OHOS ERROR\] error: Cannot resolve BTF IDs for CONFIG_DEBUG_INFO_BTF, please install libelf-dev, libelf-devel or elfutils-libelf-devel \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/hw_irq.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/irq_regs.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/kdebug.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/kmap_types.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/local.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/local64.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/mm-arch-hooks.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/mmiowb.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/msi.h \[OHOS ERROR\] make\[2\]: \*\*\* \[/home/kevin/disk/code/OpenHarmony4.0/out/kernel/src_tmp/linux-5.10/Makefile:1295: prepare-resolve_btfids\] Error 1 \[OHOS ERROR\] make\[2\]: \*\*\* Waiting for unfinished jobs.... \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/serial.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/switch_to.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/trace_clock.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/unaligned.h \[OHOS ERROR\] WRAP arch/arm64/include/generated/asm/vga.h \[OHOS ERROR\] make\[1\]: \*\*\* \[arch/arm64/Makefile:208: rk3568-toybrick-x0-linux.img\] Error 2 \[OHOS ERROR\] make\[1\]: Leaving directory '/home/kevin/disk/code/OpenHarmony4.0/out/kernel/OBJ/linux-5.10' \[OHOS ERROR\] make: \*\*\* \[Makefile:185: __sub-make\] Error 2 \[OHOS ERROR\] Traceback (most recent call last): sudo apt install dwarves 修改文件路径: /OpenHarmony4.0/kernel/linux/config/linux-5.10/arch/arm64/configs/ |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [k3568_standard_defconfig](http://192.168.100.206:8080/source/xref/OpenHarmony4.0/kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig "k3568_standard_defconfig") | [6608 CONFIG_DEBUG_INFO_BTF=y](http://192.168.100.206:8080/source/xref/OpenHarmony4.0/kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig#6608 "6608 CONFIG_DEBUG_INFO_BTF=y") | 修改为 : |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [rk3568_standard_defconfig](http://192.168.100.206:8080/source/xref/OpenHarmony4.0/kernel/linux/config/linux-5.10/arch/arm64/configs/rk3399_standard_defconfig "rk3568_standard_defconfig") | [6608 CONFIG_DEBUG_INFO_BTF is not set](http://192.168.100.206:8080/source/xref/OpenHarmony4.0/kernel/linux/config/linux-5.10/arch/arm64/configs/rk3399_standard_defconfig#6524 "6608 CONFIG_DEBUG_INFO_BTF is not set") | ### **5、 genext2fs: command not found** \[OHOS ERROR\] E/write_index_tbl(1498): try to write index entry(./arch/arm64/boot/dts/rockchip/rk3568-toybrick-x0-linux.dtb)... \[OHOS ERROR\] E/write_index_tbl(1515): mod fdt path:./arch/arm64/boot/dts/rockchip/rk3568-toybrick-x0-linux.dtb -\> rk-kernel.dtb... \[OHOS ERROR\] E/write_index_tbl(1498): try to write index entry(logo.bmp)... \[OHOS ERROR\] E/write_index_tbl(1498): try to write index entry(logo_kernel.bmp)... \[OHOS ERROR\] Image: resource.img (with rk3568-toybrick-x0-linux.dtb logo.bmp logo_kernel.bmp) is ready \[OHOS ERROR\] make\[1\]: Leaving directory '/home/kevin/disk/code/OpenHarmony4.0/out/kernel/OBJ/linux-5.10' \[OHOS ERROR\] \~/disk/code/OpenHarmony4.0/out/rk3568 \[OHOS ERROR\] blocks = 4096 block_size 16384 \[OHOS ERROR\] ../kernel/src_tmp/linux-5.10/make-boot.sh: line 22: genext2fs: command not found \[OHOS ERROR\] Traceback (most recent call last): sudo apt install genext2fs

相关推荐
l1340620823511 分钟前
Flutter Geocoding 在鸿蒙上的使用指南
flutter·华为·harmonyos
无人装备硬件开发爱好者20 分钟前
华为海思 BS21E (H2821E) 星闪组网测距定位 技术可行性方案
华为·最小二乘法·星闪·测距定位
俩毛豆28 分钟前
【毛豆工具集】【UI】【多设备适配】实现与屏幕密度等倍的图片加载
华为·harmonyos
l134062082351 小时前
344.在鸿蒙上使用 animations Flutter 包的指南
flutter·华为·harmonyos
灯前目力虽非昔,犹课蝇头二万言。2 小时前
HarmonyOS笔记12:生命周期
笔记·华为·harmonyos
Random_index4 小时前
#HarmonyOS篇:学习UI规范基本语法&&学习UI范式装填管理V1&&学习UI范式装填管理V2&&学习UI范式渲染控制
harmonyos
前端世界4 小时前
鸿蒙分布式权限管理实战指南:架构原理 + 可运行 Demo
分布式·架构·harmonyos
LRX_1989274 小时前
华为设备配置练习(八)策略路由配置
服务器·网络·华为
SmartBrain4 小时前
解读:《华为变革法:打造可持续进步的组织》
大数据·人工智能·华为·语言模型
挨踢攻城4 小时前
华为认证高级工程师HCIP考证难度大吗?如何获得?不同方向考点对比?
华为·hcie·hcia·hcip·hcip考试