# 搭建环境
## 环境要求
## 硬件要求
- Linux服务器
- Windows工作台(主机电脑)
- BearPi-HM_Nano开发板
- USB Type-C线(Windows工作台通过USB与BearPi-HM_Nano开发板组连接)
各硬件连接关系如下图所示。
**图 1** 硬件连线图

## 软件系统要求
**表 1** BearPi-HM_Nano开发板开发平台要求
硬件
|
软件
|
描述
|
备注
|
Linux编译服务器
|
操作系统
|
Ubuntu16.04及以上64位系统版本,Shell使用bash
|
开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。
|
Windows工作台
|
操作系统
|
Windows XP/Windows7/Windows10
|
## Linux构建工具要求
Linux服务器通用环境配置需要的工具及其获取途径如下表所示。
**表 2** Linux服务器开发工具及获取途径
## Windows开发工具要求
**表 3** Windows工作台开发工具及获取途径
## 安装编译基础环境
## 连接Linux服务器
使用Windows远程登录Linux,以MobaXterm工具为例:
1. 打开[MobaXterm工具](https://mobaxterm.mobatek.net/), 输入Linux服务器IP地址,后点击“OK”,打开连接。
**图 2** MobaXterm界面示例图

2. 弹框告警选择“是\(Y\)”。
3. 弹出界面中输入账号并按回车键,继续输入密码并回车键。
**图 3** 登录界面图

4. 登录成功。
**图 4** 登录成功界面

## 将Linux shell改为bash
查看shell是否为bash,在终端运行如下命令
```
ls -l /bin/sh
```
如果为显示为/bin/sh -\> bash则为正常,否则请按以下方式修改:
**方法一**:在终端运行如下命令,然后选择 no。
```
sudo dpkg-reconfigure dash
```
**方法二**:先删除sh,再创建软链接。
```
rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
```
## 安装Python环境
1. 打开Linux编译服务器终端。
2. 输入命令“python3 --version”,查看Python版本号。需使用python3.7以上版本,否则请按以下步骤执行,以python3.8为例:
- 如果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 "
2. 获取[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 && make && sudo make install"
3. 确定Python-3.8.5安装好后,运行"which python3.8",将回显路径链接到"/usr/bin/python",示例:
"cd /usr/bin && sudo rm python && sudo ln -s /usr/bin/python3.8 python && python --version"
若系统存在python3,通过"python3 --version"指令查询版本,若不是3.7以上版本,则还需要执行下面指令
"cd /usr/bin && sudo rm python3 && sudo ln -s /usr/bin/python3.8 python3 && python3 --version"
4. 安装Python包管理工具,运行“sudo apt-get install python3-setuptools python3-pip -y”命令。(需root/sudo权限安装),升级pip3运行"sudo pip3 install --upgrade pip"。
或按官网方式安装Python包管理工具:下载"curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py"后,再执行"python get-pip.py"
5. 安装python模块setuptools,运行"pip3 install setuptools"
6. 运行“sudo pip3 install kconfiglib”命令,安装GUI menuconfig工具,建议安装Kconfiglib 13.2.0+版本。(需root/sudo权限安装)。
或者按以下方法安装Kconfiglib 13.2.0+。
1. 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。
下载路径:“[https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files)”
1. 运行“sudo pip3 install kconfiglib-xxx.whl”命令(例如:sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。
2. 可能会遇到错误:"subprocess.CalledProcessError: Command '\('lsb\_release', '-a'\)' returned non-zero exit status 1.",解决方法:"find / -name lsb\_release",找到lsb\_release位置并删除,如:"rm -rf /usr/bin/lsb\_release"
7. 安装pycryptodome。运行“sudo pip3 install pycryptodome”命令,或者按照以下方式安装:
> **说明:**
>- 安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。
>- 安装ecdsa依赖six,请按文档要求,先安装six,再安装ecdsa。
1. 下载.whl文件(例如:pycryptodome-3.7.3-cp37-cp37m-manylinux1\_x86\_64.whl)。
下载路径:“[https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files)”。
1. 运行“sudo pip3 install pycryptodome-xxx.whl”命令(例如:sudo pip3 install pycryptodome-3.7.3-cp37-cp37m-manylinux1\_x86\_64.whl),安装.whl文件(需root/sudo权限安装)。
安装完成后界面会提示“Successfully installed pycryptodome-3.7.3”。
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. 运行“sudo pip3 install six-xxx.whl”命令(例如:sudo pip3 install six-1.12.0-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。
安装完成后界面会提示“Successfully installed six-1.12.0”。
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. 运行“sudo pip3 install ecdsa-xxx.whl”命令(例如:sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。
安装完成后界面会提示“Successfully installed ecdsa-0.14.1”。
## 安装Scons
1. 打开Linux编译服务器终端。
2. 安装SCons安装包(需root/sudo权限安装)。
运行命令:“sudo apt-get install scons -y”。如果软件源中无法找到安装包,请按以下步骤处理:
1. 下载源码包(下载路径:“ [https://scons.org/pages/download.html](https://scons.org/pages/download.html) ”,推荐SCons版本是3.0.4+)。
2. 解压源码包到任意目录。
3. 安装源码包:进入解压目录,运行命令“sudo python3 setup.py install”(需root/sudo权限安装),等待安装完毕。
3. 输入命令“scons -v”,查看是否安装成功。如果安装成功,查询结果下图所示。
**图 5** SCons安装成功界面

## 安装编译工具环境
> **须知:**
>- 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja、gcc\_riscv32编译工具。
>- (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja、gcc\_riscv32编译工具。
> 安装gn、ninja、gcc\_riscv32编译工具时,请确保编译工具的环境变量路径唯一。
## 安装gn
1. 打开Linux编译服务器终端。
2. 下载gn工具:https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA 提取码:1234
3. 解压gn安装包至\~/gn路径下:"tar -xvf gn.1523.tar -C \~/"。
4. 设置环境变量:"vim \~/.bashrc", 新增:"export PATH=\~/gn:$PATH"。
5. 生效环境变量:"source \~/.bashrc"。
## 安装ninja
1. 打开Linux编译服务器终端
2. 下载ninja工具:https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA 提取码:1234
3. 解压ninja安装包至\~/ninja路径下:"tar -xvf ninja.1.9.0.tar -C \~/"。
4. 设置环境变量:"vim \~/.bashrc", 新增:"export PATH=\~/ninja:$PATH"。
5. 生效环境变量:"source \~/.bashrc"。
## 安装gcc\_riscv32(WLAN模组类编译工具链)
> **须知:**
>Hi3861平台仅支持使用libgcc运行时库的静态链接,**不建议开发者使用libgcc运行时库的动态链接,会导致商业分发时被GPL V3污染。**
1. 打开Linux编译服务器终端。
2. 下载gcc\_riscv32工具:https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA 提取码:1234
3. 解压gcc\_riscv32安装包至/opt/gcc\_riscv32路径下:"tar -xvf gcc\_riscv32-linux-7.3.0.tar.gz -C \~/"。
4. 设置环境变量:"vim \~/.bashrc",新增:"export PATH=\~/gcc\_riscv32/bin:$PATH"。
5. 生效环境变量:"source \~/.bashrc"。
6. Shell命令行中输入“riscv32-unknown-elf-gcc -v”,如果能正确显示编译器版本号,表明编译器安装成功。