# 搭建系统基础环境 - [环境要求](#section466851916410) - [软硬件要求](#section1595725202314) - [Windows开发工具要求](#section2833173411317) - [Linux构建工具要求](#section992619473117) - [安装Windows开发环境](#section1995840162515) - [安装Linux编译环境(方法一:Docker方式)](#section107932281315) - [安装Linux编译环境(方法二:安装包方式)](#section497484245614) - [连接Linux服务器](#section723115618340) - [将Linux shell改为bash](#section1715027152617) - [安装Python环境](#section11255767343) - [安装gn](#section9262166183410) - [安装ninja](#section02645617348) - [安装LLVM](#section149564754) - [安装hb](#section6201103143120) - [获取源码](#section1545225464016) - [常见问题](#section19253140111619) - [hb安装过程中出现乱码、段错误](#section347685141717) 在搭建各个开发板环境前,需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境。系统基础环境搭建分为如下几种方式,请根据实际软硬件情况以及个人喜好选择以下任一方式。 - **搭建方式一** Windows开发环境,Linux Docker方式搭建的编译环境,请参考本文档如下章节: 1. [环境要求](#section466851916410) 2. [安装Windows开发环境](#section1995840162515) 3. [安装Linux编译环境(方法一:Docker方式)](#section107932281315) - **搭建方式二** Windows开发环境,Linux 安装包方式搭建的编译环境,请参考本文档如下章节: 1. [环境要求](#section466851916410) 2. [安装Windows开发环境](#section1995840162515) 3. [安装Linux编译环境(方法二:安装包方式)](#section497484245614) - **搭建方式三** Linux开发环境,Linux编译环境,请参考《HUAWEI DevEco Device Tool 使用指南》的[安装Linux开发和编译环境](https://device.harmonyos.com/cn/docs/ide/user-guides/install_ubuntu-0000001072959308)。 ## 环境要求 ### 软硬件要求 **表 1** 开发平台要求

硬件

软件

描述

备注

Windows工作台(主机电脑)

操作系统

Windows XP/Windows7/Windows10

开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。

Linux编译服务器

操作系统

Ubuntu16.04及以上64位系统版本,Shell使用bash。

说明:

通常系统默认安装samba、vim等常用软件,需要做适当适配以支持linux文件共享。

### Windows开发工具要求 **表 2** Windows工作台开发工具及获取途径

开发工具

用途

获取途径

Visual Studio Code

代码编辑工具。

https://code.visualstudio.com/

HUAWEI DevEco Device Tool

IDE开发工具,支持WLAN模组的代码编写、远程编译、版本烧录、串口调试等功能。

说明:

HUAWEI DevEco Device Tool是OpenHarmony面向智能设备开发者提供的一站式集成开发环境,支持OpenHarmony的组件按需定制,支持C/C++语言,以插件的形式部署在Visual Studio Code上。

https://device.harmonyos.com/cn/ide

IPOP、PuTTY或其他超级终端(选其一)

远程连接Linux编译服务器,连接模组串口工具。

