> 文档中心 > 鸿蒙操作系统系列——Ubuntu18.04搭建OpenHarmonyOS2.0开发环境篇

鸿蒙操作系统系列——Ubuntu18.04搭建OpenHarmonyOS2.0开发环境篇

 

目录

一、安装包方式准备Ubuntu编译环境

(1)安装依赖工具

(2)源码获取

(3)获取prebuilts

(4)配置NodeJS环境和获取Node_modules依赖包

(5)安装hc-gen工具

二、OpenHarmony2.0编译环境配置

三、OpenHarmony2.0编译


操作系统: WIN7+Vmware15.1.0+Ubuntu18.04

内存配置:  8G内存

 

2021年6月2日鸿蒙操作系统正式版正式发布,同时在https://gitee.com/openharmony/同步开源了OpenHarmony2.0源码和相关的文档,OpenHarmony是由开放原子开源基金会(OpenAtom Foundation,以下简称“基金会”)孵化及运营的开源项目,由基金会的OpenHarmony项目群工作委员会负责运作,主要遵循Apache 2.0协议开源,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。

本文将从Ubuntu开发环境部署和OpenHarmony2.0编译配置两个方面讲解一下注意事项。虽然华为在gitee上也发布了比较详细的操作手册,但有些操作步骤还是需要注意,否则会出现莫名其妙的问题。

  • 一、安装包方式准备Ubuntu编译环境

安装包方式具体操作分为如下几步:

  1. 安装依赖工具。
  2. 获取系统源码。
  3. 获取prebuilts。
  4. 配置NodeJS环境和获取Node_modules依赖包。
  5. 安装hc-gen工具。

(1)安装依赖工具

安装命令如下:

sudo apt-get install binutils git-core git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4

注意:以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。尤其是git-lfs必须安装,OpenHarmony2.0比之前的版本新增了从repo下载二进制文件需求。

(2)源码获取

获取方式1:从镜像站点获取

获取方式2:从HPM(包管理器)组件式获取

获取方式3:从代码仓库获取

获取方式1:从镜像站点下载归档后的发行版压缩文件。如果要获取旧版本的源码,也可通过此方式获取(推荐)。

获取方式2:通过HPM包管理器获取。在HPM网站,查找满足需求的开源发行版,直接下载(或者定制后下载),再通过hpm-cli命令工具将所需的组件及工具链下载、安装到本地。

获取方式3:从代码仓库获取。通过repo或git工具从代码仓库中下载。

 

本文将采用获取方式3从代码仓库获取OpenHarmony2.0标准系统源码(2.0 Canary)

获取方式3:从代码仓库获取

适用场景

  • 基于OpenHarmony的稳定分支建立自己的基线,分发下游客户。
  • 已经完成自身软件与OpenHarmony的对接,需要进行OpenHarmony官方认 证。
  • 芯片/模组/app通过OpenHarmony官方认证后,贡献代码到OpenHarmony社区。
  • 修复OpenHarmony的问题。
  • 学习OpenHarmony的源码。
  1. 注册码云gitee账号。

  1. 注册码云SSH公钥,请参考码云帮助中心

Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。在Ubuntu18.04控制台终端进行操作,可以按如下命令来生成sshkey。

ssh-keygen -t rsa -C "cpuos2010@qq.com"                                                              

 Generating public/private rsa key pair...                                      

注意:这里的“cpuos2010@qq.com只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。按照提示完成三次回车,即可生成 ssh key。通过查看~/.ssh/id_rsa.pub文件内容,获取到你的public key。

cat ~/.ssh/id_rsa.pub

# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

复制生成后的 ssh key,通过个人在Gitee注册的仓库主页[个人设置–>[安全设置]->SSH公钥」,在右边红色箭头处方框添加刚才生成的 public key,点击确定即可。

(3)安装git客户端git-lfs并配置用户信息。

git config --global user.name "cpuos2010"

git config --global user.email "cpuos2010@qq.com"

git config --global credential.helper store

(4)安装码云repo工具,可以执行如下命令。注意该步操作官方版本貌似有权限问题不能执行。所以做了相应的调整,执行下面命令后码云repo工具运行正常。

cd ~

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > repo

sudo cp repo  /usr/local/bin/repo && sudo chmod a+x /usr/local/bin/repo

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

(5)获取标准系统源码(2.0 Canary

1)创建OpenHarmony工作目录。

mkdir OpenHarmony                                                    

2)切换到OpenHarmony工作目录。

