鸿蒙OS配置
当前鸿蒙系统需要采用Linux进行编译,然后通过windows下的Hiburn进行上传。由于需要两个操作系统,因此推荐采用Windows 10 的最新功能WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)进行开发,可以在一台机器上完成所有的功能。
安装WSL+Ubuntu
-
如果下述安装过程出现了什么问题参见微软官方的安装教程
-
安装前,先确保Windows 10的版本在Version 1903 Build 18362 以上
PS:使用 win + r 输入 winver 可快速查看 Windows 版本。
-
如果你的 Win10 版本号过低,可使用 Windows 10 易升工具手动升级。下载 Windows 10 易升工具。下载后双击运行,等待完成升级即可(升级过程比较漫长)。
-
使用管理员权限打开
PowerShell
, 并运行, 以便打开WSL功能:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 请务必重启电脑
- 下载补丁包, 并安装, 便能升级成WSL 2.
- 使用管理员权限打开
PowerShell
, 并运行, 以便默认使用WSL 2:
wsl --set-default-version 2
-
打开
Microsoft Store
安装Ubuntu 18.04 LTS
-
点击启动, 启动Ubuntu
-
依次输入用户名和密码
-
安装WSL+Ubuntu成功.
Ubuntu 编译环境配置
由于采用了WSL的方式, 因此和官方的使用方式有些区别. 如果出现死链或者新版本, 或者在安装过程中出现问题, 详见华为官方的使用教程
-
安装Visual Studio Code, 链接
-
安装
Remote - WSL
插件, 可以直接用VSCode访问WSL中的Ubuntu.
-
单击左侧边栏, 进入
Remote Explorer
, 单击dfrobot /home/dfrotot
右侧的文件夹, 打开Ubuntu的Home目录.
-
单击顶部
Terminal
菜单, 单击New Terminal
, 即可使用Ubuntu下的命令行.
-
默认使用 bash 而不是 dash. 输入下述命令, 并选择
No
sudo dpkg-reconfigure dash
- 验证是否采用了Bash
ls -l /bin/sh
返回应为:
lrwxrwxrwx 1 root root 4 Dec 2 11:04 /bin/sh -> bash
- 依次输入下述命令, 进行Python3.8的安装.
sudo apt update
sudo apt-get install python3.8 python3-setuptools python3-pip -y
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 10
- 确认Python版本, 确认Python为3.8的版本.
python --version
- 安装pip 以及相关库文件
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo -H python get-pip.py
sudo -H pip3 install setuptools kconfiglib==13.2.0 pycryptodome==3.7.3 six==1.12.0 ecdsa==0.14.1
wget https://sourceforge.net/projects/scons/files/scons/3.1.2/scons-3.1.2.tar.gz/download
tar -xvf scons-3.1.2.tar.gz
cd scons-3.1.2/
sudo -H python3 setup.py install
- 确认scons是否可用.
scons -v
返回应为:
SCons by Steven Knight et al.:
script: v3.1.2.bee7caf9defd6e108fc2998a2520ddb36a967691, 2019-12-17 02:07:09, by bdeegan on octodog
engine: v3.1.2.bee7caf9defd6e108fc2998a2520ddb36a967691, 2019-12-17 02:07:09, by bdeegan on octodog
engine path: ['/usr/local/lib/scons/SCons']
Copyright (c) 2001 - 2019 The SCons Foundation
- 安装编译链工具
cd ~
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
tar -xvf gn.1523.tar -C ~/
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
tar -xvf ninja.1.9.0.tar -C ~/
wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/
echo 'export PATH=~/gn:$PATH' >> ~/.bashrc
echo 'export PATH=~/ninja:$PATH' >> ~/.bashrc
echo 'export PATH=~/gcc_riscv32/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
- 确认GCC是否可用
riscv32-unknown-elf-gcc -v
返回为(有缩减):
Using built-in specs.
COLLECT_GCC=riscv32-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/home/dfrobot/gcc_riscv32/bin/../libexec/gcc/riscv32-unknown-elf/7.3.0/lto-wrapper
Target: riscv32-unknown-elf
...................
Thread model: single
gcc version 7.3.0 (GCC)
- 下载HarmonyOS源码, 并进行编译
mkdir HarmonyOS
cd HarmonyOS
wget https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz
tar -xvf code-1.0.tar.gz
python build.py wifiiot
chmod 777 -R ~/HarmonyOS
返回如下, 即表示编译成功:
-------------output/bin/Hi3861_wifiiot_app_ota.bin image info print end--------------
< ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >
BUILD SUCCESS
< ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >
See build log from: /home/dfrobot/HarmonyOS/vendor/hisi/hi3861/hi3861/build/build_tmp/logs/build_kernel.log
[197/197] STAMP obj/vendor/hisi/hi3861/hi3861/run_wifiiot_scons.stamp
ohos wifiiot build success!
Visual Studio 安装其他插件
-
安装c/c++
-
安装gn
共享Ubuntu的文件
-
打开
File Explorer
, 右键Network
, 选择Map network drive...
-
键入
\\wsl$\Ubuntu-18.04
-
V:盘里面的文件即Ubuntu的文件
安装HUAWEI DevEco Device Tool
如安装过程中出现问题, 详见华为官方使用指南
安装Node.js
-
如果曾安装过Python, 请将其卸载.
-
安装Node.js, 链接
-
勾选自动安装必要工具
-
按任意键继续安装
-
Visual Studio 2017 的安装会花很长时间, 请耐心等待.
-
安装成功.
-
用管理员权限打开
powershell
, 键入代码, 添加环境变量
[Environment]::SetEnvironmentVariable("NODE_PATH",
"$HOME\AppData\Roaming\npm\node_modules", "Machine")
安装JDK
- JDK8 链接
- 注册官网账号
- 安装Windows x64版
安装hpm
- 以管理员权限打开
powershell
, 键入代码, 随后键入Y确认.
set-ExecutionPolicy RemoteSigned
- 安装hpm
npm install -g @ohos/hpm-cli
- 验证hpm
hpm -V
返回版本号即为成功
- 删除配置文件中多余的空行, 如果不删除会造成烧录错误.
hpm config
返回最后一行为
Create a hpm-cli configuration file, or change file 'C:\Users\Angelo\.hpm\hpmrc' to be a hpm-cli configuration file.
- 用文本编辑器打开
C:\Users\Angelo\.hpm\hpmrc
, 删除第二行的空行, 并保存
硬件及驱动安装
-
通过USB连接HarmonyOS Dev Board
-
安装驱动, 下载链接
-
安装完成后打开设备管理器, 会看到该串口设备, 需要记住串口编号, 此处为COM7
安装DevEco Device Tool插件
由于官方插件由于一些原因无法烧录程序(版本:devicetool-device-1.0.0.1.zip), 因此需要替换一些文件. 如果之后的版本有做更新, 则替换文件的步骤可以省略
-
如果之前安装过该插件, 请先卸载
-
登录HarmonysOS设备开发门户,点击右上角注册按钮, 进行注册
-
进入HUAWEI DevEco Device Tool产品页,下载DevEco Device Tool安装包。
-
使用
7-zip
打开刚下载的DevEcoDeviceTool-1.0.1.vsix
文件
-
下载需要替换的
hiburn-jlink-upload.js
文件, 下载链接. (在Chrome中右键>>另存为) -
直接把上述文件拖拽到压缩包的对应文件夹中
DevEcoDeviceTool-1.0.1.vsix\extension\deveco\ohos_bundles\@huawei\deveco_config\scripts\upload\
-
确认直接替换
-
打开VSCode, 由于默认启动了上次使用WSL的Ubuntu环境. 因此需要新建一个窗口
-
单击左边栏进入Extensions, 单击
...
>>Install from VSIX
-
选择经过更改的
DevEcoDeviceTool-1.0.1.vsix
文件
-
安装完成后, 单击左侧的
DEVECO DEVICE TOOL
按钮, 并单击import
, 选择导入文件夹v:\home\dfrobot\HarmonyOS
, 该文件夹即为之前共享的Ubuntu的HarmonyOS源码文件夹
-
单击左侧的
DEVECO DEVICE TOOL
按钮, 并单击Configure
, 选择HI3861
-
选择右侧的
Burn
进行配置
-
选择串口, 及其波特率
-
更改烧录文件位置为:
v:\home\dfrobot\HarmonyOS\out\wifiiot\Hi3861_wifiiot_app_allinone.bin
, 并按Save
保存
-
单击左下角
Burn
开始烧录
-
按板子上的Reset按键后, 烧录程序开始工作
-
按回车键结束.
-
单击左下角
Serial port
-
键入串口号
COM7
-
Set endline characters as "\r\n"?
输入1
-
显示如下信息则初始化成功.
-
直接输入下列命令, 连接WiFi
#启动STA模式:
AT+STARTSTA
#扫描周边AP:
AT+SCAN
#显示扫描结果:
AT+SCANRESULT
#连接指定AP,其中SSID/PASSWORD为待连接的热点名称和密码:
AT+CONN="SSID",,2,"PASSWORD"
#查看连接结果:
AT+STASTAT
#通过DHCP向AP请求wlan0的IP地址:
AT+DHCP=wlan0,1
- 查看联网是否正常
#查看模组接口IP:
AT+IFCFG
#检查模组与网关的联通性,其中X.X.X.X需替换为实际的网关地址
AT+PING=114.114.114.114
运行Hello World
如有问题, 详见华为官方快速入门
-
打开Visual Studio Code, 单击左侧
REMOTE EXPLORER
, 在Ubuntu-18.04
右侧单击小文件夹图标
-
单击左侧
EXPLORER
, 单击Open Folder
打开目录/home/dfrobot/HarmonyOS/
-
新建下列文件夹及文件
-
其中
applications/sample/wifi-iot/app/my_first_app/hello_world.c
为:
#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"
void HelloWorld(void)
{
printf("[DEMO] Hello world.\n");
}
SYS_RUN(HelloWorld);
- 其中
applications/sample/wifi-iot/app/my_first_app/BUILD.gn
文件为:
static_library("myapp") {
sources = [
"hello_world.c"
]
include_dirs = [
"//utils/native/lite/include"
]
}
applications/sample/wifi-iot/app/BUILD.gn
改为:
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
#"startup",
"my_first_app:myapp",
]
}
-
保证所有修改后的代码已经保存.
-
在
Terminal
中, 输入指令, 进行编译
-
单击
File
>>New Windows
新建窗口 -
按照之前的方法
import
, 并进行烧录 -
使用
Serial port
连接, 输出了Hello world
则表示运行成功.
-
大功告成.