想了解更多关于开源的环境搭建篇内容,请访问:
51CTO 开源基础软件社区
https://ost.51cto.com
此系列是发套笔者关于OpenHarmony智能家居开发套件(Hi3861芯片)的学习历程,本篇作为入门环节,环境搭建篇将具体介绍OpenHarmony的发套环境搭建。
目前Window系统已经能够用过DevEco Device Tool工具独立完成大部分的环境搭建篇OpenHarmony开发工作,而先前通过HiBurn,发套MobaXterm工具进行的环境搭建篇烧录,串口调试并不方便,发套下面具体介绍如何在Windows系统上配置环境。环境搭建篇
DevEco Device Tool
我们双击下载Windows(64-bit)版本的ZIP压缩包即可。
下载完成后请各位自行解压,打开解压号的文件,双击exe文件进行安装。
点击“下一步”。
选择“我接受…”,点击“下一步”。
选择安装的目录,点击"下一步"[不建议安装在C盘]。
因为笔者自己的电脑上已经安装过Python和VSCode了,这里的状态是ok,如果没有装过Python和VsCode的伙伴们也不用担心,你可以通过这个安装软件下载python和VsCode。
如果你想自己安装Python和VsCode,笔者也会提供他们的官网地址,供小伙伴们参考,这里就不详细说明了。要注意工具对应的版本需求,不能错。
Python
VsCode
点击“安装”等待…
点击“完成”完成DevEco Device Tool的安装。
现在我们打开VsCode,就会发现左侧栏中多了一个工具。
那么至此Windows开发OpenHarmony的环境已经完成了一大半,是不是很简单。
我们创建的项目,OpenHarmony的源码在src目录下。
项目已经建好了,下面就可以开始编译了。
我们可以看到控制台的输出,表示我们在32秒的时间完成了编译[首次编译时会自动下载相关的依赖耗时可能较长]。
点击“upload”进行烧录,我们发现控制台报了错,是因为烧录工具和端口我们自己去手动配置。
在进行烧录端口配置之前我们需要将智能家居板连接到我们的主机上,并确保主机能够识别到这个端口。在设备管理器中可以查看智能家居板的端口信息。
在DevEco中,配置端口号,图片中漏标了upload_speed 建议改成115200。
完成配置后我们再次点击“upload”,看到控制台输出如下“Connrct…”就说明我们的烧录配置已经成功完成,此时只需要点击主板右下角的RET按钮,重启开发板即可开始烧录。如果还出现了相同的错误就点击“manager”,再点击底下的“confirm”刷新一下配置。
完成烧录。
点击“Monitor”开始串口调试,点击主板“RET”键重启开发板,开始调试,注意观察控制台输出的信息。
如果需要中断程序,按下[Ctrl + C]即可。
至此我们已经完成了Windows下OpenHarmony环境的配置。
尽管Windows很方便,可以独立完成OpenHarmony开发的大部分工作,但是难免有时候需要使用到Linux系统对源码进行编译,那么就不得不使用Windows + Linux的环境进行开发。本篇不使用虚拟机搭建Windows,因为虚拟机的性能受到了限制,对开发效率而言是个痛点,本篇将使用WSL详细讲解Windows + Linux的环境搭建。
不了解WSL的伙伴们可以查询相关信息,这里就不细说了,简单的讲就是Windows subSystem Linux,是不是一下就理解了,我们的Linux将不再局限于原来虚拟机的配置,而是直接作为我们Windows系统下的一个子系统进行运营,性能将被大大地释放出来。
wsl --install
启动“适用于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
5. 完成安装后打开Ubuntu,创建好账户。
至此WSL安装完成了。
但是我们还需要做一些额外的配置去优化我们的WSL,WSL是装在我们的系统盘的,时间长了很容易占用我们的系统盘空间,空间不足还会导致WSL系统崩溃,因此需要把WSL导出到别的盘符。
wsl --shutdown
wsl -l -v
wsl --export Ubuntu-22.04 D:\wsl2-ubuntu22.04\ubuntu.tar
4. 注销Linux。
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-22.04 D:\wsl2-ubuntu22.04\ D:\wsl2-ubuntu22.04\ubuntu.tar --version 2
del D:\wsl2-ubuntu22.04\ubuntu.tar
ubuntu20.04 config --default-user xxx
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiversedeb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiversedeb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiversedeb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb-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.baksudo vim /etc/apt/sources.list
对于不熟悉Linux的伙伴们,这里提供一些Linux指令帮助大家快速删除文件的内容。
gg100dd
将软件源复制进去后,点击[esc]键,输入 [ :wq ]保存退出。
更新软件包。
sudo apt-get update
sudo apt-get install build-essential gcc g++ make zlib* libffi-devsudo apt-get install libc6sudo 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 1sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1python --version
sudo apt install python3-pip
mkdir /home/ohos/openharmony
pip3 install sconsscons -vpip3 install kconfiglibpip3 install pycryptodome ecdsa
wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gztar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/rm gcc_riscv32-linux-7.3.0.tar.gzecho 'export PATH=~/gcc_riscv32/bin:$PATH' | tee -a ~/.bashrcsource ~/.bashrc
sudo apt install git-lfswget https://gitee.com/oschina/repo/raw/fork_flow/repo-py3sudo mv repo-py3 /usr/local/bin/reposudo chmod a+x /usr/local/bin/repopip 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 > repochmod a+x reposudo mv repo /usr/local/bin/
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.0-LTS --no-repo-verifyrepo 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.gztar -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.gztar -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/liteecho 'export PATH=~/.local/bin:$PATH' | tee -a ~/.bashrcsource ~/.bashrchb -h
最后一步中会报错 [ImportError: cannot import name ‘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”, line 9, in <module>from collections import Mapping] 打开这个文件。
from collections import Mapping # 改为from collections.abc import Mapping
修改完文件后保存,再次执行hb -h就解决了。用Ubuntu20.04的伙伴们内置python3.8就不会出现这样的问题。
使用hb对源码进行编译,在源码根目录下输入以下指令进行编译。
hb set
选择hisillicon wifiiot_hispark_pegasus。
输入最后的编译指令。
hb build -f
观察控制台的输出情况。
编译完成,Linux环境搭建成功!
完成了Linux下的源码编译,下面开始配置Windows环境。
HiBurn-资源下载-开源基础软件社区-51CTO.COM
MobaXterm
具体的安装流程就不具体说了,没有什么需要注意的,正常安装即可。准备好这两个工具后就可以开始进行烧录和串口调试的测试了。
创建连接。
重启开发板,观察开发板的信息输出。
到这里,Windows + Linux 环境下的开发环境也搭建完成了。
想了解更多关于开源的内容,请访问:
51CTO 开源基础软件社区
https://ost.51cto.com
责任编辑:jianghua 来源: 51CTO 开源基础软件社区 鸿蒙操作系统(责任编辑:休闲)
中国金融投资管理(00605.HK)公布消息:将考虑向罗锐及关雪玲提起法律诉讼
上半年房地产证券化产品发行规模创新高 银行贷款仍是房企主要的融资途径
四川阿坝州提高孤儿基本生活最低养育标准 2022年1月起执行