0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony入门攻略:环境搭建

OpenHarmony技术社区 来源:OST开源开发者 2023-05-15 09:36 次阅读

此系列是笔者关于 OpenHarmony 智能家居开发套件(Hi3861 芯片)的学习历程,本篇作为入门环节,将具体介绍 OpenHarmony 的环境搭建。

Windows(新手推荐)

目前 Window 系统已经能够用过 DevEco Device Tool 工具独立完成大部分的 OpenHarmony 开发工作,而先前通过 HiBurn,MobaXterm 工具进行的烧录,串口调试并不方便,下面具体介绍如何在 Windows 系统上配置环境。

①DevEco Device Tool 安装

DevEco Device Tool:

https://device.harmonyos.com/cn/develop/ide#download

21250d46-f29d-11ed-90ce-dac502259ad0.png

我们双击下载 Windows(64-bit)版本的 ZIP 压缩包即可。

215109a0-f29d-11ed-90ce-dac502259ad0.png

下载完成后请各位自行解压,打开解压号的文件,双击 exe 文件进行安装。

21771686-f29d-11ed-90ce-dac502259ad0.png

点击“下一步”。

219a356c-f29d-11ed-90ce-dac502259ad0.png

选择“我接受…”,点击“下一步”。

21d6e174-f29d-11ed-90ce-dac502259ad0.png

选择安装的目录,点击"下一步"[不建议安装在 C 盘]。

22039f34-f29d-11ed-90ce-dac502259ad0.png

因为笔者自己的电脑上已经安装过 Python 和 VSCode 了,这里的状态是 ok,如果没有装过 Python 和 VsCode 的伙伴们也不用担心,你可以通过这个安装软件下载 python 和 VsCode。

222c297c-f29d-11ed-90ce-dac502259ad0.png

如果你想自己安装 Python 和 VsCode,笔者也会提供他们的官网地址,供小伙伴们参考,这里就不详细说明了。要注意工具对应的版本需求,不能错。

Python:

https://www.python.org/downloads/windows/
VsCode:
https://code.visualstudio.com/
点击“安装”等待…

224eb848-f29d-11ed-90ce-dac502259ad0.png

点击“完成”完成 DevEco Device Tool 的安装。

227fbd3a-f29d-11ed-90ce-dac502259ad0.png

现在我们打开 VsCode,就会发现左侧栏中多了一个工具。

22bc91ba-f29d-11ed-90ce-dac502259ad0.png

那么至此 Windows 开发 OpenHarmony 的环境已经完成了一大半,是不是很简单。

②使用 DevEco Device Tool 创建项目

点击 New Project:

22e22aec-f29d-11ed-90ce-dac502259ad0.png

输入自己的项目名,在 SOC 中选择 Hi3861。

230e37b8-f29d-11ed-90ce-dac502259ad0.png

点击“Download”下载 SDK:

2344e63c-f29d-11ed-90ce-dac502259ad0.png

下载完成后,点击“Confirm”完成项目的创建。

23704796-f29d-11ed-90ce-dac502259ad0.png

我们创建的项目,OpenHarmony 的源码在 src 目录下:

2390a612-f29d-11ed-90ce-dac502259ad0.png

③编译

项目已经建好了,下面就可以开始编译了。

打开“DevEco”工具,点击“Biuld”:

23b662bc-f29d-11ed-90ce-dac502259ad0.png

我们可以看到控制台的输出,表示我们在 32 秒的时间完成了编译[首次编译时会自动下载相关的依赖耗时可能较长]。

23efe33e-f29d-11ed-90ce-dac502259ad0.png

④烧录

点击“upload”进行烧录,我们发现控制台报了错,是因为烧录工具和端口我们自己去手动配置。

241f2428-f29d-11ed-90ce-dac502259ad0.png

在进行烧录端口配置之前我们需要将智能家居板连接到我们的主机上,并确保主机能够识别到这个端口。在设备管理器中可以查看智能家居板的端口信息

244fc6be-f29d-11ed-90ce-dac502259ad0.png

在 DevEco 中,配置端口号,图片中漏标了 upload_speed 建议改成 115200。

248ac354-f29d-11ed-90ce-dac502259ad0.png

