首先吐槽下,相比起arduino、ESP8266这些方案,鸿蒙的WIFI_IOT开发板环境搭建简直是地狱难度....最坑爹的是Windows平台不能用HPM编译,Linux环境下可以编译但不能烧写(如果是按照官网的环境搭建手册是可以搭建基于HB命令的windows编译烧写环境的,但是因为我的无能,harmonyos-ssd1306这个库没法编译)而根据官网的linux编译虚拟机+windows烧写实体机的方式又因为无法在vmware的共享目录上做动态链接...而且要编译还要先跑虚拟机...于是我想起了win10的wls,以下为踩坑全流程

0. Win10系统安装Visual Studio Code

这个不用教了吧

1. 准备Ubuntu子系统编译环境

推荐使用LxRunOffline工具安装,可以安装在其它磁盘,不用挤占宝贵的C盘空间

LxRunOffline下载:https://github.com/DDoSolitar...

建议用msvc编译版本:LxRunOffline-v3.5.0-msvc.zip

下载解压之后直接运行LxRunOffline.exe即可

先启用Linux子系统功能如果已经使用过WLS的,可以掠过此步

如果你没有使用过 WSL ,首先以管理员身份运行 Pow­er­Shell (WIN+X , A),输入下面的命令开启 “适用于 Linux 的 Win­dows 子系统” 功能,并重启。Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

安装Ubuntu20

下载官方的Linux子系统安装包:https://docs.microsoft.com/en... 下载后的文件改后缀名为.zip,解压后可得到名为 install.tar.gz 的文件 如果不想用微软官方的可以看下LxRunOffline的wiki,有大佬编译的离线包:https://github.com/DDoSolitar...

建议选择Ubuntu20.04版本,自带python3.8

安装命令:lxrunoffline i -n -d -f .tar.gz

例如:D:\Soft\System\LxRunOffline-v3.5.0-msvc\LxRunOffline.exe i -n Ubuntu20.04_harmony -d D:\Files\Resources\wls\Ubuntu20.04_harmony -f D:\Soft\System\系统镜像\Ubuntu_2004.2020.424.0_x64\install.tar.gz -s

bVcRWWY

运行WLS

可以通过命令行启动LxRunOffline.exe sd -n Ubuntu20.04_harmony

也可以运行桌面的快捷方式启动(安装WLS的时候会创建)

把WLS集成到VSCode终端

在LxRunOffline.exe同级目录下新建一个wls.bat文件,文件内容:@echo off

LxRunOffline.exe run -w -n "Ubuntu20.04_harmony"

点击文件->首选项->设置 打开vscode的设置菜单,搜索terminal.integrated.shell.windows

bVcRWZU

点击在settings.json中编辑,把terminal.integrated.shell.windows的值改成上面的wls.bat的路径:

bVcRW02

