提交 2d2e257b 编写于 作者: D duanxichao

update 导入OpenHarmony工程

Signed-off-by: Nduanxichao <duanxichao@huawei.com>
上级 ac7b075b
......@@ -2,22 +2,22 @@
- [OpenHarmony介绍](#section6370143622110)
- [源码获取概述](#section12763342204)
- [获取方式1:从镜像站点获取](#section1186691118430)
- [获取方式1:从代码仓库获取](#section537312010229)
- [适用场景](#section10881513459)
- [前提条件](#section102871547153314)
- [操作步骤](#section429012478331)
- [获取方式2:从HPM(包管理器)组件式获取](#section463013147412)
- [适用场景](#section26661067443)
- [前提条件](#section1254674354310)
- [操作步骤](#section44161731194418)
- [获取方式3:从代码仓库获取](#section537312010229)
- [适用场景](#section10881513459)
- [准备](#section10938122310459)
- [操作](#section151644112456)
- [前提条件](#section17544943123315)
- [操作步骤](#section954619433333)
- [获取方式3:从镜像站点获取](#section1186691118430)
- [源码目录简介](#section1072115612811)
## OpenHarmony介绍<a name="section6370143622110"></a>
OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
开源代码仓库地址:[https://openharmony.gitee.com](https://openharmony.gitee.com)
......@@ -28,11 +28,193 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及
本文档将介绍如何获取OpenHarmony源码并说明OpenHarmony的源码目录结构。OpenHarmony的代码以[组件](../bundles/概述.md)的形式开放,开发者可以通过如下其中一种方式获取:
- **获取方式1**:从镜像站点下载归档后的发行版压缩文件。如果要获取旧版本的源码,也可通过此方式获取(推荐)
- **获取方式1**:从代码仓库获取。通过repo或git工具从代码仓库中下载,此方式可获取最新代码
- **获取方式2**:通过HPM包管理器获取。在[HPM](https://hpm.harmonyos.com)网站,查找满足需求的开源发行版,直接下载(或者定制后下载),再通过hpm-cli命令工具将所需的组件及工具链下载、安装到本地。
- **获取方式3**:从代码仓库获取。通过repo或git工具从代码仓库中下载。
- **获取方式3**:从镜像站点下载归档后的发行版压缩文件。如果要获取旧版本的源码,也可通过此方式获取,此方式下载速度较快。
## 获取方式1:从代码仓库获取<a name="section537312010229"></a>
### 适用场景<a name="section10881513459"></a>
- 基于OpenHarmony的稳定分支建立自己的基线,分发下游客户。
- 已经完成自身软件与OpenHarmony的对接,需要进行OpenHarmony官方认证。
- 芯片/模组/app通过OpenHarmony官方认证后,贡献代码到OpenHarmony社区。
- 修复OpenHarmony的问题。
- 学习OpenHarmony的源码。
### 前提条件<a name="section102871547153314"></a>
1. 注册码云gitee账号。
2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4181)
3. 安装[git客户端](http://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading))并配置用户信息。
```
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
```
4. 安装码云repo工具,可以执行如下命令。
```
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
```
### 操作步骤<a name="section429012478331"></a>
**获取轻量系统/小型系统源码**
>![](public_sys-resources/icon-note.gif) **说明:**
>主干代码为开发分支,开发者可通过主干代码获取最新特性。release分支代码相对比较稳定,开发者可基于release分支代码进行商用功能开发。
- **OpenHarmony主干代码获取**
方式一(推荐):通过repo下载
```
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
方式二:通过git clone单个代码仓库
进入[代码仓库主页](https://gitee.com/openharmony),选择需要克隆的代码仓库,执行命令,如:
```
git clone https://gitee.com/openharmony/manifest.git -b master
```
- **OpenHarmony release 分支代码获取**
通过repo下载
```
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
- **OpenHarmony** 其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md)
**获取标准系统源码(2.0 Canary)**
1. 创建并切换到OpenHarmony工作目录。
```
mkdir OpenHarmony
cd OpenHarmony
```
2. repo初始化。
```
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
```
3. 更新代码。
```
repo sync -c
```
4. 更新二进制。
```
repo forall -c 'git lfs pull'
```
## 获取方式2:从HPM(包管理器)组件式获取<a name="section463013147412"></a>
### 适用场景<a name="section26661067443"></a>
对于刚接触OpenHarmony的新用户,希望能够参考一些示例解决方案从而进行快速开发。可以在[HPM](https://hpm.harmonyos.com)网站获取下载开源发行版,也可以在开源发行版的基础上定制(添加或删除组件)。然后通过包管理器命令行工具(hpm-cli)将需要的组件及相关的编译工具链全部下载、安装到本地。
### 前提条件<a name="section17544943123315"></a>
先要在本地安装Node.js和hpm命令行工具,安装步骤如下:
1. 安装Node.js。
官网下载并在本地安装Node.js.
推荐安装 [Node.js](https://nodejs.org/) 12.x \(包含 npm 6.14.4\)或更高版本 \(推荐 12.13.0+\)。
2. 通过Node.js自带的npm安装hpm命令行工具。
打开CMD,执行以下命令:
```
npm install -g @ohos/hpm-cli
```
3. 安装完成后执行如下命令,显示hpm版本,即安装成功。
```
hpm -V 或 hpm --version
```
4. 如果升级hpm的版本,请执行如下命令:
```
npm update -g @ohos/hpm-cli
```
### 操作步骤<a name="section954619433333"></a>
1. 查找发行版。
1. 打开包管理页面[HPM](https://hpm.harmonyOS.com),设定搜索的对象为“发行版“,如下图所示。
2. 在搜索框输入关键字搜索,如“摄像头”。
3. 结果中显示与关键字匹配的发行版,可以进一步根据组件类别等过滤条件(如:适配的开发板,内核)精确筛选。
4. 查找合适的发行版,点击查看发行版的详情介绍。
**图 1** 包管理<a name="fig838103114320"></a>
![](figures/zh-cn_image_0000001119915556.png)
2. 了解发行版详情。
1. 仔细阅读发行版的说明信息,以了解使用场景、特性、组件构成、使用方法以及如何进行定制化,如下图所示。
2. 点击「直接下载」,将发行版下载到本地。
3. 点击「定制组件」,将对发行版包含的组件进行定制(添加/删除)。
**图 2** 发行版示例<a name="fig1329851510414"></a>
![](figures/zh-cn_image_0000001119755646.png)
3. 定制组件。
1. 进入发行版的定制页面,如下图所示。
2. 通过关闭开关移除可选组件,或者通过“添加组件”增加新的组件。
3. 在右边填写您的项目基本信息,包括名称、版本、描述等信息。
4. 点击“下载“,系统会根据您的选择,生成相应的OpenHarmony代码结构文件\(如my\_cust\_dist.zip\),保存至本地文件。
**图 3** 组件定制<a name="fig05036599014"></a>
![](figures/zh-cn_image_0000001166715379.png)
4. 下载安装组件。
1. 解压下载的压缩文件,用命令行工具CMD(Linux下的Shell终端)
2. 在解压后的文件目录下执行hpm install指令
3. 下载的组件存在工程目录下的ohos\_bundles文件夹中(部分组件安装后会将源码复制到指定目录下)。
## 获取方式1:从镜像站点获取<a name="section1186691118430"></a>
## 获取方式3:从镜像站点获取<a name="section1186691118430"></a>
为了获得更好的下载性能,您可以选择从以下站点的镜像库获取源码或者对应的解决方案。
......@@ -52,7 +234,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及
<td class="cellrowborder" valign="top" width="25%"><p id="p2109736133914"><a name="p2109736133914"></a><a name="p2109736133914"></a><strong id="b18109113613397"><a name="b18109113613397"></a><a name="b18109113613397"></a>SHA256校验码</strong></p>
</td>
</tr>
<tr id="row17736152318398"><td class="cellrowborder" valign="top" width="25%"><p id="p1110983610395"><a name="p1110983610395"></a><a name="p1110983610395"></a>全量代码</p>
<tr id="row17736152318398"><td class="cellrowborder" valign="top" width="25%"><p id="p1110983610395"><a name="p1110983610395"></a><a name="p1110983610395"></a>全量代码(轻量和小型系统)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p151091536143915"><a name="p151091536143915"></a><a name="p151091536143915"></a>1.1.0</p>
</td>
......@@ -106,7 +288,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及
<td class="cellrowborder" valign="top" width="25%"><p id="p13415149133914"><a name="p13415149133914"></a><a name="p13415149133914"></a><strong id="b8415114953915"><a name="b8415114953915"></a><a name="b8415114953915"></a>SHA256校验码</strong></p>
</td>
</tr>
<tr id="row4769431134919"><td class="cellrowborder" valign="top" width="25%"><p id="p97691031124913"><a name="p97691031124913"></a><a name="p97691031124913"></a>全量代码</p>
<tr id="row4769431134919"><td class="cellrowborder" valign="top" width="25%"><p id="p97691031124913"><a name="p97691031124913"></a><a name="p97691031124913"></a>全量代码(标准系统)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p1076916315492"><a name="p1076916315492"></a><a name="p1076916315492"></a>2.0 Canary</p>
</td>
......@@ -115,7 +297,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及
<td class="cellrowborder" valign="top" width="25%"><p id="p4769123184918"><a name="p4769123184918"></a><a name="p4769123184918"></a><a href="https://repo.huaweicloud.com/harmonyos/os/2.0/code-2.0-canary.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256校验码</a></p>
</td>
</tr>
<tr id="row273762316398"><td class="cellrowborder" valign="top" width="25%"><p id="p54150491393"><a name="p54150491393"></a><a name="p54150491393"></a>全量代码</p>
<tr id="row273762316398"><td class="cellrowborder" valign="top" width="25%"><p id="p54150491393"><a name="p54150491393"></a><a name="p54150491393"></a>全量代码(轻量和小型系统)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p16415124923914"><a name="p16415124923914"></a><a name="p16415124923914"></a>1.0(不再维护)</p>
</td>
......@@ -181,193 +363,6 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及
</tbody>
</table>
## 获取方式2:从HPM(包管理器)组件式获取<a name="section463013147412"></a>
### 适用场景<a name="section26661067443"></a>
对于刚接触OpenHarmony的新用户,希望能够参考一些示例解决方案从而进行快速开发。可以在[HPM](https://hpm.harmonyos.com)网站获取下载开源发行版,也可以在开源发行版的基础上定制(添加或删除组件)。然后通过包管理器命令行工具(hpm-cli)将需要的组件及相关的编译工具链全部下载、安装到本地。
### 前提条件<a name="section1254674354310"></a>
先要在本地安装Node.js和hpm命令行工具,安装步骤如下:
1. 安装Node.js。
官网下载并在本地安装Node.js.
推荐安装 [Node.js](https://nodejs.org/) 12.x \(包含 npm 6.14.4\)或更高版本 \(推荐 12.13.0+\)。
2. 通过Node.js自带的npm安装hpm命令行工具。
打开CMD,执行以下命令:
```
npm install -g @ohos/hpm-cli
```
3. 安装完成后执行如下命令,显示hpm版本,即安装成功。
```
hpm -V 或 hpm --version
```
4. 如果升级hpm的版本,请执行如下命令:
```
npm update -g @ohos/hpm-cli
```
### 操作步骤<a name="section44161731194418"></a>
1. 查找发行版。
1. 打开包管理页面[HPM](https://hpm.harmonyOS.com),设定搜索的对象为“发行版“,如下图所示。
2. 在搜索框输入关键字搜索,如“摄像头”。
3. 结果中显示与关键字匹配的发行版,可以进一步根据组件类别等过滤条件(如:适配的开发板,内核)精确筛选。
4. 查找合适的发行版,点击查看发行版的详情介绍。
**图 1** 包管理<a name="fig838103114320"></a>
![](figures/zh-cn_image_0000001160590725.png)
2. 了解发行版详情。
1. 仔细阅读发行版的说明信息,以了解使用场景、特性、组件构成、使用方法以及如何进行定制化,如下图所示。
2. 点击「直接下载」,将发行版下载到本地。
3. 点击「定制组件」,将对发行版包含的组件进行定制(添加/删除)。
**图 2** 发行版示例<a name="fig1329851510414"></a>
![](figures/zh-cn_image_0000001114070816.png)
3. 定制组件。
1. 进入发行版的定制页面,如下图所示。
2. 通过关闭开关移除可选组件,或者通过“添加组件”增加新的组件。
3. 在右边填写您的项目基本信息,包括名称、版本、描述等信息。
4. 点击“下载“,系统会根据您的选择,生成相应的OpenHarmony代码结构文件\(如my\_cust\_dist.zip\),保存至本地文件。
**图 3** 组件定制<a name="fig05036599014"></a>
![](figures/zh-cn_image_0000001113910924.png)
4. 下载安装组件。
1. 解压下载的压缩文件,用命令行工具CMD(Linux下的Shell终端)
2. 在解压后的文件目录下执行hpm install指令
3. 下载的组件存在工程目录下的ohos\_bundles文件夹中(部分组件安装后会将源码复制到指定目录下)。
## 获取方式3:从代码仓库获取<a name="section537312010229"></a>
### 适用场景<a name="section10881513459"></a>
- 基于OpenHarmony的稳定分支建立自己的基线,分发下游客户。
- 已经完成自身软件与OpenHarmony的对接,需要进行OpenHarmony官方认证。
- 芯片/模组/app通过OpenHarmony官方认证后,贡献代码到OpenHarmony社区。
- 修复OpenHarmony的问题。
- 学习OpenHarmony的源码。
### 准备<a name="section10938122310459"></a>
1. 注册码云gitee账号。
2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4181)
3. 安装[git客户端](http://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading))并配置用户信息。
```
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
```
4. 安装码云repo工具,可以执行如下命令。
```
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
```
### 操作<a name="section151644112456"></a>
**获取轻量系统/小型系统源码**
>![](public_sys-resources/icon-note.gif) **说明:**
>主干代码为开发分支,开发者可通过主干代码获取最新特性。release分支代码相对比较稳定,开发者可基于release分支代码进行商用功能开发。
- **OpenHarmony主干代码获取**
方式一(推荐):通过repo下载
```
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
方式二:通过git clone单个代码仓库
进入[代码仓库主页](https://gitee.com/openharmony),选择需要克隆的代码仓库,执行命令,如:
```
git clone https://gitee.com/openharmony/manifest.git -b master
```
- **OpenHarmony release 分支代码获取**
通过repo下载
```
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
- **OpenHarmony** 其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md)
**获取标准系统源码(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'
```
## 源码目录简介<a name="section1072115612811"></a>
下表是OpenHarmony源码的目录及简单说明:
......
......@@ -36,7 +36,7 @@ OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完
</thead>
<tbody><tr id="row167901244115315"><td class="cellrowborder" valign="top" width="35.5064493550645%" headers="mcps1.2.4.1.1 "><p id="p87901744185316"><a name="p87901744185316"></a><a name="p87901744185316"></a>swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker</p>
</td>
<td class="cellrowborder" valign="top" width="10.258974102589741%" headers="mcps1.2.4.1.2 "><p id="p15790184410536"><a name="p15790184410536"></a><a name="p15790184410536"></a>0.0.3</p>
<td class="cellrowborder" valign="top" width="10.258974102589741%" headers="mcps1.2.4.1.2 "><p id="p15790184410536"><a name="p15790184410536"></a><a name="p15790184410536"></a>0.0.4</p>
</td>
<td class="cellrowborder" valign="top" width="54.23457654234577%" headers="mcps1.2.4.1.3 "><p id="p15790124416531"><a name="p15790124416531"></a><a name="p15790124416531"></a>已经预安装<span id="text6790444135318"><a name="text6790444135318"></a><a name="text6790444135318"></a>OpenHarmony</span>版本的编译环境,支持<span id="text167042559153"><a name="text167042559153"></a><a name="text167042559153"></a>轻量系统类设备(参考内存≥128KB)</span>和<span id="text358943111611"><a name="text358943111611"></a><a name="text358943111611"></a>小型系统类设备(参考内存≥1MB)</span>的版本构建。</p>
</td>
......@@ -123,8 +123,7 @@ docker\_dist是一个[HPM](https://hpm.harmonyos.com/)系统中的模板组件
```
# 拉取镜像
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3
# linux环境下的编译
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.4# linux环境下的编译
hpm run distWithDocker solution={product}
# windows下的编译,需要配置gitbash
hpm config set shellPath "gitbash路径"
......@@ -143,13 +142,13 @@ OpenHarmony的Docker镜像托管在[HuaweiCloud SWR](https://console.huaweicloud
1. 获取Docker镜像。
```
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.4
```
2. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。
```
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.4
```
......@@ -171,7 +170,7 @@ OpenHarmony的Docker镜像托管在[HuaweiCloud SWR](https://console.huaweicloud
3. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。
```
docker run -it -v $(pwd):/home/openharmony openharmony-docker:0.0.3
docker run -it -v $(pwd):/home/openharmony openharmony-docker:0.0.4
```
......
# 真机运行<a name="ZH-CN_TOPIC_0000001115258034"></a>
应用签名打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony系统烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[标准系统Hi3516快速入门](../quick-start/开发步骤-11.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载应用。
应用签名打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony系统烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[标准系统Hi3516快速入门](../quick-start/开发步骤-12.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载应用。
1. 从开发者工具代码仓路径中获取hdc客户端。
......
# 移植适配
# 移植指南
- [三方库移植指导](三方库移植指导.md)
- [概述](概述.md)
......@@ -20,6 +20,7 @@
- [板级驱动适配](板级驱动适配.md)
- [HAL层实现](HAL层实现.md)
- [系统组件调用](系统组件调用.md)
- [三方组件适配](三方组件适配.md)
- [XTS认证](XTS认证.md)
- [常见问题](常见问题.md)
......
# 三方组件适配<a name="ZH-CN_TOPIC_0000001117478960"></a>
如果需要使用third\_party目录下与产品相关的三方组件,可能需要对三方组件进行适配,下面以比较常用的mbedtls为例,介绍下适配步骤,注意本小节中仅介绍如何将适配的代码与OpenHarmony的编译框架融合,不会详细介绍mbedtls本身的原理和适配代码的具体逻辑,这些内容请参考mbedtls官方网站上的适配指南。
1. 编写适配层代码
根据mbedtls官网的适配指南,编写需要的适配层代码,以适配硬件随机数举例,下面的路径都是相对third\_party/mbedtls的路径:
1. 拷贝include/mbedtls/config.h到ports目录下,并修改打开MBEDTLS\_ENTROPY\_HARDWARE\_ALT开关。
2. 在ports目录下创建entropy\_poll\_alt.c文件include并实现entropy\_poll.h中的硬件随机数接口
3. 在BUILD.gn中的mbedtls\_sources中增加刚才适配的entropy\_poll\_alt.c的路径
4. 在BIULD.gn中的lite\_library\("mbedtls\_static"\)中增加一行MBEDTLS\_CONFIG\_FILE指定新配置文件的位置
```
lite_library("mbedtks_static") {
...
defines += ["MBEDTLS_CONFIG_FILE=<../port/config.h>"]
...
}
```
注意,上面的修改最好都新建一个config或者新建一个xxx\_alt.c文件来修改,不要直接在原先的代码中修改,侵入式的修改会导致后续版本升级出现大量零散冲突,增加升级维护成本。
2. 制作patch
由于上面的适配是硬件相关的,上库代码时,不能直接放到通用的third\_party/mbedtls目录中,因此需要将上面的修改制作成patch,在编译之前通过打patch的方式注入到代码中。
1. 首先增加设备的patch配置文件device/<company\>/<board\>/patch.yml
2. 编辑device/<company\>/<board\>/patch.yml,增加要打的patch的信息:
```
# 需要打patch的路径,路径均为相对代码根目录的路径
third_party/mbedtls:
# 该路径下需要打的patch存放路径
- device/<company>/<board>/third_party/mbedtls/adapter.patch
third_party/wpa_supplicant:
# 当一个路径下有多个patch的时候会依次执行patch
- device/<company>/<board>/third_party/wpa_supplicant/xxxxx.patch
- device/<company>/<board>/third_party/wpa_supplicant/yyyyy.patch
...
```
3. 制作上述**步骤1**修改的patch并放到对应的目录即可
3. 使用带patch的编译
想要在编译的时候带上patch,其他步骤不变,仅需要在触发编译的时候加上 --patch,例如全编译的命令编程
```
hb build -f --patch
```
>![](public_sys-resources/icon-caution.gif) **注意:**
>最后一次打patch的产品信息会被记录,在进行下一次编译操作时,会对上一次的patch进行回退(即执行\`patch -p1 -R < xxx\`),回退patch失败或新增patch失败均会终止编译过程,请解决patch冲突后再次尝试编译。
......@@ -8,6 +8,8 @@
- **[系统组件调用](系统组件调用.md)**
- **[三方组件适配](三方组件适配.md)**
- **[XTS认证](XTS认证.md)**
# Hi3516开发板<a name="ZH-CN_TOPIC_0000001105041328"></a>
- **[安装开发板环境](安装开发板环境-1.md)**
- **[安装开发板环境](安装开发板环境-2.md)**
- **[运行Hello OHOS](运行Hello-OHOS.md)**
- **[驱动开发示例](驱动开发示例.md)**
- **[常见问题](常见问题-2.md)**
- **[常见问题](常见问题-3.md)**
# Hi3518开发板<a name="ZH-CN_TOPIC_0000001152041035"></a>
- **[安装开发板环境](安装开发板环境-3.md)**
- **[安装开发板环境](安装开发板环境-4.md)**
- **[运行Hello OHOS](运行Hello-OHOS-4.md)**
- **[运行Hello OHOS](运行Hello-OHOS-5.md)**
- **[常见问题](常见问题-5.md)**
- **[常见问题](常见问题-6.md)**
......@@ -6,6 +6,6 @@
- **[运行Hello World](运行Hello-World.md)**
- **[常见问题](常见问题-0.md)**
- **[常见问题](常见问题-1.md)**
......@@ -19,7 +19,7 @@ Hi3861 WLAN模组是一片大约2cm\*5cm大小的开发板,是一款高度集
**图 2** Hi3861底板外观图<a name="fig111746288192"></a>
![](figures/3861背面.png)
![](figures/zh-cn_image_0000001119945810.png)
- RF电路包括功率放大器PA(Power Amplifier)、低噪声放大器LNA(Low Noise Amplifier)、RF Balun、天线开关以及电源管理等模块;支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。
- Hi3861 WLAN基带支持正交频分复用(OFDM)技术,并向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。
......
# 快速入门
- [导读](导读.md)
- [轻量和小型系统入门](轻量和小型系统入门.md)
- [概述](概述.md)
- [了解开发板](了解开发板.md)
......@@ -8,6 +9,7 @@
- [Hi3518开发板介绍](Hi3518开发板介绍.md)
- [搭建系统环境](搭建系统环境.md)
- [概述](概述-0.md)
- [Windows开发环境准备](Windows开发环境准备.md)
- [Ubuntu编译环境准备](Ubuntu编译环境准备.md)
- [常见问题](常见问题.md)
......@@ -17,26 +19,26 @@
- [安装开发板环境](安装开发板环境.md)
- [WLAN联网](WLAN联网.md)
- [运行Hello World](运行Hello-World.md)
- [常见问题](常见问题-0.md)
- [常见问题](常见问题-1.md)
- [Hi3516开发板](Hi3516开发板.md)
- [安装开发板环境](安装开发板环境-1.md)
- [安装开发板环境](安装开发板环境-2.md)
- [运行Hello OHOS](运行Hello-OHOS.md)
- [驱动开发示例](驱动开发示例.md)
- [常见问题](常见问题-2.md)
- [常见问题](常见问题-3.md)
- [Hi3518开发板](Hi3518开发板.md)
- [安装开发板环境](安装开发板环境-3.md)
- [运行Hello OHOS](运行Hello-OHOS-4.md)
- [常见问题](常见问题-5.md)
- [安装开发板环境](安装开发板环境-4.md)
- [运行Hello OHOS](运行Hello-OHOS-5.md)
- [常见问题](常见问题-6.md)
- [标准系统入门](标准系统入门.md)
- [概述](概述-6.md)
- [概述](概述-7.md)
- [环境搭建](环境搭建.md)
- [概述](概述-7.md)
- [Windows开发环境准备](Windows开发环境准备-8.md)
- [Ubuntu编译环境准备](Ubuntu编译环境准备-9.md)
- [常见问题](常见问题-10.md)
- [概述](概述-8.md)
- [Windows开发环境准备](Windows开发环境准备-9.md)
- [Ubuntu编译环境准备](Ubuntu编译环境准备-10.md)
- [常见问题](常见问题-11.md)
- [开发步骤](开发步骤-11.md)
- [开发步骤](开发步骤-12.md)
# Ubuntu编译环境准备<a name="ZH-CN_TOPIC_0000001161257591"></a>
- [方式一:Docker方式准备Ubuntu编译环境](#section1643363843714)
- [获取标准系统源码](#section58448331029)
- [Docker环境安装使用](#section22916211916)
- [方式二:安装包方式准备Ubuntu编译环境](#section25961010189)
- [安装依赖工具](#section109262032104819)
- [获取标准系统源码](#section6325556113718)
- [获取prebuilts](#section16453104219209)
OpenHarmony为开发者提供了Docker和安装包两种方式来搭建Ubuntu编译环境。接下来将分别针对这两种方式进行介绍。
## 方式一:Docker方式准备Ubuntu编译环境<a name="section1643363843714"></a>
OpenHarmony标准系统为开发者提供的Docker环境已经将对应的编译工具链进行了封装,开发者可省略对应工具的安装。具体Docker使用分为如下几步:
1. 获取标准系统源码。
2. Docker环境安装使用。
### 获取标准系统源码<a name="section58448331029"></a>
获取[标准系统源码](https://repo.huaweicloud.com/harmonyos/os/2.0/code-2.0-canary.tar.gz)。此处获取的源码为静态打包代码,如想获取码云社区最新源码,请采用[repo方式获取](../get-code/源码获取.md)
### Docker环境安装使用<a name="section22916211916"></a>
具体Docker环境的安装和使用请参考[Docker环境安装使用指导](../get-code/获取工具.md)
## 方式二:安装包方式准备Ubuntu编译环境<a name="section25961010189"></a>
安装包方式具体操作分为如下几步:
1. 安装依赖工具。
2. 获取标准系统源码。
3. 获取prebuilts。
### 安装依赖工具<a name="section109262032104819"></a>
安装命令如下:
```
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
```
>![](public_sys-resources/icon-caution.gif) **注意:**
>以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。如果是Ubuntu18.04以上版本需要安装python2.7 和 python-minimal。
### 获取标准系统源码<a name="section6325556113718"></a>
获取[标准系统源码](https://repo.huaweicloud.com/harmonyos/os/2.0/code-2.0-canary.tar.gz)。此处获取的源码为静态打包代码,如想获取码云社区最新源码,请采用[repo方式获取](../get-code/源码获取.md)
### 获取prebuilts<a name="section16453104219209"></a>
1. 切换到OpenHarmony工作目录。
```
cd OpenHarmony
```
2. 执行脚本。
```
build/prebuilts_download.sh
```
下载的prebuilts二进制默认存放在与OpenHarmony同目录下的OpenHarmony\_2.0\_canary\_prebuilts下。
......@@ -87,8 +87,6 @@ Hi3861 WLAN模组的镜像烧录可以通过OpenHarmony IDE工具DevEco完成,
6. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。
7. 打开工程文件,在DevEco Device Tool界面的“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。
![](figures/zh-cn_image_0000001120802383.png)
![](figures/zh-cn_image_0000001163569275.png)
8. 启动烧录后,显示如下提示信息时,请按开发板上的RST按钮重启开发板。
......
# Windows开发环境准备<a name="ZH-CN_TOPIC_0000001114978364"></a>
- [获取软件](#zh-cn_topic_0000001058091994_section1483143015558)
- [安装Visual Studio Code](#zh-cn_topic_0000001058091994_section71401018163318)
- [安装Python](#zh-cn_topic_0000001058091994_section16266553175320)
- [安装Node.js](#zh-cn_topic_0000001058091994_section5353233124511)
- [安装hpm](#zh-cn_topic_0000001058091994_section173054793610)
- [安装DevEco Device Tool插件](#zh-cn_topic_0000001058091994_section4336315185716)
系统要求:Windows 10 64位系统。
DevEco Device Tool以插件方式提供,基于Visual Studio Code进行扩展,安装分为如下几步:
1. 安装Visual Studio Code
2. 安装Python
3. 安装Node.js
4. 安装hpm
5. 安装DevEco Device Tool插件
## 获取软件<a name="zh-cn_topic_0000001058091994_section1483143015558"></a>
<a name="zh-cn_topic_0000001058091994_table12730195765616"></a>
<table><thead align="left"><tr id="zh-cn_topic_0000001058091994_row6730125785610"><th class="cellrowborder" valign="top" width="19.49%" id="mcps1.1.5.1.1"><p id="zh-cn_topic_0000001058091994_p1573065716561"><a name="zh-cn_topic_0000001058091994_p1573065716561"></a><a name="zh-cn_topic_0000001058091994_p1573065716561"></a>工具名称</p>
</th>
<th class="cellrowborder" valign="top" width="20.5%" id="mcps1.1.5.1.2"><p id="zh-cn_topic_0000001058091994_p197306572566"><a name="zh-cn_topic_0000001058091994_p197306572566"></a><a name="zh-cn_topic_0000001058091994_p197306572566"></a>用途说明</p>
</th>
<th class="cellrowborder" valign="top" width="20.03%" id="mcps1.1.5.1.3"><p id="zh-cn_topic_0000001058091994_p373085711569"><a name="zh-cn_topic_0000001058091994_p373085711569"></a><a name="zh-cn_topic_0000001058091994_p373085711569"></a>版本要求</p>
</th>
<th class="cellrowborder" valign="top" width="39.98%" id="mcps1.1.5.1.4"><p id="zh-cn_topic_0000001058091994_p197309576566"><a name="zh-cn_topic_0000001058091994_p197309576566"></a><a name="zh-cn_topic_0000001058091994_p197309576566"></a>获取渠道</p>
</th>
</tr>
</thead>
<tbody><tr id="zh-cn_topic_0000001058091994_row12730155765618"><td class="cellrowborder" valign="top" width="19.49%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001058091994_p123931728135713"><a name="zh-cn_topic_0000001058091994_p123931728135713"></a><a name="zh-cn_topic_0000001058091994_p123931728135713"></a>Visual Studio Code</p>
</td>
<td class="cellrowborder" valign="top" width="20.5%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001058091994_p12332194816317"><a name="zh-cn_topic_0000001058091994_p12332194816317"></a><a name="zh-cn_topic_0000001058091994_p12332194816317"></a>代码编辑工具</p>
</td>
<td class="cellrowborder" valign="top" width="20.03%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001058091994_p711918919618"><a name="zh-cn_topic_0000001058091994_p711918919618"></a><a name="zh-cn_topic_0000001058091994_p711918919618"></a>V1.53及以上 64位版本。</p>
</td>
<td class="cellrowborder" valign="top" width="39.98%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001058091994_p2721438193710"><a name="zh-cn_topic_0000001058091994_p2721438193710"></a><a name="zh-cn_topic_0000001058091994_p2721438193710"></a><a href="https://code.visualstudio.com/Download" target="_blank" rel="noopener noreferrer">https://code.visualstudio.com/Download</a></p>
</td>
</tr>
<tr id="zh-cn_topic_0000001058091994_row187311257185619"><td class="cellrowborder" valign="top" width="19.49%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001058091994_p21270444579"><a name="zh-cn_topic_0000001058091994_p21270444579"></a><a name="zh-cn_topic_0000001058091994_p21270444579"></a>Python</p>
</td>
<td class="cellrowborder" valign="top" width="20.5%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001058091994_p547205817316"><a name="zh-cn_topic_0000001058091994_p547205817316"></a><a name="zh-cn_topic_0000001058091994_p547205817316"></a>编译构建工具</p>
</td>
<td class="cellrowborder" valign="top" width="20.03%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001058091994_p1991315166416"><a name="zh-cn_topic_0000001058091994_p1991315166416"></a><a name="zh-cn_topic_0000001058091994_p1991315166416"></a>3.7.4-3.8.x 64位版本</p>
</td>
<td class="cellrowborder" valign="top" width="39.98%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001058091994_p1599022403"><a name="zh-cn_topic_0000001058091994_p1599022403"></a><a name="zh-cn_topic_0000001058091994_p1599022403"></a><a href="https://www.python.org/downloads/" target="_blank" rel="noopener noreferrer">https://www.python.org/downloads/</a></p>
</td>
</tr>
<tr id="zh-cn_topic_0000001058091994_row117316576562"><td class="cellrowborder" valign="top" width="19.49%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001058091994_p16405151165717"><a name="zh-cn_topic_0000001058091994_p16405151165717"></a><a name="zh-cn_topic_0000001058091994_p16405151165717"></a>Node.js</p>
</td>
<td class="cellrowborder" valign="top" width="20.5%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001058091994_p1773185765616"><a name="zh-cn_topic_0000001058091994_p1773185765616"></a><a name="zh-cn_topic_0000001058091994_p1773185765616"></a>提供npm环境</p>
</td>
<td class="cellrowborder" valign="top" width="20.03%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001058091994_p573118572567"><a name="zh-cn_topic_0000001058091994_p573118572567"></a><a name="zh-cn_topic_0000001058091994_p573118572567"></a>v12.0.0及以上 64位版本</p>
</td>
<td class="cellrowborder" valign="top" width="39.98%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001058091994_p9200911141112"><a name="zh-cn_topic_0000001058091994_p9200911141112"></a><a name="zh-cn_topic_0000001058091994_p9200911141112"></a><a href="https://nodejs.org/zh-cn/download/" target="_blank" rel="noopener noreferrer">https://nodejs.org/zh-cn/download/</a></p>
</td>
</tr>
<tr id="zh-cn_topic_0000001058091994_row6731105715561"><td class="cellrowborder" valign="top" width="19.49%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001058091994_p2081865318571"><a name="zh-cn_topic_0000001058091994_p2081865318571"></a><a name="zh-cn_topic_0000001058091994_p2081865318571"></a>hpm</p>
</td>
<td class="cellrowborder" valign="top" width="20.5%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001058091994_p1632215161040"><a name="zh-cn_topic_0000001058091994_p1632215161040"></a><a name="zh-cn_topic_0000001058091994_p1632215161040"></a>包管理工具</p>
</td>
<td class="cellrowborder" valign="top" width="20.03%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001058091994_p773185715566"><a name="zh-cn_topic_0000001058091994_p773185715566"></a><a name="zh-cn_topic_0000001058091994_p773185715566"></a>最新版</p>
</td>
<td class="cellrowborder" valign="top" width="39.98%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001058091994_p14731125745610"><a name="zh-cn_topic_0000001058091994_p14731125745610"></a><a name="zh-cn_topic_0000001058091994_p14731125745610"></a>请参考<a href="#zh-cn_topic_0000001058091994_section173054793610">安装hpm</a></p>
</td>
</tr>
<tr id="zh-cn_topic_0000001058091994_row13317205645717"><td class="cellrowborder" valign="top" width="19.49%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001058091994_p143411112587"><a name="zh-cn_topic_0000001058091994_p143411112587"></a><a name="zh-cn_topic_0000001058091994_p143411112587"></a>DevEco Device Tool</p>
</td>
<td class="cellrowborder" valign="top" width="20.5%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001058091994_p1690316506517"><a name="zh-cn_topic_0000001058091994_p1690316506517"></a><a name="zh-cn_topic_0000001058091994_p1690316506517"></a>OpenHarmony源码的编译、烧录、调试插件工具</p>
</td>
<td class="cellrowborder" valign="top" width="20.03%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001058091994_p113171956185715"><a name="zh-cn_topic_0000001058091994_p113171956185715"></a><a name="zh-cn_topic_0000001058091994_p113171956185715"></a>v2.2 Beta1</p>
</td>
<td class="cellrowborder" valign="top" width="39.98%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001058091994_p3503163074720"><a name="zh-cn_topic_0000001058091994_p3503163074720"></a><a name="zh-cn_topic_0000001058091994_p3503163074720"></a><a href="https://device.harmonyos.com/cn/ide#download" target="_blank" rel="noopener noreferrer">https://device.harmonyos.com/cn/ide#download</a></p>
<p id="zh-cn_topic_0000001058091994_p23171856135717"><a name="zh-cn_topic_0000001058091994_p23171856135717"></a><a name="zh-cn_topic_0000001058091994_p23171856135717"></a>下载前,请使用华为开发者帐号登录,如未注册,请先<a href="https://developer.huawei.com/consumer/cn/doc/start/registration-and-verification-0000001053628148" target="_blank" rel="noopener noreferrer">注册华为开发者帐号</a></p>
</td>
</tr>
</tbody>
</table>
## 安装Visual Studio Code<a name="zh-cn_topic_0000001058091994_section71401018163318"></a>
>![](public_sys-resources/icon-note.gif) **说明:**
>如果已安装Visual Studio Code,打开命令行工具,输入**code --version**命令,检查版本号是否为1.53及以上版本;可以正常返回版本号,说明环境变量设置也正确。
1. 双击Visual Studio Code软件包进行安装。安装过程中,请勾选“添加到PATH(重启后生效)”。
![](figures/zh-cn_image_0000001057335403.png)
2. 安装完成后,重启计算机,使Visual Studio Code的环境变量生效。
3. 打开命令行工具,输入**code --version**命令,可以正常显示版本号说明安装成功。
## 安装Python<a name="zh-cn_topic_0000001058091994_section16266553175320"></a>
1. 双击Python安装包进行安装,勾选“**Add Python xx to PATH**”,然后点击**Install Now**开始安装。
![](figures/zh-cn_image_0000001096154076.png)
2. 等待安装完成后,点击**Close**
![](figures/zh-cn_image_0000001142794291.png)
3. 打开命令行工具,输入python --version,检查安装结果。
![](figures/zh-cn_image_0000001143154485.png)
4. 在命令行工具中,分别执行如下命令设置pip源,用于后续安装DevEco Device Tool过程中下载依赖的组件包。
```
pip config set global.trusted-host repo.huaweicloud.com
pip config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple
pip config set global.timeout 120
```
## 安装Node.js<a name="zh-cn_topic_0000001058091994_section5353233124511"></a>
>![](public_sys-resources/icon-note.gif) **说明:**
>如果已安装Node.js,打开命令行工具,输入**node -v**命令,检查版本号是否为12.0.0及以上版本。
1. 点击下载后的软件包进行安装,全部按照默认设置点击**Next**,直至**Finish**。安装过程中,Node.js会自动在系统的path环境变量中配置node.exe的目录路径。
2. 重新打开命令行工具,输入“node -v“命令,能正常查询Node.js的版本号,说明Node.js安装成功。
![](figures/zh-cn_image_0000001056814287.png)
## 安装hpm<a name="zh-cn_topic_0000001058091994_section173054793610"></a>
该方式需先确保**Node.js**安装成功。
在安装hpm前,请检查网络连接状态,如果网络不能直接访问Internet,则需要通过代理服务器才可以访问。这种情况下,需要先[设置npm代理](https://device.harmonyos.com/cn/docs/ide/user-guides/npm_proxy-0000001054491032),才能安装hpm。
>![](public_sys-resources/icon-note.gif) **说明:**
>如果已安装hpm,可以执行**npm update -g @ohos/hpm-cli**命令升级hpm至最新版本。
1. 建议将npm源配置为国内镜像,例如设置为华为云镜像源。
```
npm config set registry https://repo.huaweicloud.com/repository/npm/
```
2. 打开命令行工具,执行如下命令安装最新版本hpm。
```
npm install -g @ohos/hpm-cli
```
![](figures/zh-cn_image_0000001073840162.png)
3. 安装完成后,执行如下命令(V为大写字母)检查hpm安装结果。
```
hpm -V
```
![](figures/zh-cn_image_0000001100641602.png)
## 安装DevEco Device Tool插件<a name="zh-cn_topic_0000001058091994_section4336315185716"></a>
安装DevEco Device Tool插件,**主机的用户名不能包含中文字符**,否则可能导致运行出现错误。
DevEco Device Tool正常运行需要依赖于C/C++和CodeLLDB插件,在安装完DevEco Device Tool后,会自动从Visual Studio Code的插件市场安装C/C++和CodeLLDB插件。因此,在安装DevEco Device Tool前,请检查Visual Studio Code的网络连接状态,如果网络不能直接访问Internet,则需要通过代理服务器才可以访问,请先[Visual Studio Code代理设置](https://device.harmonyos.com/cn/docs/ide/user-guides/vscode_proxy-0000001074231144)
>![](public_sys-resources/icon-note.gif) **说明:**
>安装DevEco Device Tool时,请先关闭Visual Studio Code。
1. 解压DevEco Device Tool插件压缩包,双击安装包程序进行安装。
2. 安装过程中,会自动安装DevEco Device Tool所需的依赖文件(如C/C++和CodeLLDB插件)和执行程序。
![](figures/zh-cn_image_0000001072468991.png)
3. 安装完成后,会自动关闭命令行工具窗口。
4. 启动Visual Studio Code,点击左侧的![](figures/zh-cn_image_0000001072757874.png)按钮,检查INSTALLED中,是否已成功安装C/C++、CodeLLDB和DevEco Device Tool。
>![](public_sys-resources/icon-note.gif) **说明:**
>如果C/C++和CodeLLDB插件安装不成功,则DevEco Device Tool不能正常运行,解决方法,详细请参考:[离线安装C/C++和CodeLLDB插件](https://device.harmonyos.com/cn/docs/ide/user-guides/offline_plugin_install-0000001074376846)。
![](figures/zh-cn_image_0000001142802505.png)
......@@ -63,8 +63,7 @@ DevEco Device Tool以插件方式提供,基于Visual Studio Code进行扩展
</td>
<td class="cellrowborder" valign="top" width="20.03%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001058091994_p773185715566"><a name="zh-cn_topic_0000001058091994_p773185715566"></a><a name="zh-cn_topic_0000001058091994_p773185715566"></a>最新版</p>
</td>
<td class="cellrowborder" valign="top" width="39.98%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001058091994_p14731125745610"><a name="zh-cn_topic_0000001058091994_p14731125745610"></a><a name="zh-cn_topic_0000001058091994_p14731125745610"></a>执行如下npm命令进行安装,npm自动下载最新版本</p>
<pre class="screen" id="zh-cn_topic_0000001058091994_screen54628167163"><a name="zh-cn_topic_0000001058091994_screen54628167163"></a><a name="zh-cn_topic_0000001058091994_screen54628167163"></a>npm install -g @ohos/hpm-cli</pre>
<td class="cellrowborder" valign="top" width="39.98%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001058091994_p14731125745610"><a name="zh-cn_topic_0000001058091994_p14731125745610"></a><a name="zh-cn_topic_0000001058091994_p14731125745610"></a>请参考<a href="#zh-cn_topic_0000001058091994_section173054793610">安装hpm</a></p>
</td>
</tr>
<tr id="zh-cn_topic_0000001058091994_row13317205645717"><td class="cellrowborder" valign="top" width="19.49%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001058091994_p143411112587"><a name="zh-cn_topic_0000001058091994_p143411112587"></a><a name="zh-cn_topic_0000001058091994_p143411112587"></a>DevEco Device Tool</p>
......
# 安装开发板环境<a name="ZH-CN_TOPIC_0000001105829366"></a>
- [Hi3516工具要求](#section179175261196)
- [硬件要求](#section5840424125014)
- [软件要求](#section965634210501)
- [安装Linux服务器工具](#section182916865219)
- [将Linux shell改为bash](#section1715027152617)
- [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251)
- [安装文件打包工具](#section1969111820270)
- [安装Java 虚拟机环境](#section1692618112713)
## Hi3516工具要求<a name="section179175261196"></a>
### 硬件要求<a name="section5840424125014"></a>
- Hi3516DV300 IoT Camera开发板
- USB转串口线、网线(Windows工作台通过USB转串口线、网线与Hi3516DV300 开发板连接)
各硬件连接关系如下图所示。
**图 1** 硬件连线图<a name="fig19527104710591"></a>
![](figures/矩形备份-292.png)
### 软件要求<a name="section965634210501"></a>
>![](public_sys-resources/icon-notice.gif) **须知:**
>本节描述安装包方式搭建编译环境的操作步骤。如果是Docker方式安装编译环境,请跳过此章节以及下述[安装Linux服务器工具](#section182916865219)章节。
Hi3516开发板对Linux服务器通用环境配置需要的工具及其获取途径如下表所示。
**表 1** Linux服务器开发工具及获取途径
<a name="table6299192712513"></a>
<table><thead align="left"><tr id="row122993276512"><th class="cellrowborder" valign="top" width="25.112511251125113%" id="mcps1.2.4.1.1"><p id="p1829914271858"><a name="p1829914271858"></a><a name="p1829914271858"></a>开发工具</p>
</th>
<th class="cellrowborder" valign="top" width="15.13151315131513%" id="mcps1.2.4.1.2"><p id="p429918274517"><a name="p429918274517"></a><a name="p429918274517"></a>用途</p>
</th>
<th class="cellrowborder" valign="top" width="59.75597559755976%" id="mcps1.2.4.1.3"><p id="p12997271757"><a name="p12997271757"></a><a name="p12997271757"></a>获取途径</p>
</th>
</tr>
</thead>
<tbody><tr id="row167343191518"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p467443191517"><a name="p467443191517"></a><a name="p467443191517"></a>bash</p>
</td>
<td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p0674153114151"><a name="p0674153114151"></a><a name="p0674153114151"></a>命令行处理工具</p>
</td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p116746312151"><a name="p116746312151"></a><a name="p116746312151"></a>系统配置</p>
</td>
</tr>
<tr id="row14885193315201"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p137174662119"><a name="p137174662119"></a><a name="p137174662119"></a>编译基础软件包(仅ubuntu 20+需要)</p>
</td>
<td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p258814561424"><a name="p258814561424"></a><a name="p258814561424"></a>编译依赖的基础软件包</p>
</td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p1749611716181"><a name="p1749611716181"></a><a name="p1749611716181"></a>通过互联网获取</p>
</td>
</tr>
<tr id="row52253812238"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p28007392236"><a name="p28007392236"></a><a name="p28007392236"></a>dosfstools、mtools、mtd-utils</p>
</td>
<td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p98008390232"><a name="p98008390232"></a><a name="p98008390232"></a>文件打包工具</p>
</td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p280018394233"><a name="p280018394233"></a><a name="p280018394233"></a>通过apt-get install安装</p>
</td>
</tr>
<tr id="row29204072315"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p5921190162318"><a name="p5921190162318"></a><a name="p5921190162318"></a>Java 虚拟机环境</p>
</td>
<td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p17921110152311"><a name="p17921110152311"></a><a name="p17921110152311"></a>编译、调试和运行Java程序</p>
</td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p16921805237"><a name="p16921805237"></a><a name="p16921805237"></a>通过apt-get install安装</p>
</td>
</tr>
</tbody>
</table>
## 安装Linux服务器工具<a name="section182916865219"></a>
>![](public_sys-resources/icon-notice.gif) **须知:**
>- 如果通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装LLVM、hc-gen编译工具。
>- (推荐)如果通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装hc-gen编译工具。安装hc-gen编译工具时,请确保编译工具的环境变量路径唯一。
### 将Linux shell改为bash<a name="section1715027152617"></a>
查看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
```
### 安装编译依赖基础软件(仅Ubuntu 20+需要)<a name="section45512412251"></a>
执行以下命令进行安装:
```
sudo apt-get install build-essential && 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
```
### 安装文件打包工具<a name="section1969111820270"></a>
1. 打开Linux编译服务器终端。
2. 运行如下命令,安装dosfstools。
```
sudo apt-get install dosfstools
```
3. 运行如下命令,安装mtools。
```
sudo apt-get install mtools
```
4. 运行如下命令,安装mtd-utils。
```
sudo apt-get install mtd-utils
```
### 安装Java 虚拟机环境<a name="section1692618112713"></a>
1. 打开Linux编译服务器终端。
2. 安装Java运行时环境(JRE)。
```
sudo apt-get install default-jre
```
3. 安装Java sdk开发工具包。
```
sudo apt-get install default-jdk
```
# 安装开发板环境<a name="ZH-CN_TOPIC_0000001152389293"></a>
- [Hi3518环境搭建](#section1724111409282)
- [硬件要求](#section487353718276)
- [软件要求](#section17315193935817)
- [安装Linux服务器工具](#section8831868501)
- [将Linux shell改为bash](#section1715027152617)
- [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251)
- [安装文件打包工具](#section1686964015274)
- [安装hc-gen](#section18706403274)
## Hi3518环境搭建<a name="section1724111409282"></a>
### 硬件要求<a name="section487353718276"></a>
- Hi3518EV300 IoT Camera开发板
- USB转串口线、网线(Windows工作台通过USB转串口线、网线与开发板连接)
各硬件连接关系如下图所示。
**图 1** 硬件连线图<a name="fig8211468392"></a>
![](figures/硬件连线图-3.png "硬件连线图-3")
### 软件要求<a name="section17315193935817"></a>
>![](public_sys-resources/icon-notice.gif) **须知:**
>本节描述安装包方式搭建编译环境的操作步骤。如果是Docker方式安装编译环境,请跳过此章节以及下述[安装Linux服务器工具](#section8831868501)章节。
Hi3518开发板对Linux服务器通用环境配置需要的工具及其获取途径如下表所示。
**表 1** Linux服务器开发工具及获取途径
<a name="table15485545145811"></a>
<table><thead align="left"><tr id="row1748610451588"><th class="cellrowborder" valign="top" width="23.332333233323332%" id="mcps1.2.4.1.1"><p id="p13486154545816"><a name="p13486154545816"></a><a name="p13486154545816"></a>开发工具</p>
</th>
<th class="cellrowborder" valign="top" width="14.65146514651465%" id="mcps1.2.4.1.2"><p id="p44867452589"><a name="p44867452589"></a><a name="p44867452589"></a>用途</p>
</th>
<th class="cellrowborder" valign="top" width="62.016201620162015%" id="mcps1.2.4.1.3"><p id="p1748619458583"><a name="p1748619458583"></a><a name="p1748619458583"></a>获取途径</p>
</th>
</tr>
</thead>
<tbody><tr id="row18630134151917"><td class="cellrowborder" valign="top" width="23.332333233323332%" headers="mcps1.2.4.1.1 "><p id="p1563113417199"><a name="p1563113417199"></a><a name="p1563113417199"></a>bash</p>
</td>
<td class="cellrowborder" valign="top" width="14.65146514651465%" headers="mcps1.2.4.1.2 "><p id="p463193418190"><a name="p463193418190"></a><a name="p463193418190"></a>命令行处理工具</p>
</td>
<td class="cellrowborder" valign="top" width="62.016201620162015%" headers="mcps1.2.4.1.3 "><p id="p1063118344191"><a name="p1063118344191"></a><a name="p1063118344191"></a>系统配置</p>
</td>
</tr>
<tr id="row7598468212"><td class="cellrowborder" valign="top" width="23.332333233323332%" headers="mcps1.2.4.1.1 "><p id="p659815642111"><a name="p659815642111"></a><a name="p659815642111"></a>编译基础软件包(仅ubuntu 20+需要)</p>
</td>
<td class="cellrowborder" valign="top" width="14.65146514651465%" headers="mcps1.2.4.1.2 "><p id="p137174662119"><a name="p137174662119"></a><a name="p137174662119"></a>编译依赖的基础软件包</p>
</td>
<td class="cellrowborder" valign="top" width="62.016201620162015%" headers="mcps1.2.4.1.3 "><p id="p125983652118"><a name="p125983652118"></a><a name="p125983652118"></a>通过互联网获取</p>
</td>
</tr>
<tr id="row08231641105420"><td class="cellrowborder" valign="top" width="23.332333233323332%" headers="mcps1.2.4.1.1 "><p id="p1682494111548"><a name="p1682494111548"></a><a name="p1682494111548"></a>dosfstools、mtools、mtd-utils</p>
</td>
<td class="cellrowborder" valign="top" width="14.65146514651465%" headers="mcps1.2.4.1.2 "><p id="p1362445934918"><a name="p1362445934918"></a><a name="p1362445934918"></a>文件打包工具</p>
</td>
<td class="cellrowborder" valign="top" width="62.016201620162015%" headers="mcps1.2.4.1.3 "><p id="p1262475944916"><a name="p1262475944916"></a><a name="p1262475944916"></a>通过apt-get install安装</p>
</td>
</tr>
</tbody>
</table>
## 安装Linux服务器工具<a name="section8831868501"></a>
>![](public_sys-resources/icon-notice.gif) **须知:**
>- 如果通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装hc-gen编译工具。
>- (推荐)如果通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装hc-gen编译工具。安装hc-gen编译工具时,请确保编译工具的环境变量路径唯一。
### 将Linux shell改为bash<a name="section1715027152617"></a>
查看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
```
### 安装编译依赖基础软件(仅Ubuntu 20+需要)<a name="section45512412251"></a>
执行以下命令进行安装:
```
sudo apt-get install build-essential && 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
```
### 安装文件打包工具<a name="section1686964015274"></a>
1. 打开Linux编译服务器终端。
2. 运行如下命令,安装dosfstools。
```
sudo apt-get install dosfstools
```
3. 运行如下命令,安装mtools。
```
sudo apt-get install mtools
```
4. 运行如下命令,安装mtd-utils。
```
sudo apt-get install mtd-utils
```
### 安装hc-gen<a name="section18706403274"></a>
1. 打开Linux编译服务器终端。
2. [下载hc-gen工具](https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar)
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
```
......@@ -328,7 +328,7 @@ sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get
> ```
>3. 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
> ```
> export PATH=/opt/gcc_riscv32/bin:$PATH
> export PATH=~/gcc_riscv32/bin:$PATH
> ```
```
......@@ -338,7 +338,7 @@ sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
```
export PATH=/opt/gcc_riscv32/bin:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
```
17. 生效环境变量。
......
......@@ -59,7 +59,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按
</td>
<td class="cellrowborder" valign="top" width="38.54385438543855%" headers="mcps1.2.4.1.2 "><p id="p3213132491711"><a name="p3213132491711"></a><a name="p3213132491711"></a>快速熟悉<span id="text203751321355"><a name="text203751321355"></a><a name="text203751321355"></a>OpenHarmony</span>环境搭建、编译、烧录、调测、运行。</p>
</td>
<td class="cellrowborder" valign="top" width="33.58335833583358%" headers="mcps1.2.4.1.3 "><a name="ul1222811151378"></a><a name="ul1222811151378"></a><ul id="ul1222811151378"><li><a href="概述.md">轻量和小型系统快速入门</a></li><li><a href="概述-6.md">标准系统快速入门</a></li></ul>
<td class="cellrowborder" valign="top" width="33.58335833583358%" headers="mcps1.2.4.1.3 "><a name="ul1222811151378"></a><a name="ul1222811151378"></a><ul id="ul1222811151378"><li><a href="概述.md">轻量和小型系统快速入门</a></li><li><a href="概述-7.md">标准系统快速入门</a></li></ul>
</td>
</tr>
<tr id="row421315248178"><td class="cellrowborder" valign="top" width="27.872787278727873%" headers="mcps1.2.4.1.1 "><p id="p0213724191718"><a name="p0213724191718"></a><a name="p0213724191718"></a>基础能力使用</p>
......
# 常见问题<a name="ZH-CN_TOPIC_0000001105208752"></a>
- [安装python3过程中,提示“configure: error: no acceptable C compiler found in $PATH”](#section1221016541119)
- [安装python3过程中,提示“-bash: make: command not found”](#section1913477181213)
- [安装python3过程中,提示“zlib not available”](#section108211415131210)
- [安装python3过程中,提示“No module named '\_ctypes'”](#section2062268124)
- [编译构建过程中,提示“No module named 'Crypto'”](#section982315398121)
- [编译构建过程中,提示“No module named 'ecdsa'”](#section102035451216)
- [编译构建过程中,提示“Could not find a version that satisfies the requirement six\>=1.9.0”](#section4498158162320)
- [编译构建过程中,提示找不到“-lgcc”](#section11181036112615)
- [编译构建过程中,提示找不到“python”](#section1571810194619)
- [安装 kconfiglib时,遇到lsb\_release错误](#section691681635814)
## 安装python3过程中,提示“configure: error: no acceptable C compiler found in $PATH”<a name="section1221016541119"></a>
- **现象描述**
安装python3过程中出现以下错误:
```
configure: error: no acceptable C compiler found in $PATH. See 'config.log' for more details
```
- **可能原因**
环境中未安装“gcc”。
- **解决办法**
1、通过命令“apt-get install gcc”在线安装。
2、完成后,重新安装python3。
## 安装python3过程中,提示“-bash: make: command not found”<a name="section1913477181213"></a>
- **现象描述**
安装python3过程中出现以下错误:
```
-bash: make: command not found
```
- **可能原因**
环境中未安装“make”。
- **解决办法**
1、通过命令“apt-get install make”在线安装。
2、完成后,重新安装python3。
## 安装python3过程中,提示“zlib not available”<a name="section108211415131210"></a>
- **现象描述**
安装python3过程中出现以下错误:
```
zipimport.ZipImportError: can't decompress data; zlib not avaliable
```
- **可能原因**
环境中未安装“zlib”。
- **解决办法**
方法1:通过命令“apt-get install zlib”在线安装。
方法2:如果软件源中没有该软件,请从“www.zlib.net”下载版本代码,并离线安装。
![](figures/10.png)
完成下载后,通过以下命令安装:
```
# tar xvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11
# ./configure
# make && make install
```
完成后,重新安装python3。
## 安装python3过程中,提示“No module named '\_ctypes'”<a name="section2062268124"></a>
- **现象描述**
安装python3过程中出现以下错误:
```
ModuleNotFoundError:No module named ‘_ctypes’
```
- **可能原因**
环境中未安装“libffi”和“libffi-devel”。
- **解决办法**
1、通过命令“apt-get install libffi\* -y”,在线安装。
2、完成后,重新安装python3。
## 编译构建过程中,提示“No module named 'Crypto'”<a name="section982315398121"></a>
- **现象描述**
编译构建过程中出现以下错误:
```
ModuleNotFoundError: No module named 'Crypto'
```
- **可能原因**
环境中未安装“Crypto”。
- **解决办法**
方法1:通过命令“pip3 install Crypto”,在线安装。
方法2:离线安装
通过网页[https://pypi.org/project/pycrypto/\#files](https://pypi.org/project/pycrypto/#files),下载源码。
![](figures/zh-cn_image_0000001151976061.png)
将源码放置在Linux服务器中,解压,并安装“python3 setup.py install”。
完成上述安装后,重新构建。
## 编译构建过程中,提示“No module named 'ecdsa'”<a name="section102035451216"></a>
- **现象描述**
编译构建过程中出现以下错误:
```
ModuleNotFoundError:No module named 'ecdsa'
```
- **可能原因**
环境中未安装“ecdsa”。
- **解决办法**
方法1:通过命令“pip3 install ecdsa”,在线安装。
方法2:离线安装
通过网页[https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files),下载安装包。
![](figures/zh-cn_image_0000001152176131.png)
将安装包放置Linux服务器中,并安装“pip3 install ecdsa-0.15-py2.py3-none-any.whl”。
完成上述安装后,重新构建。
## 编译构建过程中,提示“Could not find a version that satisfies the requirement six\>=1.9.0”<a name="section4498158162320"></a>
- **现象描述**
编译构建过程中出现以下错误:
```
Could not find a version that satisfies the requirement six>=1.9.0
```
- **可能原因**
环境中未安装合适的“six”。
- **解决办法**
方法1:通过命令“pip3 install six”,在线安装。
方法2:离线安装
通过网页[https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files),下载安装包。
![](figures/zh-cn_image_0000001152056191.png)
将源码放置在Linux服务器中,并安装“pip3 install six-1.14.0-py2.py3-none-any.whl”。
完成上述安装后,重新构建。
## 编译构建过程中,提示找不到“-lgcc”<a name="section11181036112615"></a>
- **现象描述**
编译构建过程中出现以下错误:
```
riscv32-unknown-elf-ld: cannot find -lgcc
```
- **可能原因**
交叉编译器gcc\_riscv32的PATH添加错误,如下,在"bin"后多添加了一个“/”,应该删除。
```
~/gcc_riscv32/bin/:/data/toolchain/
```
- **解决办法**
重新修改gcc\_riscv32的PATH,将多余的“/”删除。
```
~/gcc_riscv32/bin:/data/toolchain/
```
## 编译构建过程中,提示找不到“python”<a name="section1571810194619"></a>
- **现象描述**
编译构建过程中出现以下错误:
```
-bash: /usr/bin/python: No such file or directory
```
- **可能原因**1
没有装python。
- **解决办法**
请按照 [安装Python环境](../quick-start/Ubuntu编译环境准备.md)
- **可能原因2**
![](figures/zh-cn_image_0000001105376252.png)
- **解决办法**
usr/bin目录下没有python软链接,请运行以下命令添加软链接:
```
# cd /usr/bin/
# which python3
# ln -s /usr/local/bin/python3 python
# python --version
```
例:
![](figures/zh-cn_image_0000001105216296.png)
## 安装 kconfiglib时,遇到lsb\_release错误<a name="section691681635814"></a>
- **现象描述**
安装kconfiglib过程中遇到如下错误打印:
```
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
```
- **可能原因**
lsb\_release模块基于的python版本与现有python版本不一致
- **解决办法**
执行"find / -name lsb\_release",找到lsb\_release位置并删除,如:"sudo rm -rf /usr/bin/lsb\_release"
# 常见问题<a name="ZH-CN_TOPIC_0000001114978406"></a>
- **现象描述**
Linux编译服务器终端输入不识别的命令时,提示"ImportError: No module named apt\_pkg"
- **可能原因**
python3 apt安装兼容性问题。
- **解决办法**
执行如下命令重新安装python3-apt。
```
sudo apt-get remove python3-apt
sudo apt-get install python3-apt
```
# 常见问题<a name="ZH-CN_TOPIC_0000001105368702"></a>
- [烧写选择串口后提示失败](#section627268185113)
- [Windows电脑与单板网络连接失败](#section195391036568)
- [烧写失败](#section571164016565)
- [编译构建过程中,提示找不到“python”](#section1039835245619)
- [串口无回显](#section14871149155911)
## 烧写选择串口后提示失败<a name="section627268185113"></a>
- **现象描述**
点击烧写并选择串口后,出现Error: Opening COMxx: Access denied。
**图 1** 打开串口失败图<a name="fig066333283916"></a>
![](figures/打开串口失败图.png "打开串口失败图")
- **可能原因**
串口已经被占用。
- **解决办法**
1. 按图依次选择下拉框,查找带有serial-xx的终端
**图 2** 查找是否存在占用串口的终端<a name="fig165994164420"></a>
![](figures/查找是否存在占用串口的终端.png "查找是否存在占用串口的终端")
2. 点击标号中的垃圾桶图标,关闭串口。
**图 3** 关闭串口终端<a name="fig7911282453"></a>
![](figures/关闭串口终端.png "关闭串口终端")
3. 重新点击烧写,选择串口并开始烧写程序
**图 4** 重新启动烧写任务<a name="fig1138624316485"></a>
![](figures/changjian1.png)
## Windows电脑与单板网络连接失败<a name="section195391036568"></a>
- **现象描述**
点击烧写并选择串口后,无法获取文件。
**图 5** 网络不通,单板无法获取文件图<a name="fig5218920223"></a>
![](figures/网络不通-单板无法获取文件图.png "网络不通-单板无法获取文件图")
- **可能原因**
单板网络与Windows电脑不联通。
Windows电脑防火墙未允许Visual Studio Code联网。
- **解决方法**
1. 检查网线是否连接。
2. 点击Windows防火墙。
**图 6** 网络防火墙设置图<a name="fig62141417794"></a>
![](figures/网络防火墙设置图.png "网络防火墙设置图")
3. 点击“允许应用通过防火墙”。
**图 7** 防火墙和网络保护界面图<a name="fig20703151111116"></a>
![](figures/防火墙和网络保护界面图.png "防火墙和网络保护界面图")
4. 查找Visual Studio Code应用。
**图 8** 查找Visual Studio Code应用图<a name="fig462316612165"></a>
![](figures/查找Visual-Studio-Code应用图.png "查找Visual-Studio-Code应用图")
5. 勾选Visual Studio Code的专用和公用网络的访问权限。
**图 9** 允许Visual Studio Code应用访问网络<a name="fig132725269184"></a>
![](figures/允许Visual-Studio-Code应用访问网络.png "允许Visual-Studio-Code应用访问网络")
## 烧写失败<a name="section571164016565"></a>
- **现象描述**
点击烧写并选择串口后,出现无法烧写的情况。
- **可能原因**
安装IDE插件DevEco后未重启。
- **解决方法**
重启IDE。
## 编译构建过程中,提示找不到“python”<a name="section1039835245619"></a>
- **现象描述**
![](figures/zh-cn_image_0000001105056492.png)
- **可能原因1**
没有装python。
- **解决办法**
请按照[安装python](../quick-start/Ubuntu编译环境准备.md)。
- **可能原因2**
![](figures/zh-cn_image_0000001151976069.png)
- **解决办法**
usr/bin目录下没有python软链接,请运行以下命令:
```
# cd /usr/bin/
# which python3
# ln -s /usr/local/bin/python3 python
# python --version
```
例:
![](figures/zh-cn_image_0000001152176139.png)
## 串口无回显<a name="section14871149155911"></a>
- **现象描述**
串口显示已连接,重启单板后,回车无任何回显。
- **可能原因1**
串口连接错误。
- **解决办法**
修改串口号。
请查看设备管理器,确认连接单板的串口与终端中连接串口是否一致,若不一致,请按镜像运行内[步骤1](../quick-start/运行Hello-OHOS.md)修改串口号。
- **可能原因2**
单板U-boot被损坏。
- **解决办法**
烧写U-boot。
若上述步骤依旧无法连接串口,可能由于单板U-boot损坏,按下述步骤烧写U-boot。
1. 获取引导文件U-boot。
>![](public_sys-resources/icon-notice.gif) **须知:**
>单板的U-boot文件请在开源包中获取:
>Hi3516DV300:device\\hisilicon\\hispark\_taurus\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3516dv300.bin
>Hi3518EV300:device\\hisilicon\\hispark\_aries\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3518ev300.bin
2. 根据USB烧写步骤烧写U-boot文件。
按照[Hi3516系列USB烧写步骤](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_upload-0000001052148681)/[Hi3518系列USB烧写步骤](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3518_upload-0000001057313128)中描述的USB烧写方法,选择对应单板的U-boot文件进行烧写。
3. 烧写完成后,登录串口如下图所示。
**图 10** U-boot烧写完成串口显示图<a name="zh-cn_topic_0000001053466255_fig155914681910"></a>
![](figures/U-boot烧写完成串口显示图.png "U-boot烧写完成串口显示图")
# 常见问题<a name="ZH-CN_TOPIC_0000001152168589"></a>
- [烧写选择串口后提示失败](#section1498892119619)
- [Windows电脑与单板网络连接失败](#section8512971816)
- [烧写失败](#section1767804111198)
- [编译构建过程中,提示找不到“python”](#zh-cn_topic_0000001053466255_section1039835245619)
- [串口无回显](#zh-cn_topic_0000001053466255_section14871149155911)
## 烧写选择串口后提示失败<a name="section1498892119619"></a>
- **现象描述**
点击烧写并选择串口后,出现Error: Opening COMxx: Access denied。
**图 1** 打开串口失败图<a name="zh-cn_topic_0000001053466255_fig066333283916"></a>
![](figures/打开串口失败图-7.png "打开串口失败图-7")
- **可能原因**
串口已经被占用。
- **解决办法**
1. 按图依次选择下拉框,查找带有serial-xx的终端
**图 2** 查找是否存在占用串口的终端<a name="zh-cn_topic_0000001053466255_fig165994164420"></a>
![](figures/查找是否存在占用串口的终端-8.png "查找是否存在占用串口的终端-8")
2. 点击标号中的垃圾桶图标,关闭串口。
**图 3** 关闭串口终端<a name="zh-cn_topic_0000001053466255_fig7911282453"></a>
![](figures/关闭串口终端-9.png "关闭串口终端-9")
3. 重新点击烧写,选择串口并开始烧写程序
**图 4** 重新启动烧写任务<a name="zh-cn_topic_0000001053466255_fig1138624316485"></a>
![](figures/changjian1-10.png)
## Windows电脑与单板网络连接失败<a name="section8512971816"></a>
- **现象描述**
点击烧写并选择串口后,无法获取文件。
**图 5** 网络不通,单板无法获取文件图<a name="zh-cn_topic_0000001053466255_fig5218920223"></a>
![](figures/网络不通-单板无法获取文件图-11.png "网络不通-单板无法获取文件图-11")
- **可能原因**
单板网络与Windows电脑不联通。
Windows电脑防火墙未允许Visual Studio Code联网。
- **解决方法**
1. 检查网线是否连接。
2. 点击Windows防火墙。
**图 6** 网络防火墙设置图<a name="zh-cn_topic_0000001053466255_fig62141417794"></a>
![](figures/网络防火墙设置图-12.png "网络防火墙设置图-12")
3. 点击“允许应用通过防火墙”。
**图 7** 防火墙和网络保护界面图<a name="zh-cn_topic_0000001053466255_fig20703151111116"></a>
![](figures/防火墙和网络保护界面图-13.png "防火墙和网络保护界面图-13")
4. 查找Visual Studio Code应用。
**图 8** 查找Visual Studio Code应用图<a name="zh-cn_topic_0000001053466255_fig462316612165"></a>
![](figures/查找Visual-Studio-Code应用图-14.png "查找Visual-Studio-Code应用图-14")
5. 勾选Visual Studio Code的专用和公用网络的访问权限。
**图 9** 允许Visual Studio Code应用访问网络<a name="zh-cn_topic_0000001053466255_fig132725269184"></a>
![](figures/允许Visual-Studio-Code应用访问网络-15.png "允许Visual-Studio-Code应用访问网络-15")
## 烧写失败<a name="section1767804111198"></a>
- **现象描述**
点击烧写并选择串口后,出现无法烧写的情况。
- **可能原因**
安装IDE插件DevEco后未重启。
- **解决方法**
重启IDE。
## 编译构建过程中,提示找不到“python”<a name="zh-cn_topic_0000001053466255_section1039835245619"></a>
- **现象描述**
![](figures/zh-cn_image_0000001105376260.png)
- **可能原因1**
没有装python。
- **解决办法**
请按照[安装python](../quick-start/Ubuntu编译环境准备.md)。
- **可能原因2**
![](figures/zh-cn_image_0000001105216304.png)
- **解决办法**
usr/bin目录下没有python软链接,请运行以下命令:
```
# cd /usr/bin/
# which python3
# ln -s /usr/local/bin/python3 python
# python --version
```
例:
![](figures/zh-cn_image_0000001152256235.png)
## 串口无回显<a name="zh-cn_topic_0000001053466255_section14871149155911"></a>
- **现象描述**
串口显示已连接,重启单板后,回车无任何回显。
- **可能原因1**
串口连接错误。
- **解决办法**
修改串口号。
请查看设备管理器,确认连接单板的串口与终端中连接串口是否一致,若不一致,请按镜像运行内[步骤1](../quick-start/运行Hello-OHOS.md)修改串口号。
- **可能原因2**
单板U-boot被损坏。
- **解决办法**
烧写U-boot。
若上述步骤依旧无法连接串口,可能由于单板U-boot损坏,按下述步骤烧写U-boot。
1. 获取引导文件U-boot。
>![](public_sys-resources/icon-notice.gif) **须知:**
>单板的U-boot文件请在开源包中获取:
>Hi3516DV300:device\\hisilicon\\hispark\_taurus\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3516dv300.bin
>Hi3518EV300:device\\hisilicon\\hispark\_aries\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3518ev300.bin
2. 根据USB烧写步骤烧写U-boot文件。
按照[Hi3516系列USB烧写步骤](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_upload-0000001052148681)/[Hi3518系列USB烧写步骤](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3518_upload-0000001057313128)中描述的USB烧写方法,选择对应单板的U-boot文件进行烧写。
3. 烧写完成后,登录串口如下图所示。
![](figures/zh-cn_image_0000001105536118.png)
......@@ -3,6 +3,7 @@
- [hb 安装过程中出现乱码、段错误](#section411894616119)
- [hb 安装过程中提示"cannot import 'sysconfig' from 'distutils'"](#section629417571626)
- [hb 安装过程中提示"module 'platform' has no attribute 'linux\_distribution'"](#section10871523332)
- [hb 安装过程中提示"Could not find a version that satisfies the requirement ohos-build"](#section47351657163213)
- [Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt\_pkg”](#section159891252236)
## hb 安装过程中出现乱码、段错误<a name="section411894616119"></a>
......@@ -67,6 +68,27 @@
```
## hb 安装过程中提示"Could not find a version that satisfies the requirement ohos-build"<a name="section47351657163213"></a>
- **现象描述**
执行“python3 -m pip install --user ohos-build”提示"Could not find a version that satisfies the requirement ohos-build"
- **可能原因**
可能是网络环境较差导致的安装失败。
- **解决办法**
1. 请检查网络连接是否正常。如果网络有问题,请修复网络问题后重新安装。
2. 若网络正常,请尝试指定临时pypi源的方式安装:
```
python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ohos-build
```
## Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt\_pkg”<a name="section159891252236"></a>
- **现象描述**
......
此差异已折叠。
# 搭建系统环境<a name="ZH-CN_TOPIC_0000001151881067"></a>
OpenHarmony可以使用DevEco Device Tool进行开发、编译、烧录、调测等。
当前DevEco Device Tool发布了Windows和Ubuntu两个版本,本文以Windows版本进行相应开发介绍。
使用Ubuntu版本的开发者可参阅[操作指导](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905)
当前Windows版本(除Hi3861外)尚不支持在Windows平台下编译,需要在Ubuntu平台下编译,下文将介绍如何搭建对应的OpenHarmony轻量和小型系统的开发环境和编译环境。
- **[概述](概述-0.md)**
- **[Windows开发环境准备](Windows开发环境准备.md)**
......
# 标准系统入门<a name="ZH-CN_TOPIC_0000001111221726"></a>
- **[概述](概述-6.md)**
- **[概述](概述-7.md)**
- **[环境搭建](环境搭建.md)**
- **[开发步骤](开发步骤-11.md)**
- **[开发步骤](开发步骤-12.md)**
# 概述<a name="ZH-CN_TOPIC_0000001119076372"></a>
OpenHarmony可以使用DevEco Device Tool进行开发、编译、烧录、调测等。
当前DevEco Device Tool发布了Windows和Ubuntu两个版本,本文以Windows版本进行相应开发介绍。
使用Ubuntu版本的开发者可参阅[操作指导](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905)
当前Windows版本(除Hi3861外)尚不支持在Windows平台下编译,需要在Ubuntu平台下编译,下文将介绍如何搭建对应的OpenHarmony轻量和小型系统的开发环境和编译环境。
# 概述<a name="ZH-CN_TOPIC_0000001135547521"></a>
# 概述<a name="ZH-CN_TOPIC_0000001163428879"></a>
- [简介](#section18217135811916)
- [环境要求](#section466851916410)
- [硬件要求](#section19682305453)
- [软件要求](#section1595725202314)
## 简介<a name="section18217135811916"></a>
OpenHarmony标准系统当前可以使用DevEco Device Tool在Windows平台进行开发和烧录,使用Linux环境进行编译。本文接下来将介绍如何进行对应环境的搭建。
>![](public_sys-resources/icon-note.gif) **说明:**
>OpenHarmony标准系统的Windows开发环境准备跟轻量和小型系统的对应操作一致,所以完成轻量和小型系统Windows开发环境准备的开发者可以跳过本文[第2章节](Windows开发环境准备-8.md)。
## 环境要求<a name="section466851916410"></a>
### 硬件要求<a name="section19682305453"></a>
- Linux服务器
- Windows工作台(主机电脑)
### 软件要求<a name="section1595725202314"></a>
**表 1** 开发平台要求
<a name="tc50585b2b3fe43f7835154789b0e25af"></a>
<table><thead align="left"><tr id="ra9df6acc53154b819d5f86d885d994de"><th class="cellrowborder" valign="top" width="8.53%" id="mcps1.2.5.1.1"><p id="a999bb40532eb4f74a7383e1e776bb94a"><a name="a999bb40532eb4f74a7383e1e776bb94a"></a><a name="a999bb40532eb4f74a7383e1e776bb94a"></a>平台</p>
</th>
<th class="cellrowborder" valign="top" width="14.49%" id="mcps1.2.5.1.2"><p id="ae63cf791fbe348d3b907d20fc4927df8"><a name="ae63cf791fbe348d3b907d20fc4927df8"></a><a name="ae63cf791fbe348d3b907d20fc4927df8"></a>软件</p>
</th>
<th class="cellrowborder" valign="top" width="47%" id="mcps1.2.5.1.3"><p id="a54c4c80c43c84cb187342865a1d2b51e"><a name="a54c4c80c43c84cb187342865a1d2b51e"></a><a name="a54c4c80c43c84cb187342865a1d2b51e"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="29.98%" id="mcps1.2.5.1.4"><p id="a11e8d096fb204378a63d8805cd6d1f88"><a name="a11e8d096fb204378a63d8805cd6d1f88"></a><a name="a11e8d096fb204378a63d8805cd6d1f88"></a>备注</p>
</th>
</tr>
</thead>
<tbody><tr id="row117591159175819"><td class="cellrowborder" valign="top" width="8.53%" headers="mcps1.2.5.1.1 "><p id="a0c1290183f2548898dbfc516a4db2c4b"><a name="a0c1290183f2548898dbfc516a4db2c4b"></a><a name="a0c1290183f2548898dbfc516a4db2c4b"></a>Linux编译服务器</p>
</td>
<td class="cellrowborder" valign="top" width="14.49%" headers="mcps1.2.5.1.2 "><p id="a687efa8001f140488dc1da9a2ee8f6d1"><a name="a687efa8001f140488dc1da9a2ee8f6d1"></a><a name="a687efa8001f140488dc1da9a2ee8f6d1"></a>操作系统</p>
</td>
<td class="cellrowborder" valign="top" width="47%" headers="mcps1.2.5.1.3 "><p id="ace724e00c9094eccb8c600d6ad426ed8"><a name="ace724e00c9094eccb8c600d6ad426ed8"></a><a name="ace724e00c9094eccb8c600d6ad426ed8"></a>Ubuntu18.04及以上64位系统版本,Shell使用bash。服务器硬件规格要求见下:</p>
<a name="ul152485517227"></a><a name="ul152485517227"></a><ul id="ul152485517227"><li>硬盘:至少400G</li><li>CPU:至少8核</li><li>内存:至少32G</li></ul>
<p id="p17176265243"><a name="p17176265243"></a><a name="p17176265243"></a>通常系统默认安装samba、vim等常用软件,需要做适当适配以支持Linux文件共享。</p>
</td>
<td class="cellrowborder" rowspan="2" valign="top" width="29.98%" headers="mcps1.2.5.1.4 "><p id="a4d0e2c8444484554ab58949ce322be32"><a name="a4d0e2c8444484554ab58949ce322be32"></a><a name="a4d0e2c8444484554ab58949ce322be32"></a>开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。</p>
</td>
</tr>
<tr id="r85c4bf56ff3244e48db9d2f5b622b340"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="a8e99fd0262cb4489b70cf86c2144c294"><a name="a8e99fd0262cb4489b70cf86c2144c294"></a><a name="a8e99fd0262cb4489b70cf86c2144c294"></a>Windows工作台</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="a44d6164ce2e9421f9ade362f600c2815"><a name="a44d6164ce2e9421f9ade362f600c2815"></a><a name="a44d6164ce2e9421f9ade362f600c2815"></a>操作系统</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="a1c17349e334a44ada5c5f150457fe17d"><a name="a1c17349e334a44ada5c5f150457fe17d"></a><a name="a1c17349e334a44ada5c5f150457fe17d"></a>Windows XP/Windows7/Windows10</p>
</td>
</tr>
</tbody>
</table>
开发者可以通过本文快速掌握OpenHarmony标准系统的环境搭建、编译、烧录、启动等操作。本文将以当前推荐的Hi3516DV300开发板为例进行说明。
# 概述<a name="ZH-CN_TOPIC_0000001135547521"></a>
- [简介](#section18217135811916)
- [环境要求](#section466851916410)
- [硬件要求](#section19682305453)
- [软件要求](#section1595725202314)
## 简介<a name="section18217135811916"></a>
OpenHarmony标准系统当前可以使用DevEco Device Tool在Windows平台进行开发和烧录,使用Linux环境进行编译。本文接下来将介绍如何进行对应环境的搭建。
>![](public_sys-resources/icon-note.gif) **说明:**
>OpenHarmony标准系统的Windows开发环境准备跟轻量和小型系统的对应操作一致,所以完成轻量和小型系统Windows开发环境准备的开发者可以跳过本文[第2章节](Windows开发环境准备-9.md)。
## 环境要求<a name="section466851916410"></a>
### 硬件要求<a name="section19682305453"></a>
- Linux服务器
- Windows工作台(主机电脑)
### 软件要求<a name="section1595725202314"></a>
**表 1** 开发平台要求
<a name="tc50585b2b3fe43f7835154789b0e25af"></a>
<table><thead align="left"><tr id="ra9df6acc53154b819d5f86d885d994de"><th class="cellrowborder" valign="top" width="8.53%" id="mcps1.2.5.1.1"><p id="a999bb40532eb4f74a7383e1e776bb94a"><a name="a999bb40532eb4f74a7383e1e776bb94a"></a><a name="a999bb40532eb4f74a7383e1e776bb94a"></a>平台</p>
</th>
<th class="cellrowborder" valign="top" width="14.49%" id="mcps1.2.5.1.2"><p id="ae63cf791fbe348d3b907d20fc4927df8"><a name="ae63cf791fbe348d3b907d20fc4927df8"></a><a name="ae63cf791fbe348d3b907d20fc4927df8"></a>软件</p>
</th>
<th class="cellrowborder" valign="top" width="47%" id="mcps1.2.5.1.3"><p id="a54c4c80c43c84cb187342865a1d2b51e"><a name="a54c4c80c43c84cb187342865a1d2b51e"></a><a name="a54c4c80c43c84cb187342865a1d2b51e"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="29.98%" id="mcps1.2.5.1.4"><p id="a11e8d096fb204378a63d8805cd6d1f88"><a name="a11e8d096fb204378a63d8805cd6d1f88"></a><a name="a11e8d096fb204378a63d8805cd6d1f88"></a>备注</p>
</th>
</tr>
</thead>
<tbody><tr id="row117591159175819"><td class="cellrowborder" valign="top" width="8.53%" headers="mcps1.2.5.1.1 "><p id="a0c1290183f2548898dbfc516a4db2c4b"><a name="a0c1290183f2548898dbfc516a4db2c4b"></a><a name="a0c1290183f2548898dbfc516a4db2c4b"></a>Linux编译服务器</p>
</td>
<td class="cellrowborder" valign="top" width="14.49%" headers="mcps1.2.5.1.2 "><p id="a687efa8001f140488dc1da9a2ee8f6d1"><a name="a687efa8001f140488dc1da9a2ee8f6d1"></a><a name="a687efa8001f140488dc1da9a2ee8f6d1"></a>操作系统</p>
</td>
<td class="cellrowborder" valign="top" width="47%" headers="mcps1.2.5.1.3 "><p id="ace724e00c9094eccb8c600d6ad426ed8"><a name="ace724e00c9094eccb8c600d6ad426ed8"></a><a name="ace724e00c9094eccb8c600d6ad426ed8"></a>Ubuntu18.04及以上64位系统版本,Shell使用bash。服务器硬件规格要求见下:</p>
<a name="ul152485517227"></a><a name="ul152485517227"></a><ul id="ul152485517227"><li>硬盘:至少400G</li><li>CPU:至少8核</li><li>内存:至少32G</li></ul>
<p id="p17176265243"><a name="p17176265243"></a><a name="p17176265243"></a>通常系统默认安装samba、vim等常用软件,需要做适当适配以支持Linux文件共享。</p>
</td>
<td class="cellrowborder" rowspan="2" valign="top" width="29.98%" headers="mcps1.2.5.1.4 "><p id="a4d0e2c8444484554ab58949ce322be32"><a name="a4d0e2c8444484554ab58949ce322be32"></a><a name="a4d0e2c8444484554ab58949ce322be32"></a>开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。</p>
</td>
</tr>
<tr id="r85c4bf56ff3244e48db9d2f5b622b340"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="a8e99fd0262cb4489b70cf86c2144c294"><a name="a8e99fd0262cb4489b70cf86c2144c294"></a><a name="a8e99fd0262cb4489b70cf86c2144c294"></a>Windows工作台</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="a44d6164ce2e9421f9ade362f600c2815"><a name="a44d6164ce2e9421f9ade362f600c2815"></a><a name="a44d6164ce2e9421f9ade362f600c2815"></a>操作系统</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="a1c17349e334a44ada5c5f150457fe17d"><a name="a1c17349e334a44ada5c5f150457fe17d"></a><a name="a1c17349e334a44ada5c5f150457fe17d"></a>Windows XP/Windows7/Windows10</p>
</td>
</tr>
</tbody>
</table>
# 环境搭建<a name="ZH-CN_TOPIC_0000001157501675"></a>
- **[概述](概述-7.md)**
- **[概述](概述-8.md)**
- **[Windows开发环境准备](Windows开发环境准备-8.md)**
- **[Windows开发环境准备](Windows开发环境准备-9.md)**
- **[Ubuntu编译环境准备](Ubuntu编译环境准备-9.md)**
- **[Ubuntu编译环境准备](Ubuntu编译环境准备-10.md)**
- **[常见问题](常见问题-10.md)**
- **[常见问题](常见问题-11.md)**
# 运行Hello OHOS<a name="ZH-CN_TOPIC_0000001105528572"></a>
- [新建应用程序](#section1550972416485)
- [编译](#section234175193114)
- [烧录](#section7609155824819)
- [镜像运行](#section17612105814480)
- [下一步学习](#section9712145420182)
本节指导开发者在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。
## 新建应用程序<a name="section1550972416485"></a>
1. 新建目录及源码
新建**applications/sample/camera/apps/src/helloworld.c**目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。
```
#include <stdio.h>
int main(int argc, char **argv)
{
printf("\n************************************************\n");
printf("\n\t\tHello OHOS!\n");
printf("\n************************************************\n\n");
return 0;
}
```
2. 新建编译组织文件
新建**applications/sample/camera/apps/BUILD.gn**文件,内容如下所示:
```
import("//build/lite/config/component/lite_component.gni")
lite_component("hello-OHOS") {
features = [ ":helloworld" ]
}
executable("helloworld") {
output_name = "helloworld"
sources = [ "src/helloworld.c" ]
include_dirs = []
defines = []
cflags_c = []
ldflags = []
}
```
3. 添加新组件
修改文件**build/lite/components/applications.json**,添加组件hello\_world\_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行):
```
{
"components": [
{
"component": "camera_sample_communication",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/communication"
],
"targets": [
"//applications/sample/camera/communication:sample"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##start##
{
"component": "hello_world_app",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/apps"
],
"targets": [
"//applications/sample/camera/apps:hello-OHOS"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##end##
{
"component": "camera_sample_app",
"description": "Camera related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/launcher",
"applications/sample/camera/cameraApp",
"applications/sample/camera/setting",
"applications/sample/camera/gallery",
"applications/sample/camera/media"
],
```
4. 修改单板配置文件
修改文件**vendor/hisilicon/hispark\_aries/config.json**,新增hello\_world\_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行):
```
{
"subsystem": "applications",
"components": [
##start##
{ "component": "hello_world_app", "features":[] },
##end##
{ "component": "camera_sample_app", "features":[] }
]
},
```
## 编译<a name="section234175193114"></a>
如果Linux编译环境通过Docker方式安装,具体编译过程请参见[Docker方式获取编译环境](../get-code/获取工具.md)的编译操作。如果Linux编译环境通过软件包方式安装,进入源码根目录,执行如下命令进行编译:
```
hb set(设置编译路径)
.(选择当前路径)
选择ipcamera_hispark_aries@hisilicon并回车
hb build -f(执行编译)
```
结果文件生成在out/hispark\_aries/ipcamera\_hispark\_aries目录下。
**图 1** 设置图例<a name="fig4305770509"></a>
![](figures/设置图例-4.png "设置图例-4")
>![](public_sys-resources/icon-notice.gif) **须知:**
>Hi3518EV300单板的U-boot文件获取路径:device/hisilicon/hispark\_aries/sdk\_liteos/uboot/out/boot/u-boot-hi3518ev300.bin
## 烧录<a name="section7609155824819"></a>
Hi3518开发板的代码烧录仅支持USB烧录方式。
1. 请连接好电脑和待烧录开发板,以Hi3518EV300为例,需要同时连接串口和USB口,具体可参考[Hi3518开发板介绍](https://device.harmonyos.com/cn/docs/start/introduce/oem_camera_start_hi3518-0000001050170473)
2. <a name="zh-cn_topic_0000001057313128_li46411811196"></a>打开电脑的设备管理器,查看并记录对应的串口号。
>![](public_sys-resources/icon-note.gif) **说明:**
>如果对应的串口异常,请根据[Hi3516/Hi3518系列开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。
![](figures/zh-cn_image_0000001073057176.png)
3. 打开DevEco Device Tool,在Projects中,点击**Settings**打开工程配置界面。
![](figures/zh-cn_image_0000001077956808.png)
4. 在“Partition Configuration”页签,设置待烧录文件信息,默认情况下,DevEco Device Tool已针对Hi3518系列开发板进行适配,无需单独修改。
5. 在“hi3518ev300”页签,设置烧录选项,包括upload\_port、upload\_partitions和upload\_protocol。
- upload\_port:选择步骤[2](#zh-cn_topic_0000001057313128_li46411811196)中查询的串口号。
- upload\_protocol:选择烧录协议,固定选择“hiburn-usb”。
- upload\_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。
![](figures/zh-cn_image_0000001096963405.png)
6. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。
7. 打开工程文件,点击![](figures/2021-01-27_170334-5.png)图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hi3518ev300\_fastboot下的**Erase**按钮,擦除U-Boot。
![](figures/zh-cn_image_0000001163529159.png)
8. 执行**Erase**擦除操作后,显示如下提示信息时,请重启开发板(下电再上电)。
![](figures/zh-cn_image_0000001078089378.png)
9. 重新上电后,显示如下信息时,表示擦除U-Boot成功。
![](figures/zh-cn_image_0000001073835952.png)
10. 擦除完成后,点击hi3518ev300下的**Upload**按钮,启动烧录。
![](figures/zh-cn_image_0000001163568181.png)
11. 启动烧录后,界面提示如下信息时,表示烧录成功。
![](figures/zh-cn_image_0000001073242197.png)
## 镜像运行<a name="section17612105814480"></a>
1. 连接串口。
>![](public_sys-resources/icon-notice.gif) **须知:**
>若无法连接串口,请参考[常见问题](../quick-start/常见问题-6.md)进行排查。
**图 2** 连接串口图<a name="fig056645018495"></a>
![](figures/chuankou1-6.png)
1. 单击**Monitor**打开串口。
2. 连续输入回车直到串口显示"hisilicon"。
3. 单板初次启动或修改启动参数,请进入[步骤2](#li9441185382314),否则进入[步骤3](#li6442853122312)。
2. <a name="li9441185382314"></a>(初次烧写必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,可保存执行结果,但U-boot重新烧入,则需要再次执行下述步骤。
**表 1** U-boot修改命令
<a name="table1336762011222"></a>
<table><thead align="left"><tr id="row193681920182219"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p3368202016229"><a name="p3368202016229"></a><a name="p3368202016229"></a>执行命令</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p936812052217"><a name="p936812052217"></a><a name="p936812052217"></a>命令解释</p>
</th>
</tr>
</thead>
<tbody><tr id="row10368142032210"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1636882092214"><a name="p1636882092214"></a><a name="p1636882092214"></a>setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p17368202082213"><a name="p17368202082213"></a><a name="p17368202082213"></a>设置bootcmd内容,选择FLASH器件0,读取FLASH起始地址为0x100000,大小为0x600000字节的内容到0x40000000的内存地址,此处0x600000为6MB,与IDE中填写OHOS_Image.bin的文件大小<strong id="b1355784283916"><a name="b1355784283916"></a><a name="b1355784283916"></a>必须相同</strong>。</p>
</td>
</tr>
<tr id="row136814209227"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p234414019231"><a name="p234414019231"></a><a name="p234414019231"></a>setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p10368102010223"><a name="p10368102010223"></a><a name="p10368102010223"></a>表示设置bootargs参数为串口输出,波特率为115200,数据位8,rootfs挂载于FLASH上,文件系统类型为jffs2 rw,以支持可读写JFFS2文件系统。“rootaddr=7M rootsize=8M”处对应填入实际rootfs.img的烧写起始位置与长度,与IDE内所填大小<strong id="b1461083410403"><a name="b1461083410403"></a><a name="b1461083410403"></a>必须相同</strong>。</p>
</td>
</tr>
<tr id="row2368120112219"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p20368142072217"><a name="p20368142072217"></a><a name="p20368142072217"></a>saveenv</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p19368102020220"><a name="p19368102020220"></a><a name="p19368102020220"></a>表示保存当前配置。</p>
</td>
</tr>
<tr id="row63689205220"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p3368162015223"><a name="p3368162015223"></a><a name="p3368162015223"></a>reset</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p23681820182217"><a name="p23681820182217"></a><a name="p23681820182217"></a>表示复位单板。</p>
</td>
</tr>
<tr id="row346253519253"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p16462113512251"><a name="p16462113512251"></a><a name="p16462113512251"></a>pri</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p3462335152514"><a name="p3462335152514"></a><a name="p3462335152514"></a>表示查看显示参数。</p>
</td>
</tr>
</tbody>
</table>
>![](public_sys-resources/icon-notice.gif) **须知:**
>**“go 0x40000000”**为可选指令,默认配置已将该指令固化在启动参数中,单板复位后可自动启动。若想切换为手动启动,可在U-boot启动倒数阶段使用"回车"打断自动启动。
3. <a name="li6442853122312"></a>若启动时显示**"hisilicon \#**字样,请输入**“reset”**指令,等待系统自启动进入系统,系统启动后,显示**“OHOS”**字样,输入**”./bin/helloworld”**并回车,显示成功结果如下图所示。
**图 3** 启动成功并执行应用程序图<a name="fig265662981319"></a>
![](figures/启动成功并执行应用程序图.png "启动成功并执行应用程序图")
## 下一步学习<a name="section9712145420182"></a>
恭喜您,已完成Hi3518的快速上手!建议您下一步进入[无屏摄像头产品开发](../guide/摄像头控制.md)的学习 。
......@@ -169,7 +169,7 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三
- upload\_protocol:选择烧录协议,固定选择“hiburn-net”。
- upload\_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。
![](figures/zh-cn_image_0000001117168786.png)
![](figures/zh-cn_image_0000001160529355.png)
6. <a name="zh-cn_topic_0000001056443961_li1558813168234"></a>检查和设置连接开发板后的网络适配器的IP地址信息,设置方法请参考[设置Hi3516网口烧录的IP地址信息](https://device.harmonyos.com/cn/docs/ide/user-guides/set_ipaddress-0000001141825075)
7. 设置网口烧录的IP地址信息,设置如下选项:
......@@ -179,7 +179,7 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三
- upload\_net\_client\_gw:设置开发板的网关,工具会自动根据选择的upload\_net\_server\_ip进行设置。例如192.168.1.1
- upload\_net\_client\_ip:设置开发板的IP地址,工具会自动根据选择的upload\_net\_server\_ip进行设置。例如192.168.1.3
![](figures/zh-cn_image_0000001160649345.png)
![](figures/zh-cn_image_0000001117463460.png)
8. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。
9. 打开工程文件,点击![](figures/2021-01-27_170334-2.png)图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hi3516dv300下的**Upload**按钮,启动烧录。
......@@ -200,7 +200,7 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三
1. 连接串口。
>![](public_sys-resources/icon-notice.gif) **须知:**
>若无法连接串口,请参考[常见问题](../quick-start/常见问题-2.md)进行排查。
>若无法连接串口,请参考[常见问题](../quick-start/常见问题-3.md)进行排查。
**图 2** 连接串口图<a name="fig056645018495"></a>
......
......@@ -430,7 +430,7 @@
1. 连接串口。
>![](public_sys-resources/icon-notice.gif) **须知:**
>若无法连接串口,请参考[常见问题](../quick-start/常见问题-2.md)进行排查。
>若无法连接串口,请参考[常见问题](../quick-start/常见问题-3.md)进行排查。
**图 1** 连接串口图<a name="zh-cn_topic_0000001151888681_fig056645018495"></a>
......
......@@ -8,7 +8,7 @@
## 前提条件<a name="section13333171022312"></a>
开发环境需安装gn、ninja构建工具、python 3.7.4及以上和hb。安装方法请见[搭建系统基础环境](..//quick-start/搭建系统环境.md)
开发环境需安装gn、ninja构建工具、python 3.7.4及以上和hb。安装方法请见[搭建系统基础环境](../quick-start/搭建系统环境.md)
## hb命令行工具使用<a name="section477242204612"></a>
......
......@@ -84,7 +84,7 @@ component
│ ├── innerkits # 系统内接口,组件间使用
│ └── kits # 应用接口,应用开发者使用
├── frameworks # framework实现
├── services # framework实现
├── services # service实现
└── BUILD.gn # 组件编译脚本
```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册