完成配置后我们再次点击“upload”,看到控制台输出如下“Connrct…”就说明我们的烧录配置已经成功完成,此时只需要点击主板右下角的 RET 按钮,重启开发板即可开始烧录。

如果还出现了相同的错误就点击“manager”,再点击底下的“confirm”刷新一下配置。

24bb11bc-f29d-11ed-90ce-dac502259ad0.png

完成烧录:

24d4edbc-f29d-11ed-90ce-dac502259ad0.png

⑤串口调试

点击“Monitor”开始串口调试,点击主板“RET”键重启开发板,开始调试,注意观察控制台输出的信息。

2500132a-f29d-11ed-90ce-dac502259ad0.png

如果需要中断程序,按下[Ctrl + C]即可。 至此我们已经完成了 Windows下OpenHarmony 环境的配置。

Windows + Linux

尽管 Windows 很方便,可以独立完成 OpenHarmony 开发的大部分工作,但是难免有时候需要使用到 Linux 系统对源码进行编译,那么就不得不使用 Windows + Linux 的环境进行开发。 本篇不使用虚拟机搭建 Windows,因为虚拟机的性能受到了限制,对开发效率而言是个痛点,本篇将使用 WSL 详细讲解 Windows + Linux 的环境搭建。

①WSL

不了解 WSL 的伙伴们可以查询相关信息,这里就不细说了,简单的讲就是 Windows subSystem Linux,是不是一下就理解了,我们的 Linux 将不再局限于原来虚拟机的配置,而是直接作为我们 Windows 系统下的一个子系统进行运营,性能将被大大地释放出来。

②安装 WSL

打开管理员终端 PowerShell 输入以下命令[他可能会将 wsl 和 ubuntu 一起给你装了]

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-version2
重启电脑,打开资源管理器,出现 Linux 的图标就说明我们的 WSL 安装完成了。

251d994a-f29d-11ed-90ce-dac502259ad0.png

下面我们安装 Linux,这里推荐使用 Ubuntu。打开微软的商店下载 Ubuntu,这里提供了 3 个 LST 长期支持版本,笔者之前已经使用 20.04LTS 版本完成的环境的搭建,这里就使用 22.04LTS 版本为大家重新演示。

255e5674-f29d-11ed-90ce-dac502259ad0.png

完成安装后打开 Ubuntu,创建好账户。

25982eb2-f29d-11ed-90ce-dac502259ad0.png

至此 WSL 安装完成了:

25b2abf2-f29d-11ed-90ce-dac502259ad0.png

但是我们还需要做一些额外的配置去优化我们的 WSL,WSL 是装在我们的系统盘的,时间长了很容易占用我们的系统盘空间,空间不足还会导致 WSL 系统崩溃,因此需要把 WSL 导出到别的盘符。 停止 WSL 的运行,打开 PowerShell 输入一下命令:

wsl--shutdown
输入一下命令检测 WSL 是否停止:
wsl-l-v

25df57a6-f29d-11ed-90ce-dac502259ad0.png

这里笔者把 WSL 导出至 D 盘了,目录建议先建好[一定要加 xxx.tar 文件]不然会出现拒绝访问的错误。

wsl--exportUbuntu-22.04D:wsl2-ubuntu22.04ubuntu.tar

25fdb732-f29d-11ed-90ce-dac502259ad0.png

④注销 Linux

wsl--unregisterUbuntu-22.04
261ddc9c-f29d-11ed-90ce-dac502259ad0.png⑤导入 Linux
wsl--importUbuntu-22.04D:wsl2-ubuntu22.04D:wsl2-ubuntu22.04ubuntu.tar--version2

2638fe46-f29d-11ed-90ce-dac502259ad0.png

⑥点进我们设置好的目录,ext4.vhdx 说明导出,导入成功了

xxx.tar 文件大家自行删除即可:

delD:wsl2-ubuntu22.04ubuntu.tar

267b502a-f29d-11ed-90ce-dac502259ad0.png

⑦设置默认登录用户

ubuntu20.04config--default-userxxx

Windows 连接 Linux

