鸿蒙IPC开发板-OpenHarmony编译环境搭建
鸿蒙HiSpark IPC DIY Camera开发板
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源码。
- 点赞
- 收藏
- 关注作者
评论(0)