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)

目前最新为 4.0 版本,内核基于 5.10,老版本 2.x 1.x 已经停止维护,内核基于 4.19

参考官网下载方式

repo init -u 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 <X11/Xcursor/Xcursor.h>
[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 <string.h>

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_defconfig6608 CONFIG_DEBUG_INFO_BTF=y

修改为 : 

rk3568_standard_defconfig6608 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/183594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv常用函数表

函数名功能说明cv2.imread()读取图像文件cv2.imshow()显示图像窗口cv2.imwrite()保存图像文件cv2.cvtColor()颜色空间转换cv2.resize()图像缩放cv2.flip()图像翻转cv2.rectangle()绘制矩形cv2.circle()绘制圆形cv2.line()绘制直线cv2.putText()绘制文本cv2.bitwise_and()与操作…

【Hadoop】集群资源管理器 YARN

一、yarn 简介 Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.x 引入的分布式资源管理系统。主要用于解决 hadoop 1.x 架构中集群资源管理和数据计算耦合在一起&#xff0c;导致维护成本越来越高的问题。 yarn主要负责管理集群中的CPU和内存 用户可以将各种服…

linux 中断管理机制

中断的概念 中断是指在CPU正常运行期间&#xff0c;由于内外部事件或由程序预先安排的事件引起的 CPU 暂时停止正在运行的程序&#xff0c;转而为该内部或外部事件或预先安排的事件服务的程序中去&#xff0c;服务完毕后再返回去继续运行被暂时中断的程序。Linux中通常分为外部…

yolov1网络结构说明

文章目录 一. 网络结构二. 网络说明1. 网络的输入2. 网络的输出(1) 5 5表示:每个网格使用两个先验框进行预测。(2) “5”表示&#xff1a;每个先验框包含的预测信息的数量。(3) 20表示&#xff1a;20个分类预测值(4) 每个网格能预测几个目标&#xff1f; 一. 网络结构 论文下…

在日常工作中怎么处理vue项目中的错误的?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue项目中的错误如何处理 目录 一、错误类型 二、如何处理 后端接口错误 代码逻辑问题 全局设…

各厂商服务器存储默认管理口登录信息(默认IP、用户名、密码)收集汇总

一、服务器IPMI管理信息 服务器IPMI管理信息 设备类型 设备型号 默认管理IP 默认用户名 默认密码 华为服务器 E6000 10.10.1.101-10.10.1.110 root Huawei12#$ RH2288 v3系列 192.168.2.100 root Huawei12#$ RH2288 v5系列 192.168.2.100 Administrator Admin@9000 T6000 10.10…

Elasticsearch 快照如何工作?

作者&#xff1a;Lutf ur Rehman Elastic 提供许多由讲师指导的面对面和虚拟现场培训以及点播培训。 我们的旗舰课程是 Elasticsearch 工程师、Kibana 数据分析和 Elastic 可观测性工程师。 所有这些课程都会获得认证。有关这些课程的详细介绍&#xff0c;请参考我之前的文章 “…

知识蒸馏相关基础知识

知识蒸馏 前置知识 Loss 现在分数-正确分数1 例&#xff1a; 正则化 Regularization 用来防止过拟合 知识蒸馏相关 softmax 把分数转换为概率的一种方法&#xff0c;e的次方 hard targets 和 soft targets 蒸馏温度 T 在原来的softmax下&#xff0c;除以某个系数&am…

Sublime text 添加到鼠标右键菜单,脚本实现

Sublime text 添加到鼠标右键菜单 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\SublimeText] "Open with Sublime Text" "Icon""D:\\Program Files\\Sublime Text\\sublime_text.exe,0" [HKEY_CLASSES_ROOT\*\shell\Subl…

HTTP采用的SSL/TLS标准如何保证通信的安全性?

HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是在HTTP基础上添加了SSL/TLS加密层的安全版本。它使用SSL&#xff08;Secure Sockets Layer&#xff09;或TLS&#xff08;Transport Layer Security&#xff09;协议对数据进行加密传输&#xff0c;确保数据…

win10下安装 Anaconda + Cuda + Cudnn + Pycharm + Pytorch

1.安装Anaconda &#xff08;1-1&#xff09;下载Ananconda, Anaconda官网 选择windows版本&#xff1b; &#xff08;1-2&#xff09;安装Anaconda,一般选择【Just Me】 &#xff08;1-3&#xff09;建议不要装在C盘&#xff0c;后期多环境的python环境和各种库文件会占用很多…

Docker的基本概念和优势,以及在应用程序开发中的实际应用

文章目录 概要 基本概念 容器 (Container): 镜像 (Image): Dockerfile: 仓库 (Repository): 容器编排 (Orchestration): Docker Compose: Docker Daemon 和 Docker Client: 网络 (Network): 数据卷 (Volume): 主要优势 应用场景 小结 概要 Docker 是一种容器化平台&#xff0c;…

ruoyi-vue 整合EMQX接收MQTT协议数据

EMQX安装完成后&#xff0c;需要搭建客户端进行接收数据进一步对数据处理&#xff0c;下面介绍基于若依分离版开源框架来整合EMQX方法。 1.application.yml 添加代码 mqtt:hostUrl: tcp://localhost:1883username: devpassword: devclient-id: MQTT-CLIENT-DEVcleanSession: …

【物联网与大数据应用】Hadoop数据处理

Hadoop是目前最成熟的大数据处理技术。Hadoop利用分而治之的思想为大数据提供了一整套解决方案&#xff0c;如分布式文件系统HDFS、分布式计算框架MapReduce、NoSQL数据库HBase、数据仓库工具Hive等。 Hadoop的两个核心解决了数据存储问题&#xff08;HDFS分布式文件系统&#…

mysql5.7生成SSL证书

1、创建 CA 私钥和 CA 证书 &#xff08;1&#xff09;下载并安装openssl,将bin目录配置到环境变量&#xff1b; &#xff08;2&#xff09;设置openssl.cfg路径&#xff08;若不设置会报错&#xff0c;找不到openssl配置文件&#xff09; set OPENSSL_CONFG:\Program Files\…

nexus 制品库管理

目录 一、nexus 介绍 二、nexus 支持的仓库 三、nexus 部署 四、nexus 数据备份 五、创建一个内网yum源 六、创建一个代理yum仓库 七、jenkins 使用 nexus插件 7.1 jenkins 安装插件 7.2 配置 maven 工程 7.3 查看构建和上传 一、nexus 介绍 Nexus 是一个强大的仓库管…

在氮化镓和AlGaN上的湿式数字蚀刻

引言 由于其独特的材料特性&#xff0c;III族氮化物半导体广泛应用于电力、高频电子和固态照明等领域。加热的四甲基氢氧化铵(TMAH)和KOH3处理的取向相关蚀刻已经被用于去除III族氮化物材料中干法蚀刻引起的损伤&#xff0c;并缩小垂直结构。 不幸的是&#xff0c;由于化学蚀…

基于协同过滤算法的职业发展推荐系统设计

点我完整下载&#xff1a;基于协同过滤算法的职业发展推荐系统设计 基于协同过滤算法的职业发展推荐系统设计 Design of Career Development Recommendation System Based on Collaborative Filtering Algorithm 目录 目录 2 摘要 3 关键词 3 第一章 引言 3 1.1 研究背景 3 1.2…

谱方法学习笔记-下(超详细)

谱方法学习笔记&#x1f4d2; 谱方法学习笔记-上(超详细) 声明&#xff1a;鉴于CSDN使用 K a T e X KaTeX KaTeX 渲染公式&#xff0c; KaTeX \KaTeX KATE​X 与 L a T e X LaTeX LaTeX 不同&#xff0c;不支持直接的交叉引用命令&#xff0c;如\label和\eqref。 KaTeX \KaT…

MySQL报错:sql_mode=only_full_group_by 解决方法含举例

方法一&#xff1a;直接修改数据库配置 首先&#xff0c;打开数据库&#xff0c;输入 select global.sql_mode;这个时候&#xff0c;就会返回得到以下的信息&#xff1a;&#xff08;不同电脑返回的信息可能不同&#xff09; ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENG…