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

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 17:14:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 17:14:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 17:14:02       87 阅读
  4. Python语言-面向对象

    2024-03-14 17:14:02       96 阅读

热门阅读

  1. 富格林:阻挠亏损谨防上当受害

    2024-03-14 17:14:02       39 阅读
  2. spark-sql显示字段名称

    2024-03-14 17:14:02       41 阅读
  3. C语言入门学习 --- 4.数组

    2024-03-14 17:14:02       35 阅读
  4. k8s部署Minio集群

    2024-03-14 17:14:02       48 阅读
  5. gitlab数据代码迁移合并

    2024-03-14 17:14:02       41 阅读
  6. 【自动驾驶】Submap总结

    2024-03-14 17:14:02       41 阅读
  7. MySQL中的视图

    2024-03-14 17:14:02       32 阅读
  8. yolov5模型压缩-shufflenetv3

    2024-03-14 17:14:02       36 阅读