搭建环境

环境要求

硬件要求

  • Linux服务器
  • Windows工作台(主机电脑)
  • Hi3861 WLAN模组
  • USB Type-C线(Windows工作台通过USB与Hi3861 WLAN模组连接)

各硬件连接关系如下图所示。

图 1 硬件连线图
搭建环境 - 图1

软件系统要求

表 1 Hi3861 WLAN模組开发平台要求

硬件

软件

描述

备注

Linux编译服务器

操作系统

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

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

Windows工作台

操作系统

Windows XP/Windows7/Windows10

Linux构建工具要求

Linux服务器通用环境配置需要的工具及其获取途径如下表所示。

表 2 Linux服务器开发工具及获取途径

开发工具

用途

获取途径

交叉编译器gcc_riscv32

交叉编译工具

http://tools.harmonyos.com/mirrors/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz

Python3.7+

编译构建工具

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

SCons3.0.4+

编译构建工具

通过互联网获取

bash

命令处理器

通过互联网获取

build-essential

编译依赖的基础软件包

通过互联网获取

gn

产生ninja编译脚本

http://tools.harmonyos.com/mirrors/gn/1523/linux/gn.1523.tar

ninja

执行ninja编译脚本

http://tools.harmonyos.com/mirrors/ninja/1.9.0/linux/ninja.1.9.0.tar

Windows开发工具要求

表 3 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/

CH341SER.EXE

USB转串口驱动。

http://www.wch.cn/search?q=ch340g&t=downloads

安装编译基础环境

连接Linux服务器

使用Windows远程登录Linux,以PUTTY工具为例:

  1. 打开PuTTY工具,输入Linux服务器IP地址,后点击“open”,打开连接。

    图 2 PuTTY界面示例图
    搭建环境 - 图2

  2. 弹框告警选择“是(Y)”。

  3. 弹出界面中输入账号并按回车键,继续输入密码并回车键。

    图 3 登录界面图
    搭建环境 - 图3

  4. 登录成功。

    图 4 登录成功界面
    搭建环境 - 图4

将Linux shell改为bash

查看shell是否为bash,在终端运行如下命令

  1. ls -l /bin/sh

如果为显示为/bin/sh -> bash则为正常,否则请按以下方式修改:

方法一:在终端运行如下命令,然后选择 no。

  1. sudo dpkg-reconfigure dash

方法二:先删除sh,再创建软链接。

  1. rm -rf /bin/sh
  2. 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 “

      1. 获取python3.8.5安装包,将其放至linux服务器中,运行 :

      “tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure && make && sudo make install”

      1. 确定Python-3.8.5安装好后,运行”which python3.8”,将回显路径链接到”/usr/bin/python”,示例:

      “cd /usr/bin && rm python && ln -s /usr/local/bin/python3.8 python && python —version”

  1. -安装Python包管理工具,运行“sudo apt-get install python3-setuptools python3-pip -y”命令。(需root/sudo权限安装),升级pip3运行"sudo pip3 install --upgrade pip"
  2. 或按官网方式安装Python包管理工具:下载"curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py"后,再执行"python get-pip.py"
  1. 安装python模块setuptools,运行”pip3 install setuptools”
  2. 运行“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

  1. 1.运行“sudo pip3 install kconfiglib-xxx.whl”命令(例如:sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。
  2. 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"
  1. 安装pycryptodome。运行“sudo pip3 install pycryptodome”命令,或者按照以下方式安装:

    搭建环境 - 图5说明:

    • 安装升级文件签名依赖的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”。

  1. 1.运行“sudo pip3 install pycryptodome-xxx.whl”命令(例如:sudo pip3 install pycryptodome-3.7.3-cp37-cp37m-manylinux1\_x86\_64.whl),安装.whl文件(需root/sudo权限安装)。
  2. 安装完成后界面会提示“Successfully installed pycryptodome-3.7.3”。
  1. 安装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

  1. 1.运行“sudo pip3 install six-xxx.whl”命令(例如:sudo pip3 install six-1.12.0-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。
  2. 安装完成后界面会提示“Successfully installed six-1.12.0”。
  1. 安装ecdsa。运行”sudo pip3 install ecdsa”或者按照以下方式安装:

    1. 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。

      下载路径:“https://pypi.org/project/ecdsa/#files

  1. 1.运行“sudo pip3 install ecdsa-xxx.whl”命令(例如:sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。
  2. 安装完成后界面会提示“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 ”,推荐SCons版本是3.0.4+)。
    2. 解压源码包到任意目录。
    3. 安装源码包:进入解压目录,运行命令“sudo python3 setup.py install”(需root/sudo权限安装),等待安装完毕。
  3. 输入命令“scons -v”,查看是否安装成功。如果安装成功,查询结果下图所示。

    图 5 SCons安装成功界面
    搭建环境 - 图6

安装编译工具环境

搭建环境 - 图7须知:

  • 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja、gcc_riscv32编译工具。
  • (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja、gcc_riscv32编译工具。 安装gn、ninja、gcc_riscv32编译工具时,请确保编译工具的环境变量路径唯一。

安装gn

  1. 打开Linux编译服务器终端。
  2. 下载gn工具
  3. 解压gn安装包至~/gn路径下:”tar -xvf gn.1523.tar -C ~/“。
  4. 设置环境变量:”vim ~/.bashrc”, 新增:”export PATH=~/gn:$PATH”。
  5. 生效环境变量:”source ~/.bashrc”。

安装ninja

  1. 打开Linux编译服务器终端
  2. 下载ninja工具
  3. 解压ninja安装包至~/ninja路径下:”tar -xvf ninja.1.9.0.tar -C ~/“。
  4. 设置环境变量:”vim ~/.bashrc”, 新增:”export PATH=~/ninja:$PATH”。
  5. 生效环境变量:”source ~/.bashrc”。

安装gcc_riscv32(WLAN模组类编译工具链)

搭建环境 - 图8须知: Hi3861平台仅支持使用libgcc运行时库的静态链接,不建议开发者使用libgcc运行时库的动态链接,会导致商业分发时被GPL V3污染。

  1. 打开Linux编译服务器终端。
  2. 下载gcc_riscv32工具
  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”,如果能正确显示编译器版本号,表明编译器安装成功。