Purple Pi OH鸿蒙开发板7天入门OpenHarmony开源鸿蒙教程【五】

在完成了Purple Pi OH大部分的接口测试之后,紧接着就是一个充满挑战的任务——利用SDK来编译生成我们自己的镜像文件。通过这一过程,不仅能够让你获得一个可在真实硬件上运行的系统镜像,更重要的是,它让你对OpenHarmony系统的构建和编译过程有了更加深刻的理解。

现在,让我们拿起键盘,开始这段编译旅程吧!

一.源码

OpenHarmony4.0Release说明地址如下:

https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v4.0-release.md

1.1 源码获取

$ repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
$ repo sync -c
$ repo forall -c 'git lfs pull'

注:获取的是与版本发布时完全一致的源码,如下图所示:

图片

1.2 打Purple Pi OH补丁

直接下载地址如下:

purple-pi-oh-patch.zip

网盘下载地址链接如下:

https://pan.baidu.com/s/1fEYtgr1qmFNHi2IjPBb83g?pwd=1234

提取码:1234

下载后将补丁放到当前代码根目录下,然后执行如下命令:

$ unzip purple-pi-oh-patch.zip 

$ cd purple-pi-oh-patch/

$ ./ido_patch.sh 

二.环境搭建

建议使用Ubuntu20.04 LTS搭建开发环境。

2.1 USB挂载查看

下载安装参考如下:

https://blog.csdn.net/weixin_55989896/article/details/123306757

注:新建虚拟机时,建议分配磁盘容量至少120GB,DDR至少4GB。

2.2 安装工具包

将以下命令复制到终端,按照提示输入用户密码和确认即可

$ sudo apt-get update

$ sudo apt-get install aptitude

$ sudo aptitude install -y binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools git-lfs

$ sudo apt-get install -y pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 vim ssh locales gcc-arm-linux-gnueabi

注:这里可能产生获取不到软件包、发现不到版本、在后续编译过程中产生命令找不到的报错等,根据错误提示配置需要的环境即可。

三.SDK编译

3.1 完整编译

编译命令如下:

$ bash build/prebuilts_download.sh
$ ./build.sh --product-name purple_pi_oh --ccache --no-prebuilt-sdk

编译成功后,输出日志如下:

[OHOS INFO] purple_pi_oh build success

[OHOS INFO] Cost time: 0:46:12

=====build successful=====

2023-11-01 11:32:08

失败时log所在位置:

./out/purple_pi_oh/build.log

编译成功后生成的固件所在位置:

./out/purple_pi_oh/packages/phone/images/

3.2 编译不同dts

device/board/industio/purple_pi_oh/kernel/build_kernel.sh

中的修改为IDO-RK3566-PI-HDMI

编译为MIPI固件则改为:IDO-RK3566-PI-MIPI

删除out/kernel/后再编译。

四. 固件烧录

4.1 hdc list targets命令查找不到设备

编译成功后可以通过U盘、Samba、NFS等方法将文件导出到本机。

Samba和NFS的配置方法大家可以自行搜索下,主要方便虚拟机和物理机之间共享文件。

烧录参考:本系列文章DAY2固件烧录部分

或Purple Pi OHOS固件烧录手册:

https://industio.yuque.com/industio/gyzv1h/od20t4mgngz05lu8?singleDoc#%20%E3%80%8APurple-Pi-OH%20OHOS%20%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95%E6%89%8B%E5%86%8C%E3%80%8B

附:【深圳触觉智能有限公司】提供的固件下载链接:

https://pan.baidu.com/s/1g-Oq29CNtiCo1IiPWyJSKA?pwd=1234

提取码:1234

注:其他版本OpenHarmonyOS编译请参考官方手册:

https://industio.yuque.com/industio/gyzv1h/zdracpm2pc9r51dy?singleDoc#%20%E3%80%8APurple-Pi-OH%20OHOS%20SDK%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C%E3%80%8B

五.常见问题

5.1 源码下载失败

解决方案:尝试“OpenHarmony4.0Release说明”gitee链接中其他获取方法。

5.2 无法定位软件包

解决方案:

①执行sudo apt update

②再次安装命令

③仍无法定位软件包请查询更换镜像源相关教程

5.3 烧录mipi固件系统一直重启

解决方案:

没有接i2c触摸屏,系统开机后检测不到会重启;如果触摸坏了,可以在ido-pi-oh3566-mipi-v1.dts里关闭2c1

&i2c1 {

status = "disabled";

};

5.4 系统启动后进入不到桌面

解决方案:

当前系统有 bug,当出现此种问题时,需要执行 killall com.ohos.launcher。

此问题可以下载:

https://pan.baidu.com/s/1fEYtgr1qmFNHi2IjPBb83g?pwd=1234

提取码:1234

里面的hap文件替换applications\standard\hap\下的同名文件。

5.5 双频WIFI模块蓝牙打不开

解决方案:

双频WIFI模块为AW-NM256需要更换hcd文件:

把vendor\industio\purple_pi_oh\bluetooth\src\hardware.c中的BCM43430A1.hcd改为BCM4345C0.hcd再编译。

5.6 怎样编译full-sdk

解决方案:

./build.sh --product-name ohos-sdk

编译完成后在out\sdk\packages\ohos-sdk则为不同平台的full-sdk

注:其它FAQ问题可以进入FAQ专区查找对应问题:

https://ask.industio.com/questions/OpenHarmony

记住,每一次编译都是一次新的探索,每一次错误都是学习的机会。因此,即使遇到困难,也不要灰心,反而应该把它视为成长的阶梯。

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

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

相关文章

Qt - 信号和槽

目录 一、信号 二、槽 三、信号和槽的使用 (一) 连接信号和槽 (二) 自定义槽 (三) 通过 Qt Creator生成信号槽代码 (四) 自定义信号 四、带参数的信号和槽 五、信号与槽的断开 六、Qt4版本信号与槽的连接 (一) Qt4版本信号与槽连接的优缺点 一、信号 在 Qt 中&…

CubeMX使用教程(5)——定时器PWM输出

本篇我们将利用CubeMX产生频率固定、占空比可调的两路PWM信号输出 例如PA6引脚输出100Hz的PWM;PA7引脚输出500Hz的PWM,双路同时输出 我们还是利用上一章定时器中断的工程进行学习,这样比较方便 首先打开CubeMX对PA6、PA7进行GPIO配置 注&a…

Mixamo动画素材导入UE5的最简单方法

一、Mixamo素材 官网:https://www.mixamo.com/ Mixamo是Adobe公司出品的免费动画库,可商用。软件分为characters(角色)、Animations(动画)两个部分。 二、辅助工具MIXAMO CONVERTER 官网:https://terribilisstudio…

C#与WPF通用类库