打开 VsCode,安装“WSL”这个插件: 26973c54-f29d-11ed-90ce-dac502259ad0.png 安装完成后点击左下角后,选择自己要连接的Linux子系统,右下角变成笔者所示的显示 Ubuntu xxx 就说明成功了。

26fac6ac-f29d-11ed-90ce-dac502259ad0.png

打开终端,我们发现控制台显示的东西很熟悉,没错,这就是你的 Linux 终端了,你可以在这里使用 Linux 指令去操作你的系统了。

273b4038-f29d-11ed-90ce-dac502259ad0.png

Linux 环境搭建

软件包换源:

debhttps://mirrors.ustc.edu.cn/ubuntu/jammymainrestricteduniversemultiverse
deb-srchttps://mirrors.ustc.edu.cn/ubuntu/jammymainrestricteduniversemultiverse

debhttps://mirrors.ustc.edu.cn/ubuntu/jammy-securitymainrestricteduniversemultiverse
deb-srchttps://mirrors.ustc.edu.cn/ubuntu/jammy-securitymainrestricteduniversemultiverse

debhttps://mirrors.ustc.edu.cn/ubuntu/jammy-updatesmainrestricteduniversemultiverse
deb-srchttps://mirrors.ustc.edu.cn/ubuntu/jammy-updatesmainrestricteduniversemultiverse

debhttps://mirrors.ustc.edu.cn/ubuntu/jammy-backportsmainrestricteduniversemultiverse
deb-srchttps://mirrors.ustc.edu.cn/ubuntu/jammy-backportsmainrestricteduniversemultiverse

##Notrecommended
#debhttps://mirrors.ustc.edu.cn/ubuntu/jammy-proposedmainrestricteduniversemultiverse
#deb-srchttps://mirrors.ustc.edu.cn/ubuntu/jammy-proposedmainrestricteduniversemultiverse

在控制台中输入以下指令,更换软件源:

sudocp/etc/apt/sources.list/etc/apt/sources.list.bak

sudovim/etc/apt/sources.list

对于不熟悉 Linux 的伙伴们,这里提供一些 Linux 指令帮助大家快速删除文件的内容:

gg
100dd
将软件源复制进去后,点击[esc]键,输入[ :wq ]保存退出。

更新软件包:

sudoapt-getupdate

环境搭建如下:

安装必要的库和工具:

sudoapt-getinstallbuild-essentialgccg++makezlib*libffi-dev

sudoapt-getinstalllibc6

sudoapt-getinstalle2fsprogspkg-configflexbisonperlbcopenssllibssl-devlibelf-devbinutilsbinutils-devlibdwarf-devu-boot-toolsmtd-utilsgcc-arm-linux-gnueabicpiodevice-tree-compiler
配置 Python:
sudoupdate-alternatives--install/usr/bin/pythonpython/usr/bin/python3.81

sudoupdate-alternatives--install/usr/bin/python3python3/usr/bin/python3.81

python--version
安装 pip:
sudoaptinstallpython3-pip
在家目录下创建源码目录:
mkdir/home/ohos/openharmony
安装编译工具:
pip3installscons

scons-v

pip3installkconfiglib

pip3installpycryptodomeecdsa
安装 gcc_riscv32:
wgethttps://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz

tar-xvfgcc_riscv32-linux-7.3.0.tar.gz-C~/

rmgcc_riscv32-linux-7.3.0.tar.gz

echo'exportPATH=~/gcc_riscv32/bin:$PATH'|tee-a~/.bashrc

source~/.bashrc
安装 git、git-lfs:
sudoaptinstallgit-lfs

wgethttps://gitee.com/oschina/repo/raw/fork_flow/repo-py3

sudomvrepo-py3/usr/local/bin/repo

sudochmoda+x/usr/local/bin/repo

pipinstallrequests
配置 git:
gitconfig--globaluser.email"xxxx@qq.com"

gitconfig--globaluser.name"xxxx"

ssh-keygen-trsa-C'xxxx@qq.com'

cat~/.ssh/id_rsa.pub
将公钥添加到自己的账户中:

275ae000-f29d-11ed-90ce-dac502259ad0.png

安装 repo:

curl-shttps://gitee.com/oschina/repo/raw/fork_flow/repo-py3>repo

chmoda+xrepo

