【鸿蒙IPC开发板开发板体验】2-OpenHarmony编译环境搭建 - HarmonyOS技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

fsdzdzy 关注 私信
[文章]

【鸿蒙IPC开发板开发板体验】2-OpenHarmony编译环境搭建

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

注:本篇的实验操作参考自:https://bbs.elecfans.com/jishu_2272400_1_1.html>,感谢这位网友的分享

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版本的源码进行实验。
1.png

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

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

2.png

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/
3.png

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

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
4.png

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

我这里报错了:
5.png

解决方法,参考这篇:https://blog.csdn.net/p1279030826/article/details/111573774

原因是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/

这是我的操作截图:
6.png

再次尝试,就成功了
7.png

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

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

立即生效更新环境变量:

source ~/.bashrc

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

详细信息可参考官方文档: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包进行安装的
9.png

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

正常情况会有如下打印:

10.png

2 OpenHarmony源码编译

2.1 编译源码

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

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

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

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

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

结尾处的ERROR:
13.png

2.2 编译报错解决方法

2.2.1 修改dash为bash

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

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

2.2.2 修改python默认连接到python3

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

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库的错:
17.png

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

附:解决编译错误问题时查找的一些帖子

2.3 编译成功

2.3.1 编程失败的解决方法

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

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

2.3.2 编译成功后的文件

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

  • ohos_image.bin
  • rootfs_jffs2.img
  • userfs_jffs2.img
    20.png

3 总结

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

下篇文章,将尝试将编译出的固件烧写到板子中,并再进行hello world程序的编写测试。

附:一些资料链接

回帖(3)

挽你何用

2022-8-29 11:12:24
感谢大佬分享

自我清欢

2022-9-19 15:29:08
文章非常棒

玩硬件的女孩纸

2022-9-19 16:13:33
感谢大佬分享

更多回帖

×
发帖