个人集成封装,仓库已公开 NetHelper 集成了一些常用的方法; 如通用的缓存静态操作类、常用的Wpf的ValueConverters、内置的委托类型、通用的反射加载dll操作类、Wpf的ViewModel、Command、Navigation、Messenger、部分常用UserControls(可绑定的Passwo…

通信总线协议之CAN-FD协议详解

文章目录 通信总线之CAN-FD总线协议详解1. CAN-FD 简介1.1 什么是CAN FD1.2 CAN FD的特点 2. CAN-FD总线协议2.1 帧起始2.2 仲裁段2.3 控制段2.4 数据段2.5 CRC段2.6 ACK段2.7 帧结束 3. 如何从传统的CAN升级到CAN FD 通信总线之CAN-FD总线协议详解 1. CAN-FD 简介 1.1 什么是…

selenium高级应用

常见控件应用 复杂的控件操作1.操作Ajax选项2.滑动滑块操作 WebDriver的特殊操作元素class值包含空格property、attribute、text的区别定位动态id 截图功能页面截图页面截图,返回截图的二进制数据页面截图,返回base64的字符串截取指定元素。先定位元素&a…

Redis常见数据类型下

目录 Hash 哈希 常用指令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET 内部编码 Hash类型和关系型数据库 缓存方式对比 List 列表 特点 常用命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP / RPOP LINDEX LINSERT 阻塞(BLOCK)版…

【Linux】文件缓冲区|理解文件系统

目录 预备知识 观察现象 第一:携带\n,不使用fork(),打印到显示器 第二:携带\n,使用fork(),打印到显示器 第三:携带\n,使用fork(),打印到文件里 第四:不携…

如何选择适合的G口大流量服务器?

G口大流量服务器是指接入互联网的带宽达到1Gbps及以上,并且能够提供大量数据传输服务的服务器。那么如何选择适合的G口大流量服务器,RAK部落小编为您整理发布选择适合的G口大流量服务器需要考虑哪些关键点。 选择适合的G口大流量服务器时,应该…

JavaSec 基础之 CC1 链

文章目录 背景环境以及配置分析0x1 终点(利用点分析)0x20x30x310x320x33 0x040x05 背景 Apache Commons Collections是Apache提供的一个Java库,它扩展了Java自带的集合框架。通过这个库,咱们可以使用更多种类的集合类型,以及各种实用的集合操…

星星魔方

星星魔方 1,魔方三要素 (1)组成部件 6个中心块和8个角块和三阶魔方同构,另外每个面还有构成五角星的十个块。 (2)可执行操作 一共12种操作,其中6种是每个层顺时针旋转90度,另外6…

HTML静态网页成品作业(HTML+CSS)——家乡漳州介绍设计制作(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

Python的特性——跟老吕学Python编程

Python的特性——跟老吕学Python编程 Python的特性1.Python易学易用2.Python是解释型语言3.Python是交互式的4.Python是一种多范式语言5.Python的标准库6.Python是开源的7.Python是跨平台的8.用于GUI应用程序的Python9.Python的数据库连接10.Python是可扩展的11.Python拥有活跃…

【golang】28、用 httptest 做 web server 的 controller 的单测

文章目录 一、构建 HTTP server1.1 model.go1.2 server.go1.3 curl 验证 server 功能1.3.1 新建1.3.2 查询1.3.3 更新1.3.4 删除 二、httptest 测试2.1 完整示例2.2 实现逻辑2.3 其他示例2.4 用 TestMain 避免重复的测试代码2.5 gin 框架的 httptest 一、构建 HTTP server 1.1…

ElementUI两个小坑

1.form表单绑定的是一个对象&#xff0c;表单里的一个输入项是对象的一个属性之一&#xff0c;修改输入项&#xff0c;表单没刷新的问题&#xff0c; <el-form :model"formData" :rules"rules" ref"editForm" class"demo-ruleForm"…

蓝牙耳机链接电脑莫名奇妙关机问题(QQ浏览器)

蓝牙耳机连接电脑听歌的时候&#xff0c;如果听歌软件是暴风影音&#xff0c;或者其它播放器&#xff0c;蓝牙不会自动关机&#xff0c;但如果是QQ浏览器&#xff0c;蓝牙耳机经常莫名其妙的关机&#xff0c;时间间隔忽长忽短&#xff0c;没有规律&#xff0c;解决办法就是重启…

考研C语言复习初阶(5)

目录 一.表达式求值 1.1隐式类型转换 1.2 算术转换 12.3 操作符的属性 二. 指针是什么&#xff1f; 三 指针和指针类型 3.1 指针-整数 3.2 指针的解引用 3.3 野指针 四.指针运算 4.1 指针-整数 4.2 指针-指针 4.3 指针的关系运算 5. 指针和数组 6. 二级指针 …

202012青少年软件编程(图形化) 等级考试试卷(一级)

青少年软件编程(图形化) 等级考试试卷(一级)2020年12月 第1题:【 单选题】 下面哪个区域是“舞台区” ?( ) A:A B:B C:C D:D 【正确答案】: B 【试题解析】 : 第2题:【 单选题】 下图为小猫的初始方向, 哪个积木可以让小猫面向正右方?( ) A: B: C:…

2024.3.11 训练记录(13)

继续补题 文章目录 ICPC 2018青岛I Soldier GameICPC 2018青岛K Airdrop ICPC 2018青岛I Soldier Game 题目链接 线段树 果然稍微复杂一点的线段树就很难实现啊&#xff0c;不看题解根本没反应过来是线段树 struct Node {int l, r, lb, rb, nb, b; } tr[N * 4];其中&#x…

一个Promise全新API

1. 资讯速览 最近&#xff0c;Promise 新出了一个方法&#xff0c;已经进入 Stage 3 &#xff08;候选阶段&#xff09; &#xff0c;相信很快就能达到 Stage 4 &#xff08;完成阶段&#xff09;&#xff0c;并在项目中广泛使用。 这个方法就是 Promise.withResolvers。它是…