sudomvrepo/usr/local/bin/

OpenHarmony 获取源码

3.0LTS 长期支持版本:

repoinit-uhttps://gitee.com/openharmony/manifest.git-brefs/tags/OpenHarmony-v3.0-LTS--no-repo-verify

reposync-c[这一步会稍微有些慢]

repoforall-c'gitlfspull'

在源码的同级目录补充环境。

安装 gn:

mkdir-p~/openharmony/prebuilts/build-tools/linux-x86/bin/

wgethttps://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz

tar-xvfgn-linux-x86-1717.tar.gz-C~/openharmony/prebuilts/build-tools/linux-x86/bin/

rmgn-linux-x86-1717.tar.gz
安装 nijia:
wgethttps://repo.huaweicloud.com/harmonyos/compiler/ninja/1.10.1/linux/ninja-linux-x86-1.10.1.tar.gz

tar-xvfninja-linux-x86-1.10.1.tar.gz-C~/openharmony/prebuilts/build-tools/linux-x86/bin/

rmninja-linux-x86-1.10.1.tar.gz
安装 hb:
pip3installbuild/lite

echo'exportPATH=~/.local/bin:$PATH'|tee-a~/.bashrc

source~/.bashrc

hb-h

最后一步中会报错:

[ImportError:cannotimportname‘Mapping’from‘collections’(/usr/lib/python3.10/collections/init.py)]
这是由于 Ubuntu22.04 内置了 python3.10 版本过高。

解决办法如下找到最后一行的报错信息:

[File“/root/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py”,line9,in
fromcollectionsimportMapping]

打开这个文件:

277dfce8-f29d-11ed-90ce-dac502259ad0.png


fromcollectionsimportMapping
#改为
fromcollections.abcimportMapping
修改完文件后保存,再次执行 hb -h 就解决了。用 Ubuntu20.04 的伙伴们内置 python3.8 就不会出现这样的问题。

编译:使用 hb 对源码进行编译,在源码根目录下输入以下指令进行编译:

hbset

选择 hisillicon wifiiot_hispark_pegasus:

27f8f416-f29d-11ed-90ce-dac502259ad0.png

输入最后的编译指令:

hbbuild-f

观察控制台的输出情况:

28159198-f29d-11ed-90ce-dac502259ad0.png

编译完成,Linux 环境搭建成功!

Windows环境搭建

完成了 Linux 下的源码编译,下面开始配置 Windows 环境。

HiBurn 下载:

https://ost.51cto.com/resource/29

MobaXTerm 下载:

https://mobaxterm.mobatek.net/download.html

具体的安装流程就不具体说了,没有什么需要注意的,正常安装即可。准备好这两个工具后就可以开始进行烧录和串口调试的测试了。

28754142-f29d-11ed-90ce-dac502259ad0.png

①烧录

将智能家居板连接至主机,打开 HiBurn:

2894fce4-f29d-11ed-90ce-dac502259ad0.png

配置 Hiburn:

28d96348-f29d-11ed-90ce-dac502259ad0.png

选择文件,烧录好的文件在源码根目录下的 out 目录里,选择名为“Hi3861_wifiiot_app_allinone.bin” 的文件,点击 connect 后并重启开发板即可。

烧录完成后点击“disconnect”断开连接,把端口空出来给下一步的串口调试工具使用

②串口调试

创建连接:

29041642-f29d-11ed-90ce-dac502259ad0.png

重启开发板,观察开发板的信息输出:

29308bdc-f29d-11ed-90ce-dac502259ad0.png

到这里,Windows + Linux 环境下的开发环境也搭建完成了。

结束语

初次发帖,还请大家多多指点,希望能够帮助到学习 OpenHarmony 的伙伴们!

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    446

    文章

    47705

    浏览量

    408864
  • 智能家居
    +关注

    关注

    1911

    文章

    9138

    浏览量

    179174
  • 开发套件
    +关注

    关注

    2

    文章

    125

    浏览量

    24152
  • 环境搭建
    +关注

    关注

    0

    文章

    51

    浏览量

    8985
  • OpenHarmony
    +关注

    关注

    23

    文章

    3214

    浏览量

    15153

