OpenHarmony代码下载编译流程记录
目录
基础环境信息
环境配置
1. 安装依赖的工具
2. 设置默认python版本为3.8
3. 配置git信息
4. 安装repo
代码下载
代码编译
执行prebuild
整体编译
OpenHarmony官方有两种使用方式(IDE和安装包),IDE方式用起来不是很方便,可能一上来会弄晕,还是敲命令来的直接,本文记录的是安装包方式。但官方更推荐IDE方式,详细可以参考:zh-cn/device-dev/quick-start · OpenHarmony/docs - 码云 - 开源中国 (gitee.com)。
基础环境信息
操作系统:Ubuntu 18.04.6 LTS (Virtual Box虚拟机)
代码版本:OpenHarmony 3.1 release
环境配置
1. 安装依赖的工具
sudo apt-get update && sudo apt install git git-lfs python3.8 python3-pip flex ccache ruby libssl-dev libelf-dev bison default-jdk genext2fs u-boot-tools mtd-utils scons gcc-arm-none-eabi gcc-arm-linux-gnueabi liblz4-tool
这里不是OpenHarmony的所有依赖,只是我的Ubuntu环境里面缺少的一些依赖,每个人的环境不一样可能缺少的依赖也不一样,欢迎补充~
2. 设置默认python版本为3.8
查看Python 3.8位置
which python3.8
将python和python3切换为python3.8
sudo update-alternatives --install /usr/bin/python python {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置sudo update-alternatives --install /usr/bin/python3 python3 {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置
3. 配置git信息
OpenHarmony是托管在Gitee上的,需要注册Gitee账户,如果使用ssh方式下载还需要将SSH公钥配置到Gitee账户上(参考SSH 公钥设置 - Gitee.com),我使用的是https方式,不需要配置SSH公钥即可直接下载。
配置用户信息
git config --global user.name "yourname"git config --global user.email "your-email-address"git config --global credential.helper store
4. 安装repo
mkdir ~/bincurl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo chmod a+x ~/bin/repopip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requestsvim ~/.bashrc # 编辑环境变量export PATH=~/bin:$PATH # 在环境变量的最后添加一行repo路径信息source ~/.bashrc # 应用环境变量
代码下载
我下载的是OpenHarmony 3.1 release分支,使用https方式,命令如下:
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.1-Release --no-repo-verify --depth=1repo sync -c -j8repo forall -c 'git lfs pull'
说明:指定--depth=1可以加快下载速度,但是各个仓commit信息只保留最新的一条。指定-j8表示8个项目同时下载,如果电脑性能强的话可以指定-j16或者-j32,不指定的话默认是-j4。
注意:如果是第一次使用git lfs的话,需要先找一个git仓的根目录,先执行:git lfs install,显示如下信息表示正常。
代码编译
执行prebuild
在代码工程的根目录下执行:
bash build/prebuilts_download.sh
整体编译
在代码根目录下执行:
./build.sh --product-name rk3568 --ccache
说明:--ccache可以缓存编译信息,再次编译的时候会大大加快编译速度。--product-name指定编译的产品形态,目前3.1 release分支还可以换成Hi3516DV300或者Hi3751V350,如果有开发板的话编译对应开发板就行。