此系列是笔者关于 OpenHarmony 智能家居开发套件(Hi3861 芯片)的学习历程,本篇作为入门环节,将具体介绍 OpenHarmony 的环境搭建。
Windows(新手推荐)
目前 Window 系统已经能够用过 DevEco Device Tool 工具独立完成大部分的 OpenHarmony 开发工作,而先前通过 HiBurn,MobaXterm 工具进行的烧录,串口调试并不方便,下面具体介绍如何在 Windows 系统上配置环境。
①DevEco Device Tool 安装
https://device.harmonyos.com/cn/develop/ide#download
如果你想自己安装 Python 和 VsCode,笔者也会提供他们的官网地址,供小伙伴们参考,这里就不详细说明了。要注意工具对应的版本需求,不能错。
https://www.python.org/downloads/windows/
https://code.visualstudio.com/
那么至此 Windows 开发 OpenHarmony 的环境已经完成了一大半,是不是很简单。
②使用 DevEco Device Tool 创建项目
点击 New Project:
输入自己的项目名,在 SOC 中选择 Hi3861。
③编译
打开“DevEco”工具,点击“Biuld”:
我们可以看到控制台的输出,表示我们在 32 秒的时间完成了编译[首次编译时会自动下载相关的依赖耗时可能较长]。
④烧录
点击“upload”进行烧录,我们发现控制台报了错,是因为烧录工具和端口我们自己去手动配置。
在进行烧录端口配置之前我们需要将智能家居板连接到我们的主机上,并确保主机能够识别到这个端口。在设备管理器中可以查看智能家居板的端口信息。
在 DevEco 中,配置端口号,图片中漏标了 upload_speed 建议改成 115200。
如果还出现了相同的错误就点击“manager”,再点击底下的“confirm”刷新一下配置。
完成烧录:
⑤串口调试
点击“Monitor”开始串口调试,点击主板“RET”键重启开发板,开始调试,注意观察控制台输出的信息。
Windows + Linux
①WSL
②安装 WSL
wsl --install
③配置 WSL
启动“适用于 Linux 的 Windows 子系统”可选功能,打开 PowerShell 输入以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestar/
再输入以下命令,启动虚拟机功能:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
输入以下命令,设置 WSL 的版本为 2。
wsl --set-default-version 2
下面我们安装 Linux,这里推荐使用 Ubuntu。打开微软的商店下载 Ubuntu,这里提供了 3 个 LST 长期支持版本,笔者之前已经使用 20.04LTS 版本完成的环境的搭建,这里就使用 22.04LTS 版本为大家重新演示。
完成安装后打开 Ubuntu,创建好账户。
至此 WSL 安装完成了:
wsl --shutdown
wsl -l -v
wsl --export Ubuntu-22.04 D:\wsl2-ubuntu22.04\ubuntu.tar
④注销 Linux
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-22.04 D:\wsl2-ubuntu22.04\ D:\wsl2-ubuntu22.04\ubuntu.tar --version 2
⑥点进我们设置好的目录,ext4.vhdx 说明导出,导入成功了
del D:\wsl2-ubuntu22.04\ubuntu.tar
ubuntu20.04 config --default-user xxx
Windows 连接 Linux
Linux 环境搭建
软件包换源:
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
## Not recommended
# deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
在控制台中输入以下指令,更换软件源:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
对于不熟悉 Linux 的伙伴们,这里提供一些 Linux 指令帮助大家快速删除文件的内容:
gg
100dd
更新软件包:
sudo apt-get update
环境搭建如下:
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev
sudo apt-get install libc6
sudo apt-get install e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
python --version
sudo apt install python3-pip
mkdir /home/ohos/openharmony
pip3 install scons
scons -v
pip3 install kconfiglib
pip3 install pycryptodome ecdsa
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 ~/
rm gcc_riscv32-linux-7.3.0.tar.gz
echo 'export PATH=~/gcc_riscv32/bin:$PATH' | tee -a ~/.bashrc
source ~/.bashrc
sudo apt install git-lfs
wget https://gitee.com/oschina/repo/raw/fork_flow/repo-py3
sudo mv repo-py3 /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
pip install requests
git config --global user.email "xxxx@qq.com"
git config --global user.name "xxxx"
ssh-keygen -t rsa -C 'xxxx@qq.com'
cat ~/.ssh/id_rsa.pub
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > repo
chmod a+x repo
sudo mv repo /usr/local/bin/
OpenHarmony 获取源码
3.0LTS 长期支持版本:
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.0-LTS --no-repo-verify
repo sync -c [这一步会稍微有些慢]
repo forall -c 'git lfs pull'
在源码的同级目录补充环境。
mkdir -p ~/openharmony/prebuilts/build-tools/linux-x86/bin/
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
tar -xvf gn-linux-x86-1717.tar.gz -C ~/openharmony/prebuilts/build-tools/linux-x86/bin/
rm gn-linux-x86-1717.tar.gz
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.10.1/linux/ninja-linux-x86-1.10.1.tar.gz
tar -xvf ninja-linux-x86-1.10.1.tar.gz -C ~/openharmony/prebuilts/build-tools/linux-x86/bin/
rm ninja-linux-x86-1.10.1.tar.gz
pip3 install build/lite
echo 'export PATH=~/.local/bin:$PATH' | tee -a ~/.bashrc
source ~/.bashrc
hb -h
最后一步中会报错:
[ImportError: cannot import name ‘Mapping’ from ‘collections’ (/usr/lib/python3.10/collections/init.py)]
解决办法如下找到最后一行的报错信息:
[File “/root/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py”, line 9, in <module>
from collections import Mapping]
打开这个文件:
from collections import Mapping
# 改为
from collections.abc import Mapping
编译:使用 hb 对源码进行编译,在源码根目录下输入以下指令进行编译:
hb set
选择 hisillicon wifiiot_hispark_pegasus:
输入最后的编译指令:
hb build -f
观察控制台的输出情况:
Windows 环境搭建
HiBurn 下载:
https://ost.51cto.com/resource/29
MobaXTerm 下载:
https://mobaxterm.mobatek.net/download.html
具体的安装流程就不具体说了,没有什么需要注意的,正常安装即可。准备好这两个工具后就可以开始进行烧录和串口调试的测试了。
①烧录
选择文件,烧录好的文件在源码根目录下的 out 目录里,选择名为“Hi3861_wifiiot_app_allinone.bin” 的文件,点击 connect 后并重启开发板即可。
烧录完成后点击“disconnect”断开连接,把端口空出来给下一步的串口调试工具使用
②串口调试
创建连接:
重启开发板,观察开发板的信息输出:
结束语
求分享
求点赞
求在看