通过互联网获取(如:https://www.putty.org/

### Linux构建工具要求 Linux服务器通用环境配置需要的工具及其获取途径如下表所示。 **表 3** Linux服务器开发工具及获取途径

开发工具

用途

获取途径

Python3.7+

编译构建工具

https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz

bash

命令处理器

通过互联网获取

gn

产生ninja编译脚本

https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz

ninja

执行ninja编译脚本

https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar

LLVM

编译工具链

https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar

hb

编译构建命令行工具

HarmonyOS源码build_lite仓

## 安装Windows开发环境 OpenHarmony IDE工具DevEco Device Tool集成了终端工具的能力,工具的安装步骤请参考[DevEco Device Tool环境搭建](https://device.harmonyos.com/cn/docs/ide/user-guides/install_windows-0000001050164976)、[创建新工程](https://device.harmonyos.com/cn/docs/ide/user-guides/create_project-0000001072200151)等完成。 ## 安装Linux编译环境(方法一:Docker方式) Linux编译环境可以通过Docker方式快速安装,具体请参见[Docker方式获取编译环境](../get-code/获取工具.md)的“搭建Docker环境”。 ## 安装Linux编译环境(方法二:安装包方式) >![](public_sys-resources/icon-notice.gif) **须知:** >- 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja编译工具。 >- (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja编译工具。安装gn、ninja编译工具时,请确保编译工具的环境变量路径唯一。 ### 连接Linux服务器 使用Windows远程登录Linux,以PUTTY工具为例: 1. 打开[PuTTY工具](https://www.putty.org/),输入Linux服务器IP地址,后点击“open”,打开连接。 **图 1** PuTTY界面示例图 ![](figures/PuTTY界面示例图.png "PuTTY界面示例图") 2. 弹框告警选择“是\(Y\)”。 3. 弹出界面中输入帐号并按回车键,继续输入密码并回车键。 **图 2** 登录界面图 ![](figures/登录界面图.png "登录界面图") 4. 登录成功。 **图 3** 登录成功界面 ![](figures/登录成功界面.png "登录成功界面") ### 将Linux shell改为bash 查看shell是否为bash,在终端运行如下命令 ``` ls -l /bin/sh ``` 如果显示为“/bin/sh -\> bash”则为正常,否则请按以下方式修改: **方法一**:在终端运行如下命令,然后选择 no。 ``` sudo dpkg-reconfigure dash ``` **方法二**:先删除sh,再创建软链接。 ``` sudo rm -rf /bin/sh sudo ln -s /bin/bash /bin/sh ``` ### 安装Python环境 1. 打开Linux编译服务器终端。 2. 输入如下命令,查看python版本号,需使用python3.7以上版本。 ``` python3 --version ``` 如果低于python3.7版本,不建议直接升级,请按照如下步骤重新安装。以python3.8为例,按照以下步骤安装python。 1. 运行如下命令,查看Ubuntu版本: ``` cat /etc/issue ``` 1. 根据Ubuntu不同版本,安装python。 - 如果Ubuntu 版本为18+,运行如下命令。 ``` sudo apt-get install python3.8 ``` - 如果Ubuntu版本为16,请以下载包的方式安装python。 1. python安装环境依赖\(gcc, g++, make, zlib, libffi\)请运行如下命令: ``` sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev ``` 1. 获取[python3.8.5安装包](https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz),将其放至linux服务器中,运行如下命令 : ``` tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure && sudo make && sudo make install ``` 3. 确定python安装好后,将python路径链接到"/usr/bin/python"。 输入如下命令,查看python是否正确软链接到python3.8。 ``` python --version ``` 如果回显不是python 3.8.5,则运行如下命令,查看python3.8所在目录: ``` which python3.8 ``` 将以下命令中的 "python3.8-path" 替换为 "which python3.8" 命令执行后的回显路径 ``` cd /usr/bin && sudo rm python && sudo rm python3 && sudo ln -s python3.8-path python && sudo ln -s python3.8-path python3 && python3 --version ``` 4. 安装并升级Python包管理工具(pip3),任选如下一种方式。 - **命令行方式:** ``` sudo apt-get install python3-setuptools python3-pip -y sudo pip3 install --upgrade pip ``` - **安装包方式:** ``` curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py ``` 5. 运行如下命令,安装python模块setuptools。 ``` pip3 install setuptools ``` 6. 安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。 - **命令行方式:** ``` sudo pip3 install kconfiglib ``` - **安装包方式:** 1. 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。 下载路径:“[https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files)” 1. 运行如下命令,安装.whl文件。 ``` sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl ``` 7. 安装pycryptodome,任选如下一种方式。 >![](public_sys-resources/icon-notice.gif) **须知:** >此[步骤7](#li195884268616)\~[步骤9](#li125926111510)仅Hi3861开发板需要安装,Hi3516、Hi3518开发板无需安装。 安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。 - **命令行方式:** ``` sudo pip3 install pycryptodome ``` - **安装包方式:** 1. 下载.whl文件(例如:pycryptodome-3.9.9-cp38-cp38-manylinux1\_x86\_64.whl)。 下载路径:“[https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files)”。 1. 运行如下命令,安装.whl文件。 ``` sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl ``` 8. 安装six,任选如下一种方式。 - **命令行方式:** ``` sudo pip3 install six --upgrade --ignore-installed six ``` - **安装包方式:** 1. 下载.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。 下载路径:“[https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files)” 1. 运行如下命令,安装.whl文件。 ``` sudo pip3 install six-1.12.0-py2.py3-none-any.whl ``` 9. 安装ecdsa,任选如下一种方式。 - **命令行方式:** ``` sudo pip3 install ecdsa ``` - **安装包方式:** 1. 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。 下载路径:“[https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files)” 1. 运行如下命令,安装.whl文件。 ``` sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl ``` ### 安装gn 1. 打开Linux编译服务器终端。 2. [下载gn工具](https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz)。 3. 在根目录下创建gn文件夹。 ``` mkdir ~/gn ``` 4. 解压gn安装包至\~/gn路径下。 ``` tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn ``` 5. 设置环境变量。 ``` vim ~/.bashrc ``` 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 ``` export PATH=~/gn:$PATH ``` 6. 生效环境变量。 ``` source ~/.bashrc ``` ### 安装ninja 1. 打开Linux编译服务器终端。 2. [下载ninja工具](https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar)。 3. 解压ninja安装包至\~/ninja路径下。 ``` tar -xvf ninja.1.9.0.tar -C ~/ ``` 4. 设置环境变量。 ``` vim ~/.bashrc ``` 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 ``` export PATH=~/ninja:$PATH ``` 5. 生效环境变量。 ``` source ~/.bashrc ``` ### 安装LLVM 1. 打开Linux编译服务器终端。 2. [下载LLVM工具](https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar)。 3. 解压LLVM安装包至\~/llvm路径下。 ``` tar -xvf llvm-linux-9.0.0-36191.tar -C ~/ ``` 4. 设置环境变量。 ``` vim ~/.bashrc ``` 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 ``` export PATH=~/llvm/bin:$PATH ``` 5. 生效环境变量。 ``` source ~/.bashrc ``` ### 安装hb **前提条件** - 请先安装Python 3.7.4及以上,请见[安装Python环境](#section11255767343)步骤1\~4。 - 下载源码,请见[源码获取](../get-code/源码获取.md)。 **安装方法** 1. 在源码根目录下执行: ``` python3 -m pip install --user build/lite ``` 2. 设置环境变量 ``` vim ~/.bashrc ``` 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 ``` export PATH=~/.local/bin:$PATH ``` 执行如下命令更新环境变量。 ``` source ~/.bashrc ``` 3. 执行hb -h有相关帮助信息,有打印信息即表示安装成功: ``` usage: hb OHOS build system positional arguments: {build,set,env,clean} build Build source code set OHOS build settings env Show OHOS build env clean Clean output optional arguments: -h, --help show this help message and exit ``` **卸载方法:** ``` python3 -m pip uninstall ohos-build ``` >![](public_sys-resources/icon-note.gif) **说明:** >如果安装hb的过程中遇到问题,请参见下文[常见问题](#section19253140111619)进行解决。 ## 获取OpenHarmony源码 开发者需要在Linux服务器上下载并解压一套源代码,获取OpenHarmony 源码([下载链接](https://repo.huaweicloud.com/harmonyos/os/1.0.1/code-1.0.1.tar.gz))。更多源码获取方式,请见[源码获取](../get-code/源码获取.md)。 ## 常见问题 ### hb安装过程中出现乱码、段错误 - **现象描述** 执行“python3 -m pip install --user build/lite”出现乱码、段错误(segmentation fault)。 - **可能原因** pip版本过低。 - **解决办法** 执行如下命令升级pip。 ``` python3 -m pip install -U pip ```