#打卡不停更# [FFH] Openharmony九联UnionPi开发板环境搭建 原创
#打卡不停更# [FFH] Openharmony九联UnionPi开发板环境搭建
参考文献
九联公司和开发板简介
九联介绍
广东九联科技股份有限公司成立于2001年11月,2021年3月科创板上市,主营业务为家庭多媒体信息终端、智能家庭网络通信设备、物联网通信模块及行业应用解决方案、智慧城市解决方案的研发、生产、销售与服务。主要面向运营商市场,主要产品包括智能网络机顶盒、DVB数字机顶盒、ONU智能家庭网关、融合型智能家庭网关、智能路由器、NB-IoT模块、4G模块、LTE通信模块、智能公交系统和智慧城市数据平台等。
作为首批OpenHarmony生态战略合作伙伴,九联科技基于鸿蒙系统的AI算力开发板、网关、OTT、投屏器、智慧盒子、智慧门铃、智慧门锁、智慧音箱分布式场景系列产品正紧锣密鼓研发中。与此同时,公司生产的鸿蒙开发板已经落地高校,已批量出货各大院校。
开发板介绍
九联科技Unionpi Tiger是一款应用于图像处理,音视频处理和深度学习等场景的智能硬件,其主芯片采用Amlogic A311D芯片方案。 A311D支持GPU和神经网络加速子系统,支持4K视频编解码器引擎和一流的HDR图像处理,并集成了所有标准音频/视频输入/输出接口。主系统的CPU采用大小核设计,主频高达2.2GHz,集成了四个Cortex-A73核心和两Cortex-A53核心 ,集成独立的5.0T NPU处理器。
综合来说外设齐全,尤其是提供到AI的算力以及其他算法的拓展可能性几乎可以比肩jetson系的中低端产品,在后期往高性能算法移植方向转移的时候,这块开发板是不错的选择,但是目前品控和一些产品支持是有一定问题的,有需要的朋友可以在评论区细聊。
开发板资料
- 开发板原理图接口支持
- 芯片手册
- 工具和驱动
九联开发环境配置概述
先提出两个可供使用的站点解决方案
1 是gitee官方仓库版本 2是开放原子基金会的版本,但是都存在一些缺陷
目前的 官方环境配置教程方案是可以实现的但是会遇到诸多阻碍和困难,在此提出一套确保可以使用的配置方案经过多次测试(10+)确保能够正常使用的方案。
1 中需要拉取主线代码但是不能确保代码门禁正确和冒烟测试通过,只能是拉取下来测试才能确保是否能用。
1 和2同时都需要进行复杂的环境配置,而且直接使用Docker也会出现问题。
配置方案 共分为4步
- docker拉取
- docker 修复
- 拉取代码
- 依赖修复
代码编译和处理 两步
- 编译
- 打包
烧录 一步
配置
docker拉取
参考zh-cn/device-dev/get-code/gettools-acquire.md · OpenHarmony/docs - Gitee.com
前置需要准备UBUNTU20.04虚拟机,运行内存>16G,存储>150G
安装docker
sudo apt-get install docker.io
拉取docker
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
将都docker复制出来进入源码目录
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
需要指出的是此可以如下加入–name 参数方便后续打开使用
docker run -it --name ohos -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
启动已经确立的docker
sudo docker start ohos
需要说明的此处如下加入 -i 参数可以直接进入docker
sudo docker start ohos -i
docker 修复
在目前的docker 中因为缺失某些依赖环境无法直接运行 编译会在运行到内核的时候挂掉。
修复方法
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib
libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache
libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8
python3-pip ruby device-tree-compiler lib32stdc++6 lib32z1 libncurses5-dev -y
这些事官方依赖项,但是的确在运行时会发生安装的现象,安装完成后可以正常编译,所以建议进行如上步骤
拉取代码
建议使用LTS版本 我使用的是LTS版本 OpenHarmony 3.2 Beta2版本 这个固化的版本经过验证是可用的,但是在9.25的官方代码无法使用原因未确认
拉取方法
zh-cn/release-notes/OpenHarmony-v3.2-beta2.md · OpenHarmony/docs - Gitee.com
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v3.2-Beta2 --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
有可能现在版本的已经可以使用了大家也可以使用主线版本拉取方法使用,但是在教程2中的代码拉取已经无法使用了建议不使用
主线版本测试及拉取方法
zh-cn/device-dev/get-code/sourcecode-acquire.md · OpenHarmony/docs - Gitee.com
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
依赖项修复
bash build/prebuilts_download.sh
下载的prebuilts二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下。
编译和处理
编译
./build.sh --product-name unionpi_tiger –ccache
编译的时候有两种操作方案 第一个就是上文提到的.build.sh 脚本执行方案,第二个方案是使用内置的hb 工具 hb 工具
hb set
# 用于设置选项 Union PI
hb build
# 编译
hb clean
# 清空内存
打包
./device/board/unionman/unionpi_tiger/common/tools/packer-unionpi.sh
编译所生成的文件都归档在out/unionpi_tiger/目录下,结果镜像输出在 out/unionpi_tiger/packages/phone/images/ 目录下。
打包过程中有可能会出现报错,无需深究 ,在确认不是内存爆了的情况下只需要再执行一次脚本即可
烧录
使用工具USB_Buringa311d/tools/windows/USB_Burning_Tool_v2.2.0.zip · AlgoIdeas/device_unionpi - Gitee.com
导入烧录即可
建议使用Rai Drive远程网络磁盘映射工具进行操作
九联开发环境配置需要注意的问题和出现
的故障
开发板屏幕固定支架固定问题
开发板屏幕FPC连线非常抽象,很容易断,我这边断了两根才处理好,支架不是稳定,建议自己多准备几根FPC排线
烧录故障
(猜测原因)烧录故障 在英文系统中无法识别到burn.xml引导程序
官方issues回应 此问题已解决
.烧录后的镜像无法正确启动Debug故障如下
持续出现 [E/HDF_INPUT_DRV] Unable to fetch data, error: -1
后续解决情况为 虚拟机内存不足导致打包不完整,烧录的系统无法正常进入,具体原因未知。
虚拟机
虚拟机扩容问题
虚拟机扩容的解决方案
(53条消息) 虚拟机扩容的解决方法_闲鱼!!!的博客-CSDN博客_虚拟机扩容
但是如上扩容完成后,虚拟机的挂载分区并不在同一个盘符下,需要进行重新配置,重新配置方法
- 打开磁盘管理
- 在磁盘管理中选择拓展分区合并
- 再选择文件系统合并即可
其他
近期正在尝试在这块板子上更新研究Openharmony设备端驱动和机器人系统配合和移植,会更新更多有关资料。