cd OpenHarmony                                                       

3)repo初始化。

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify

4)更新代码。

repo sync -c                                                           

5)更新二进制。

repo forall -c 'git lfs pull'                                                 

 

(3)获取prebuilts

因为上一步骤下载的源码不包括prebuilts目录的大部分工具,所以务必执行这一步操作,否则编译系统会出现错误。

1)切换到OpenHarmony工作目录。

cd OpenHarmony                                                      

2)下载脚本。

curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts_download.sh

3)下载并解压prebuilts压缩包到指定位置。

bash ./prebuilts_download.sh                                         

二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下,如需修改默认位置,请编辑prebuilts_download.sh修改bin_dir值。

4)切换到之前的目录。

cd -                                                                  

(4)配置NodeJS环境和获取Node_modules依赖包

为了编译JS Framework,开发者需要在Linux服务器下载配置NodeJS(注意:步骤中OpenHarmony目录指代当前工程的根目录,可自定义),具体操作如下:

1)开发者在Ubuntu18.04下载Nodejs。

mkdir -p OpenHarmony/prebuilts/build-tools/common/nodejs                                                     #创建nodejs目录
cd OpenHarmony/prebuilts/build-tools/common/nodejs                                      #进入nodejs目录
wget --no-check-certificate https://nodejs.org/download/release/v12.18.4/node-v12.18.4-linux-x64.tar.gz #下载nodejs源码tar -zxvf node-v12.18.4-linux-x64.tar.gz                                                                               #解压nodejs压缩包
cd -                                                                                    #切换到之前的目录

2)配置NodeJS环境变量,下载node_modules包。

cd OpenHarmony/third_party/jsframework                               #进入jsframework目录                            
export PATH=../../prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64/bin:${PATH}#设置NodeJS环境变量
npm install                                                          #下载node_modules包                                            
cd -                                                                 #切换到之前的目录                                                    

3)把下载的node_modules包放入OpenHarmony代码的prebuilts/build-tools/common/js-framework目录下。

mkdir -p OpenHarmony/prebuilts/build-tools/common/js-framework       #创建js-framework目录cp -rp OpenHarmony/third_party/jsframework/node_modules OpenHarmony/prebuilts/build-tools/common/js-framework/

(5)安装hc-gen工具

hc-gen用于进行驱动编译,具体安装步骤如下:

1)打开Ubuntu18.04编译服务器终端。

2)下载hc-gen工具。

3)解压hc-gen安装包到Linux服务器~/hc-gen路径下。

tar -xvf hc-gen-0.65-linux.tar -C ~/

4)设置环境变量。

vim ~/.bashrc

  将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/hc-gen:$PATH

5)生效环境变量。

source ~/.bashrc
  • 二、OpenHarmony2.0编译环境配置

系统要求:Ubuntu16.04及以上64位系统版本。

编译环境搭建分为如下几步,注意操作步骤一定要按照OpenHarmony_1.0.1_release和标准系统源码(2.0 Canary)工具版本版本进行区分,不能交叉混合使用。严格按照获取源码里面的文档操作。

docs/zh-cn/device-dev/quick-start/Ubuntu编译环境准备.md 

  1. 获取源码
  2. 安装和配置python
  3. 安装gn
  4. 安装ninja
  5. 安装hc-gen
  6. 安装LLVM
  7. 安装hb

注意:需要注意python版本问题,本文用的Ubuntu18.04的系统python版本为python3.8

设置python和python3软链接为python3.8。

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

 

  • 三、OpenHarmony2.0编译

 

 

(1)进入源码根目录,执行如下命令进行版本编译。

     ./build.sh --product-name Hi3516DV300

  1. {product_name}为当前版本支持的平台。
  2. 检查编译结果。编译完成后,log中显示如下为编译成功。

     至此,OpenHarmonyOS2.0操作系统设备级编译成功,编译所生成的文件都归档在out/ohos-arm-release/目录下,结果镜像输出在 out/ohos-arm-release/packages/phone/images/ 目录下。