当前位置: 首页 > 科技观察

别找了,这可能是全网最全刷Harmony(OpenHarmony)的攻略

时间:2023-03-14 19:32:05 科技观察

更多内容请访问:Harmonyos技术社区https://harmonyos.51cto.com总结:我相信很多同学都玩过HarmonyOS,但估计大部分只是用HarmonyOS来开发App,这和开发AndroidApp没什么两样。不过,鸿蒙还有一个比较有意思的玩法,就是和硬件结合,也就是IoT。本文将教大家如何将鸿蒙刷入开发板,通过鸿蒙可以控制更多的硬件。本文目的是将鸿蒙2.0刷入润和Hi3861、Hi3516、Hi3518开发板。目前网上刷鸿蒙2.0的文章很多。我整理了一下,结合自己的经验。在这篇文章中,我讲解了从配置环境,编译鸿蒙源码,到刷机的整个过程。注:这里的Hi3861相当于Ardiuno,价格差不多。主要用来控制外设,本身并没有太多的计算能力。Hi3516和Hi3518的配置比较高,支持GUI。有点像树莓派。本文主要以Hi3861为例。其他两块开发板的编译烧写过程类似。Hi3581需要分编译环境和烧录环境。目前编译环境只能是linux。推荐使用UbuntuLinux20.04。使用此版本将为您省去很多麻烦。至少Python环境直接是3.8.5,可以忽略Python,因为要编译HarmonyOS,Python版本是3.7以上。经测试,Python3.9没有问题。Hi3581的刷机环境需要使用Windows,推荐使用Windows10。Home和Professional版本都经过测试,没有问题。Windows企业版没有测试过,但是大概率不会有问题。所以重点是:需要准备Ubuntu20.04和Windows10。在Ubuntu20.04可以安装的虚拟机中,我使用的是VMWare,这样可以通过快照来切换不同的状态。一、配置编译环境现在开始配置Ubuntu20.04的编译环境。读者需要按照以下步骤操作:(1)配置repo工具如果你的Linux系统没有配置过repo命令,你需要下载并配置repo命令行工具:mkdir~/bin/curlhttps://gitee.com/oschina/repo/raw/fork_flow/repo-py3>~/bin/repochmod+x~/bin/repoecho'exportPATH=~/bin:$PATH'>>~/.bashrcsource~/.bashrc如果没有curl命令,需要先执行以下命令下载curl:sudoaptinstallcurl(2)下载HarmonyOS源码读者可以下载最新的HarmonyOS源码mkdir-p~/harmonyos/openharmony&&cd~/harmonyos/openharmonysudoaptinstall--no-install-recommendsgitpython#repo工具本身是一个python脚本,它会调用git命令下载单个代码仓库gitconfig--globaluser.name"yourname"gitconfig--globaluser.email"your-email-address"repoinit-uhttps://gitee.com/openharmony/manifest.git-bmaster--no-repo-verifyreposync-c#以后只需要执行这个comm并每天同步远程仓库的修改。读者需要将yourname更改为您自己的姓名,将your-email-address更改为您的电子邮件。(3)查看终端是否安装了mkfs.vfat和mcopy命令,执行这两个命令。如果没有,使用apt安装这两个命令(4)安装各种工具和包。在终端执行以下命令安装:sudoapt-getinstalldosfstoolsmtools#官??方文档中描述的两个文件系统打包工具sudoapt-getinstallzip#虽然官方文档没有写,但是打包rootfs的过程中需要sudoaptinstallsmtd-utils#3518需要打包jffs2镜像的mkfs.jffs2命令需要安装sudoaptinstallbuild-essential#安装gcc/g++/make等工具,ffmpeg测试时需要用到下载gn/ninja/LLVM/hc-gen包URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compilerDOWNLOAD_DIR=~/Downloads#下载目录,可以修改TOOLCHAIN_DIR=~/harmonyos/toolchain#工具链存放目录,可以自行修改[-e$DOWNLOAD_DIR]||mkdir$DOWNLOAD_DIR[-e$TOOLCHAIN_DIR]||mkdir-p$TOOLCHAIN_DIRwget-P$DOWNLOAD_DIR$URL_PREFIX/gn/1523/linux/gn.1523.tarwget-P$DOWNLOAD_DIR$URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tarwget-P$DOWNLOAD_DIR$URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tarwget-P$DOWNLOAD_DIR$URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar#编译hi3861需要riscv编译工具链wget-P$下载目录$URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz#解压gn/ninja/LLVM/hc-gen包:tar-C$TOOLCHAIN_DIR/-xvf$DOWNLOAD_DIR/gn.1523.tartar-C$TOOLCHAIN_DIR/-xvf$DOWNLOAD_DIR/ninja.1.9.0.tartar-C$TOOLCHAIN_DIR/-xvf$DOWNLOAD_DIR/llvm-linux-9.0.0-34042.tartar-C$TOOLCHAIN_DIR/-xvf$DOWNLOAD_DIR/hc-gen-0.65-linux.tartar-C$TOOLCHAIN_DIR/-xvf$DOWNLOAD_DIR/gcc_riscv32-linux-7.3.0.tar.gz#添加gn/ninja/LLVM/hc-gen路径配置到~/.bashrc:cat<>~/.bashrcTOOLCHAIN_DIR=$TOOLCHAIN_DIRexportPATH=\$TOOLCHAIN_DIR/gn:\$PATHexportPATH=\$TOOLCHAIN_DIR/ninja:\$PATHexportPATH=\$TOOLCHAIN_DIR/llvm/bin:\$PATHexportPATH=\$TOOLCHAIN_DIR/hc-gen:\$PATHexportPATH=\$TOOLCHAIN_DIR/gcc_riscv32/bin:\$PATHexportPATH=~/.local/bin:\$PATH#用户pip二进制工具目录EOF#有效环境变量source~/.bashrc(6)更改pip源加速下载执行以下命令重新配置pip.conf文件mkdir~/.pip/cat<~/.pip/pip.conf[global]index-url=https://mirrors.huaweicloud.com/repository/pypi/simpletrusted-host=mirrors.huaweicloud.comtimeout=120EOF另外,如果没有pip命令,是因为默认叫pip3,可以执行以下ing命令创建pip命令ln-s/usr/bin/pip3/usr/bin/pip(7)继续安装各种包#安装setuptools和kconfiglibpip3installsetuptoolskconfiglib#安装编译hi3861pip3installsconsecdsapycryptodome2需要的pip包。编译HarmonyOS源码(1)查看支持平台通过执行pythonbuild.py-h命令查看HarmonyOS目前支持哪些平台,如图1所示,第一个是hi3561,第二个是hi3518,第三个一个是hi3861。(2)分别执行和3条命令编译目标文件的3个版本。如果要添加调试信息,可以添加-bdebug#compilehi3561pythonbuild.pyipcamera_hi3516dv300-bdebug#compilehi3518pythonbuild.pyipcamera_hi3518dv300-bdebug#compilehi3861pythonbuild.pywifiiotexecution这3行命令会在后面编译好的二进制文件中下载文章。3、烧录HarmonyOS本文以Hi3861开发板为例,开发板样式如图2所示,需要按照以下步骤进行烧录。(1)将Hi3861_wifiiot_app_allinone.bin文件复制到Windows10中(放在一个目录下即可)。(2)用Hi3861线连接开发板和PC。(3)查看设备管理器,看Hi3861开发板是否被正确识别,如果识别正确,如图3所示。如果设备管理器中没有“端口(COM和LPT)”节点,则为因为它是隐藏的。点击“查看”>“显示隐藏的设备”菜单项,会显示出来,如图4所示。通常Windows10会自动安装驱动,如果不幸没有自动安装驱动,可以自行下载。Hi3861采用CH340G芯片,读者可以在谷歌搜索芯片驱动下载地址,或在本文后面下载驱动文件。(4)运行HiBurn.exe这个工具是海思出品的,用于烧录开发板。华为推出的驱动开发工具内置了该工具,读者也可以在本文后面下载该工具。运行后,在COM中选择图3中看到的COM端口号(如图5所示),本例为COM4。(5)选择传输速率点击HiBurn中的Setting>com设置菜单项,弹出Com设置对话框,Baud选择3000000,使烧录速度更快,如图6所示。(6)点击Select文件按钮,选择Hi3861_wifiiot_app_allinone.bin文件,在下方列表中会出现图7所示的3个编程项。这个文件实际上是多个燃烧项目的组合。(7)开始燃烧。选中发送文件按钮旁边的自动刻录复选框,然后单击上面的连接按钮。此时,下方日志栏会出现Connecting字样,如图8。(8)最后按图2所示开发板上的Reset键开始烧录,如图9所示。这是因为Hi3861开发板需要重启才能检测到开机动作。遇到烧录命令就烧录,否则正常启动。如果烧写成功,会出现如图9所示的信息。另外,PL2302芯片集成在AICamera和DIYIPC套件附带的USB串口线中,需要安装USB-to-SerialCommPort.exe驱动才能被Windows识别。下载链接为:http://www.hihope.org/downloadOK,然后就可以愉快的玩了。基于HI3861等HarmonyOS开发板的有趣物联网项目的文章和视频课程将陆续推出,敬请期待。文章后续内容及相关附件,可点击下方原文链接了解原文链接:https://developer.51cto.com/art/202102/647152.htm更多内容请访问:与华为官方Harmonyos技术社区共建https://harmonyos.51cto.com