重启vscode后,按alt+`快捷键呼出终端,此时可以看到呼出的终端已bVcRW1g

更换apt源

备份cp /etc/apt/sources.list /etc/apt/sources.list.old

编辑/etc/apt/sources.list文件vi /etc/apt/sources.list

把内容删掉,改成下面的:deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse

保存退出后,更新apt源:apt update

apt upgrade

更换默认shell为bashsudo dpkg-reconfigure dash

执行后会显示一个警告

bVcRW4q

选NO即会把默认shell替换为bash,执行成功后,使用命令ls -l /bin/sh查看是否设置成功,如下图所示则已配置成功

bVcRXhm

安装Ubuntu编译环境

安装Python

ubuntu20版本已自带3.8+版本的python不需要另行安装了

下面来配置Python:#安装pip工具

apt install python3-setuptools python3-pip -y

#GUI menuconfig工具:

pip3 install kconfiglib

pip3 install pycryptodome

pip3 install launchpadlib==1.10.13

pip3 install six --upgrade --ignore-installed six

pip3 install ecdsa

安装sconsapt install scons -y

scons -v #检查

安装Node.jswget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz

mkdir -p /usr/local/lib/nodejs/

tar -xvf node-v14.17.0-linux-x64.tar.xz -C /usr/local/lib/nodejs/

echo "export PATH=/usr/local/lib/nodejs/node-v14.17.0-linux-x64/bin/:\$PATH" >> /etc/profile

resource /etc/profile

验证安装:node -v

npm -v

安装hpm工具

先把npm改为国内源,下包快点npm config set registry https://repo.huaweicloud.com/repository/npm/

安装hpm工具npm install -g @ohos/hpm-cli

验证安装hpm -V

根据官方文档依次安装编译工具链mkdir -p /opt/openharmony/toolchain

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

mkdir /opt/openharmony/toolchain/gn

tar -zxvf gn-linux-x86-1717.tar.gz -C /opt/openharmony/toolchain/gn

echo "export PATH=/opt/openharmony/toolchain/gn/:\$PATH" >> /etc/profile

resource /etc/profile

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

tar -xvf ninja.1.9.0.tar -C /opt/openharmony/toolchain/

echo "export PATH=/opt/openharmony/toolchain/ninja/:\$PATH" >> /etc/profile

source /etc/profile

安装riscv32-gcc

不建议自己编译!不建议自己编译!不建议自己编译!时间就是生命,我的朋友!

需要自行编译的,建议看官方文档的教程,此处使用官方预编译的二进制包# 虽然不用自己编译,但是编译工具得安装好,要不编译源码会报错

sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install flex bison && sudo apt-get install texinfo

# 现在预编译好的gcc_riscv32

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 /opt/openharmony/toolchain/

echo "export PATH=/opt/openharmony/toolchain/gcc_riscv32/bin/:\$PATH" >> /etc/profile

source /etc/profile

# 验证安装

riscv32-unknown-elf-gcc -v

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

tar -xvf llvm-linux-9.0.0-36191.tar -C /opt/openharmony/toolchain/

echo "export PATH=/opt/openharmony/toolchain/llvm/bin/:\$PATH" >> /etc/profile

source /etc/profile

安装Windows开发环境

安装Python

到python官网下载3.8.10的msi安装包进行安装,注意,如果系统有其它的Python版本,强烈建议先卸载其它版本的python,再安装3.8,python版本不对或者多版本并存都可能影响下一步安装HUAWEI DevEco Device Tool

安装

到官网下载安装包

https://device.harmonyos.com/...

彻底关闭vscode后,运行安装包进行安装

安装成功后,打开vscode会看到DevEco Device Tool插件的图标:

bVcRXda

安装USB转串口驱动

HelloWorld

好了,终于到了令人激动的HelloWorld时间了

下载初始源码

打开wls终端,进入我们的工程目录(windows下的各个盘符都挂在WLS的/mnt/路径下)cd /mnt/e/Projects_Act/harmonyos

# 创建源码目录

mkdir wifi_iot && cd wifi_iot

初始化源码仓库hpm init -t dist

使用wifi_iot发行版作为工程模板hpm install @ohos/wifi_iot

新建工程

点击DevEco图标,再主页选择打开工程

bVcRXfA

打开刚才我们创建的wifi_iot目录

bVcRXfC

芯片选择Hi3861,源码来源选hpm

bVcRXfG

然后点击open打开工程

bVcRXfH

如果步骤正确的话,已经可以看到源码结构了

bVcRXgs

尝试编译

在开始码你充满创意的代码之前,先试试编译是否正常吧,还是在WLS的终端中,执行命令进行编译hpm dist

bVcRXhn

好吧,报错了...找不到python,如下解决:# 看看是不是确实没有python命令

python -V

# 果然没有

# 看看python3的安装路径

which python3

# 显示:/usr/bin/python3

# 建立python链接

ln /usr/bin/python3 /usr/bin/python

再次编译,当出现BUILD SUCCESS就编译成功了

bVcRXjZ

尝试烧录

先接上开发板,然后点击DevEco的工程选项卡,切换到hi3861选项卡,找到Upload option,upload_port选择开发板的COM端口,upload_protocol选择burn-serial

bVcRXkf

点击save按钮保存设置,然后展开PROJECT TASKS,点击Upload

出现提示后,点击开发板的rest按钮重新上电,然后等待烧录完成

bVcRXkl

显示successful就表示烧录完成了

bVcRXkq

测试一下烧录的代码,点击PROJECT TASKS里的Monitor,显示串口监听成功后,点击开发板rest按钮

bVcRXkO

开发板重新上电后,终端显示如下内容则表示wifi_iot系统正常启动了

bVcRXkZ

以下是WLAN组网指令,可以玩一下AT+STARTSTA # 启动STA模式

AT+SCAN # 扫描周边AP

AT+SCANRESULT # 显示扫描结果

AT+CONN="SSID",,2,"PASSWORD" # 连接指定AP,其中SSID/PASSWORD为待连接的热点名称和密码

AT+STASTAT # 查看连接结果

AT+DHCP=wlan0,1 # 通过DHCP向AP请求wlan0的IP地址

查看WLAN模组与网关联通是否正常,如下图所示。AT+IFCFG # 查看模组接口IP

AT+PING=X.X.X.X # 检查模组与网关的联通性,其中X.X.X.X需替换为实际的网关地址

好了,至此整个开发环境就算搭建好了,总体来说就是再Windows下用vscode开发,开发完成之后,再WLS终端使用hpm dist命令编译,编译后使用DevEco烧写,不用折腾Linux编译环境也可以愉快的使用HPM了~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