最近在学习OpenHarmony轻量化系统的移植,关于OH的编译环境,参考了各个大佬的blog,成功搭建环境,本教程展示了从零到成功编译的全部过程。
(因为OH的更新,有些博主的blog已经不适用,本blog写于2022/4/3,注:随着OH的更新,有时候会出现URL失效的情况)
目前的OpenHarmony的开发环境主要是:
windows下编写代码,下载程序(多在应用层,顶层)
linux(Ubuntu)下多是下载、编译源码(OH源码),本文是介绍VM的Ubuntu环境搭建的,windows下主要是DevEco,和VS,Stm32相关的工作还有CubeMX和keil,不做展开。
本blog针对的是OpenHarmony 3.x Releases的编译环境
OpenHarmony Release Notes
搭建主要步骤:
1.下载安装VMware,配置Ubuntu20.04(自带python3,之前的python版本会出错!!!)
2.安装Openharmony编译工具
3.下载Openharmony系统源码并编译
最终编译成功截图
1.下载安装VMware,配置Ubuntu20.04(自带python3,之前的python版本会出错!!!)
1.1下载Ubuntu20.04[Ubuntu20.04镜像](https://ubuntu.com/download/desktop)
1.2 下载并安装VMware直到完成 VMware下载
安装VMware
1.3启动VMware,开始配置系统
选择Linux和Ubuntu 64位
选择虚拟机路径
设置大小和存储模式(大小要按照个人需求,保证足够)
自定义硬件
选择新CD/DVD(SATA),然后在右侧选择使用ISO映像文件,点击浏览选中下载的Ubuntu20.04的ISO镜像
1.4 配置完成后,启动Ubuntu20.04
等待启动完成
到这一步,因为分辨率原因,Ubuntu系统界面没有显示完整,所以此处需要重新设置分辨率或者最大化VM,然后才能向下进行
方法1:修改分辨率
关闭当前界面
打开设置进入分辨率
修改分辨率,如1280*720
重新进入安装程序
设置语言
选择现在安装
1.5 设置时区
1.6 设置用户密码,登录选择
等待安装完成
重启
修改软件源
登录
1.8 设置下载源
至此Ubuntu20.04安装完成。
2.安装Openharmony编译工具
2.1 切换dash为bash,ctrl+alt+t 打开终端,输入以下命令
sudo dpkg-reconfigure dash
输入密码,然后tab选择否,确认
输入命令
ls -l /bin/sh
切换成功
输入命令,绑定python指令到python3
ls -l /bin/sh
输入命令,退出python环境
exit()
输入命令,安装pip3,更换下载源,等待安装完成
sudo apt install python3-pip
pip install -i https://mirrors.ustc.edu.cn/pypi/web/simple pip -U
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
2.2 安装必要的库和工具
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 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler git git-lfs ruby ccache
hb安装(HarmonyOS编译构建命令行工具)
输入命令,安装hb(编译OH需要使用该指令)
python3 -m pip install --user ohos-build
配置环境变量
安装vim工具
sudo apt install vim
修改配置文件
vim ~/.bashrc
按 I 键启用编辑,在末尾添加
export PATH=~/.local/bin:$PATH
然后esc键退出编辑模式
输入:wq
保存修改并退出
输入命令,更新环境变量
source ~/.bashrc
输入指令,查看hb安装成功否
hb -h
上面这样是成功的,如果是错误显示 “please call hb utilities inside source root directory”,是hb版本有误,不用管,先进行下面步骤,处理方法在下载OpenHarmony源码后。
2.3 SCons安装
运行命令,安装SCons
pip3 install scons
检查SCons安装成功否
scons -v
安装成功
2.4 安装python库
pip3 install pycryptodome
pip3 install six --upgrade --ignore-installed six
pip3 install ecdsa
2.5 安装GCC
wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
配置gcc环境变量
vim ~/.bashrc
配置文件末尾插入
export PATH=~/gcc_riscv32/bin:$PATH
保存并退出:wq
更新环境变量
source ~/.bashrc
检查GCC安装
riscv32-unknown-elf-gcc -v
至此OH编译环境安装完成。
3.下载Openharmony系统源码并编译
3.1 前期准备
3.1.1.注册码云gitee账号。
3.1.2.安装git客户端和git-lfs
3.1.3.配置用户信息,如下。
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
3.2 下载repo工具链
安装curl
sudo apt install curl
下载repo
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3>repo
sudo mv repo /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
3.3 OpenHarmony环境搭建
OpenHarmony主干代码获取,注意版本,这里是3.x
仓库链接:OpenHarmony v3.0.2 LTS (2022-03-18)
通过repo + https下载(相对简单)
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.0.2-LTS --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
等待完成,时间有点长
完成后是这样的
注意:如果前面安装hb的时候出现错误: “please call hb utilities inside source root directory”
解决方法如下
1.卸载当前版本的hb
python3 -m pip uninstall ohos-build
2.切换到OpenHarmony的根目录,然后执行命令,安装对应版本的hb
pip3 install build/lite
这样就可以了
3.4 编译OpenHarmony源码(激动!!)
执行命令
hb set
键盘↑ ↓按键选择编译的系统(鼠标也行),然后回车
![在这里插入图片描述](https://img-blog.csdnimg.cn/08e2b491f04a4a93b4bde25ff350586d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAamlueWFuZzIwMTY=,size_20,color_FFFFFF,t_70,g_se,x_16
查看选择系统信息
hb env
编译选择对象
hb build
这里时间也比较长,等待完成
如果Ubuntu出现联网问题,参考这个blog的解决方法虚拟机Ubuntu系统无法连接网络解决方案
开始编译
除了OpenHarmony_v1.x分支/标签,其他系统版本的hb自动安装LLVM,如下图所示
等待编译完成即可。
编译成功(激动!!!)
至此完成OpenHarmony系统编译环境的配置。