鸿蒙IPC开发板-OpenHarmony编译环境搭建

举报
码农爱学习 发表于 2022/10/23 21:43:39 2022/10/23
【摘要】 本篇记录在Ubuntu18环境中,进行OpenHarmony开发的配置,对配置过程中遇到的问题,进行了记录与解决方法尝试,最终成功编译了OpenHarmony源码。

上篇进行了鸿蒙HiSpark IPC DIY Camera开发板的开箱测评与摄像头基础功能是使用,本篇进行软件开发的准备工作,配置OpenHarmony的开发环境。

1 OpenHarmony开发环境配置

我使用的VirtualBox虚拟机中的Ubuntu18环境,下面具体记录了我的配置流程。

1.1下载OpenHarmony源码

OpenHarmony源码的各版本介绍:https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/Readme.md

OpenHarmony源码仓库:https://repo.huaweicloud.com/harmonyos/os/

由于V3.x版本的源码体积很大,本篇先使用体积较小的V1.1.4版本的源码进行实验。

在Ubuntu中的合适位置新建一个位置,将源码解压出来

tar zxvf code-v1.1.4-LTS.tar.gz


1.2 升级Python版本

后面要用到的hb编译工具,需要Python 3.7.4及以上版本的支持,我的Ubuntu18自带的Python是3.6.9版本,因此需要升级Python。

注意不需要卸载原有的Python,只需要再安装一个高版本的Python并修改软连接即可。

方法一:网上的方法,我这里测试在第二步有错误打印

sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.8

方法二:源码安装

我参考这篇的操作:https://learnku.com/articles/56134

下载python源码:https://www.python.org/downloads/source/

然后解压,执行如下操作:

tar zxvf Python-3.8.10.tgz
cd Python-3.8.10
./configure --with-ssl --prefix=/usr/local/python3

注意,需要先在/usr/local目录下新建一个python3目录

然后安装一些依赖:

sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus libncursesw5-dev libgdbm-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev

然后进行安装:

make
sudo make install

最后删除就版本的软连接,建立新版本的软连接

sudo rm -rf /usr/bin/python3 
sudo rm -rf /usr/bin/pip3
sudo ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3

我的安装截图如下,安装成功后,python3的版本我3.8.10

1.3 安装依赖包

OpenHarmony的开发环境,还需要安装以下依赖包:

sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils cpio device-tree-compiler git git-lfs curl python3-pip tree

1.4 安装hb工具

hb是HarmonyOS新增加的编译构建命令行工具,需要Python 3.7.4及以上版本的支持.

在源码根目录下执行:

python3 -m pip install --user build/lite

我这里报错了:

原因是python路径下缺少 'lsb_release.py' 模块,通过如下指令解决:

# 1、查找到lsb_release模块所在的目录
sudo find / -name 'lsb_release.py'
 
# 2、将其复制到设置python3.8的系统模块加载位置,也就是报错处subprocess.py所在的目录
sudo cp /usr/lib/python3/dist-packages/lsb_release.py /usr/local/python3/lib/python3.8/

这是我的操作截图:

再次尝试,就成功了

然后还要设置环境变量,将以下命令拷贝到~/.bashrc文件的最后一行,保存并退出

export PATH=~/.local/bin:$PATH

立即生效更新环境变量:

source ~/.bashrc

执行hb -h有相关帮助信息,有打印信息即表示安装成功:

详细信息可参考官方文档:https://gitee.com/openharmony/build_lite

1.5 安装Python工具

  • Scons是一个开放源码、以Python语言编码的自动化构建工具,可用来替代make编写复杂的makefile

  • setuptools用于安装第三方python包

  • Kconfiglib, 一个灵活的python Kconfig分析器和库

  • ecdsa,用于数字签名

python3 -m pip install scons
​
pip3 install setuptools
​
pip3 install kconfiglib
​
pip3 install pycryptodome
pip3 install six --upgrade --ignore-installed six
pip3 install ecdsa

如果在线安装比较慢,或安装失败,可以去https://pypi.org/下载对应的whl离线包进行安装,我就是用的whl包进行安装的

1.6 下载、配置编译工具链

下载地址:https://repo.huaweicloud.com/harmonyos/,可手动下载,或通过下面的指令下载

1.6.1 gn、ninja、hc-gen 包

分别下载 gn、ninja、hc-gen 包,解压后将程序移到/usr/local/bin/目录

wget https://repo.huaweicloud.com/harmonyos/compiler/gn/latest/linux/gn-linux-x86-1717.tar.gz
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.10.1/linux/ninja-linux-x86-1.10.1.tar.gz
wget https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar

1.6.2 clang、gcc_riscv32编译工具

下载配置clang和gcc_riscv32编译工具,压缩包放到/opt目录并解压

wget https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-x86_64-9.0.0-36191.tar.gz
wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz

然后在.bashrc中添加环境变量:

export PATH=/opt/llvm/bin:$PATH
export PATH=/opt/gcc_riscv32/bin:$PATH

然后source ~/.bashrc生效环境变量,并验证编译是否安装成功:

riscv32-unknown-elf-gcc -v

正常情况会有如下打印:

2 OpenHarmony源码编译

2.1 编译源码

注意,Harmony在V1.1.1之后引入hb工具,因此不同的版本会有不同的编译方式。

本篇使用的OpenHarmony源码是V1.1.4版本的。

在OpenHarmony源码根目录下执行“hb set”命令,然后输入"."指明当前路径。

HiSpark IPC DIY Camera主控为Hi3518芯片,对应的产品名字是ipccamera_hispark_aries,通过上下键,选择对应的名字。

然后输入“hb build -f”命令开始编译,我的这里出现了ERROR:

结尾处的ERROR:


2.2 编译报错解决方法

2.2.1 修改dash为bash

修改方法如下,我之前修改过,但还是报上面的错误

又用图像化的配置进行修改,编译还是报上面的错误

2.2.2 修改python默认连接到python3

修改python默认连接到python3,编译还是报上面的错误

2.2.3 更换llvm(clang)的版本

这里说OpenHarmony_v1.x需要安装12.0.1版本的llvm:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md

下载的是这个:

wget https://repo.huaweicloud.com/harmonyos/compiler/clang/12.0.1-530132/linux/clang-530132-linux-x86_64.tar.bz2

实际测试会报另一个cjson库的错:

这个版本的llvm又引入了新的问题,所以,还要要更换为第一次安装的9.0版本

2.3 编译成功

2.3.1 编程失败的解决方法

注意1.6小节“下载、配置编译工具链”中对于hc-gen的安装,一开始我是直接把解压的文件夹复制到/usr/local/bin中了,这是不对的,因为hc-gen解压出来是一个文件夹,里面是程序文件,需要丢掉文件夹,只把hc-gen程序文件复制到/usr/local/bin中

这样操作之后,再编译就编译成功了,如下:

2.3.2 编译成功后的文件

编译成功后,在out目录会生成三个成果文件

  • ohos_image.bin

  • rootfs_jffs2.img

  • userfs_jffs2.img

3 总结

本篇记录在Ubuntu18环境中,进行OpenHarmony开发的配置,对配置过程中遇到的问题,进行了记录与解决方法尝试,最终成功编译了OpenHarmony源码。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。