原文标题:OpenHarmony入门攻略:环境搭建

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一种简单的OpenHarmony环境搭建方法

    本文介绍一种简单的OpenHarmony环境搭建方法。
    的头像 发表于 03-14 13:58 3087次阅读
    一种简单的<b class='flag-5'>OpenHarmony</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>方法

    Qt快速入门攻略

      本手册是广州天嵌计算机科技有限公司与Qter开源社区联合出品的入门教程,基于天嵌E9卡片电脑,目的是让E9用户可以快速完成Qt环境搭建并开始Qt嵌入式编程。该教材中使用了最新的Qt 5.4.0
    发表于 10-26 11:46

    一种简单的OpenHarmony开发环境搭建

    本帖最后由 jf_39160458 于 2022-2-22 16:46 编辑 本文介绍一种简单的OpenHarmony环境搭建方法。首先我们要知道环境
    发表于 02-21 09:25

    OpenHarmony轻量与小型系统入门概述

    简介 OpenHarmony轻量和小型系统适用于内存较小的IOT设备(参考内存≥128KiB)。通过本文,开发者可以快速熟悉OpenHarmony轻量和小型系统的环境搭建、编译、烧录、
    发表于 05-06 15:48

    OpenHarmony系统基础环境搭建

    搭建系统基础环境搭建各个开发板环境前,需要完成OpenHarmony系统基础环境
    发表于 08-05 10:06

    Windows搭建OpenHarmony编译环境

    OpenHarmony编译呢?答案是:可以。所以,我们今天来尝试在Windows环境搭建OpenHarmony编译环境。 本次
    发表于 08-16 16:07

    arduino轻松入门一(编程环境搭建)

    arduino arduino轻松入门一(编程环境搭建)
    发表于 12-22 15:25 21次下载

    利用虚拟机VMWare搭建的Linux环境入门教程

    利用虚拟机VMWare搭建的Linux环境入门教程
    发表于 10-31 14:48 10次下载
    利用虚拟机VMWare<b class='flag-5'>搭建</b>的Linux<b class='flag-5'>环境</b><b class='flag-5'>入门</b>教程

    openharmony教程 openharmony快速入门

    框架以及平台,为了更好的促进万物互联。那么openharmony如何入门openharmony教程,下面小编为大家带来openharmony教程。
    的头像 发表于 06-22 09:30 4032次阅读

    HT合泰单片机 入门 开发环境搭建(一)

    HT合泰单片机 入门 开发环境搭建(一)
    发表于 11-13 13:21 16次下载
    HT合泰单片机 <b class='flag-5'>入门</b> 开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>(一)

    OpenHarmony开发环境搭建

    按照OpenHarmony官方提供的环境搭建,配置号gn、hb等环境,可以参考:获取源码及https://gitee.com/openharmony
    的头像 发表于 12-24 17:44 2605次阅读
    <b class='flag-5'>OpenHarmony</b>开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    OpenHarmony开发环境搭建方法

    本文介绍一种简单的OpenHarmony环境搭建方法。
    的头像 发表于 03-02 13:49 2025次阅读
    <b class='flag-5'>OpenHarmony</b>开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>方法

    HMDTU-OpenHarmony-Hi3861环境搭建

    HMDTU-OpenHarmony-Hi3861环境搭建
    的头像 发表于 05-06 12:51 477次阅读
    HMDTU-<b class='flag-5'>OpenHarmony</b>-Hi3861<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    【鸿蒙开发】一种简单的OpenHarmony开发环境搭建

    本文介绍一种简单的OpenHarmony环境搭建方法。首先我们要知道环境搭建包括哪些内容,这样我们才好知道如何去
    的头像 发表于 02-28 11:02 712次阅读
    【鸿蒙开发】一种简单的<b class='flag-5'>OpenHarmony</b>开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    Windows搭建OpenHarmony编译环境

    OpenHarmony编译呢?答案是:可以。所以,我们今天来尝试在Windows环境搭建OpenHarmony编译环境。本次
    的头像 发表于 08-09 08:26 727次阅读
    Windows<b class='flag-5'>搭建</b><b class='flag-5'>OpenHarmony</b>编译<b class='flag-5'>环境</b>