• 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 源码获取

    1. $ repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
    2. $ repo sync -c
    3. $ 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 完整编译

    编译命令如下:

    1. $ bash build/prebuilts_download.sh
    2. ./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

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

  • 相关阅读:
    23上半年下午题
    leetcode动态规划算法总结——更新
    el-table表格中加入输入框
    Linux | 为什么要有线程?| 线程概念 | 线程控制 | 线程ID的实质
    [Ubuntu, Ajax Nx]C++调用python报from import错误
    静态ip详解
    我测试用的mark down教程
    IP地址定位基础数据采集
    透视投影函数的图像
    Wireshark IP实验—Wireshark Lab: IP v7.0(计算机网络自顶向下第七版)
  • 原文地址:https://blog.csdn.net/Industio_CSDN/article/details/136616820