今日看点

harmonyos刷机,别找了,这可能是全网最全的鸿蒙(OpenHarmony)刷机指南

发表于话题:HarmonyOS 2
发布时间:2021-06-02

摘要:相信很多同学都玩过鸿蒙(HarmonyOS)了,不过估计大多数同学都只是用鸿蒙开发App,与开发Android App也没啥区别。不过鸿蒙还有更有意思的玩法,那就是与硬件结合,也就是IoT。本文将教大家如何将鸿蒙刷到开发板上,通过这些开发板可以控制更多的硬件。

本文的目的是将鸿蒙2.0刷到润和Hi3861、Hi3516和Hi3518开发板上。目前网上已经有很多关于刷鸿蒙2.0的文章,我整理了一下,并结合自己的经验,在本文中阐述了从配置环境,到编译鸿蒙源代码,再到刷机的全过程。

注意:这里的Hi3861相当于Ardiuno,价格也差不多,主要用于控制外设,本身并没有多少计算能力,Hi3516和Hi3518的配置相对较高,支持GUI。有点类似于树莓派。

本文主要以Hi3861为例,其他两个开发板的编译和刷机过程类似。

Hi3581需要分为编译环境和烧录环境,目前编译环境只能是Linux,推荐使用Ubuntu Linux 20.04,用这个版本你会少了很多麻烦。至少Python环境直接是3.8.5了,大家可以不用理会Python了,因为编译HarmonyOS,Python的版本是3.7或以上版本即可,经过测试,Python 3.9也没问题。

Hi3581的刷机环境需要使用Windows,推荐使用Windows 10,Home版、专业版都经过了测试,没问题,企业版的Windows还没测试,但大概率也没问题。

所以这里是重点:需要准备Ubuntu 20.04和Windows 10。 Ubuntu 20.04可以安装的虚拟机中,我用的是VMWare,这样可以通过快照在不同状态之前切换。

1. 配置编译环境

现在开始配置Ubuntu 20.04的编译环境,读者需要按着如下几步操作:

(1)配置 repo 工具

如果你的Linux系统上还没有配置repo命令,需要先按下面的操作下载并配置repo命令行工具:

mkdir ~/bin/

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo

chmod +x ~/bin/repo

echo 'export PATH=~/bin:$PATH'>> ~/.bashrc

source ~/.bashrc

如果还没有curl命令,需要先执行下面的命令下载curl:

sudo apt install curl

(2)下载HarmonyOS源代码

读者可按下面的操作下载HarmonyOS的最新源代码

mkdir -p ~/harmonyos/openharmony && cd ~/harmonyos/openharmony

sudo apt install --no-install-recommends git python # repo工具本身是python脚本,它会调用git命令下载单个代码仓

git config --global user.name "yourname"

git config --global user.email "your-email-address"

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify

repo sync -c  # 以后每天同步远程仓的修改,只需要执行这一条命令即可

读者需要将yourname改成自己的名字,将your-email-address改成自己的email。

(3)检测mkfs.vfat和mcopy命令是否安装

在终端执行这两个命令,如果没有安装,使用apt安装这两个命令

(4)安装各种工具和包

在终端执行下面的命令进行安装:

sudo apt-get install dosfstools mtools  # 官方文档说明的两个文件系统打包工具

sudo apt-get install zip       # 官方文档虽然没有写,但是打包rootfs过程中需要使用

sudo apt install mtd-utils     # 3518需要打包 jffs2 镜像的mkfs.jffs2 命令,需要安装这个包

sudo apt install build-essential # 安装gcc/g++/make等工具,ffmpeg的测试过程中需要使用

(5)下载各种编译器和工具包

下面的命令分别下载了gn、ninja、LLVM、hc-gen包,一步到位

# 下载gn/ninja/LLVM/hc-gen包

URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler

DOWNLOAD_DIR=~/Downloads                # 下载目录,可自行修改

TOOLCHAIN_DIR=~/harmonyos/toolchain     # 工具链存放目录,可自行修改

[ -e $DOWNLOAD_DIR ] || mkdir $DOWNLOAD_DIR

[ -e $TOOLCHAIN_DIR ] || mkdir -p $TOOLCHAIN_DIR

wget -P $DOWNLOAD_DIR $URL_PREFIX/gn/1523/linux/gn.1523.tar

wget -P $DOWNLOAD_DIR $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar

wget -P $DOWNLOAD_DIR $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar

wget -P $DOWNLOAD_DIR $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar

# 编译 hi3861 需要 riscv 编译工具链

wget -P $DOWNLOAD_DIR $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.tar

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/ninja.1.9.0.tar

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/llvm-linux-9.0.0-34042.tar

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/hc-gen-0.65-linux.tar

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/gcc_riscv32-linux-7.3.0.tar.gz

# 向 ~/.bashrc 中追加gn/ninja/LLVM/hc-gen路径配置:

cat  ~/.bashrc

TOOLCHAIN_DIR=$TOOLCHAIN_DIR

export PATH=\$TOOLCHAIN_DIR/gn:\$PATH

export PATH=\$TOOLCHAIN_DIR/ninja:\$PATH

export PATH=\$TOOLCHAIN_DIR/llvm/bin:\$PATH

export PATH=\$TOOLCHAIN_DIR/hc-gen:\$PATH

export PATH=\$TOOLCHAIN_DIR/gcc_riscv32/bin:\$PATH

export PATH=~/.local/bin:\$PATH       # 用户pip二进制工具目录

EOF

# 生效环境变量

source ~/.bashrc

(6)改变pip源,加速下载

执行下面的命令重新配置pip.conf文件

mkdir ~/.pip/

cat “显示隐藏的设备”菜单项,就会显示,如图4所示。

通常Windows 10会自动安装驱动,如果不幸没有自动安装驱动,那么可以自行下载。Hi3861使用的是CH340G芯片,读者可自己在google搜索该芯片驱动的下载地址,也可以在本文后面下载驱动文件。

(4)运行HiBurn.exe

这个工具是海思做的,用于烧录开发板,华为推出的驱动开发工具内置了该工具,读者也可以在本文后面下载该工具。

运行后,在COM中选择图3看到的COM端口号(如图5所示),本例是COM4。

(5)选择传输速率

点击HiBurn中的Setting > com settings菜单项,弹出Com settings对话框,在Baud中选择3000000,让烧录速度更快,如图6所示。

(6)点击Select file按钮,选择Hi3861_wifiiot_app_allinone.bin文件,在下方列表中会出现如图7所示的3个烧录项。这个文件其实是多个烧录项的合体。

(7)开始烧录

选中Send file按钮旁边的Auto burn复选框,然后点击上方的connect按钮,这时下方日志栏会出现Connecting字样,如图8所示。

(8)最后按一下图2所示开发板上的Reset Key,就会开始烧录,如图9所示。

这是因为Hi3861开发板需要重启,才会检测boot动作,如果遇到烧录的指令,就会烧录,否则就会正常启动。

如果烧录成功,会显示如图9所示的信息。

另外,AI Camera和DIY IPC套件附赠的USB串口线中集成了PL2302芯片,需要安装USB-to-Serial Comm Port.exe驱动才可以被Windows识别,下载地址: http://www.hihope.org/download

OK,然后就可以愉快滴玩耍了。后期会推出基于HI3861以及其他HarmonyOS开发板的有趣的IoT项目的文章和视频课程,敬请期待。

文章后续内容和相关附件可以点击下面的原文链接前往学习

【编辑推荐】

【责任编辑:jianghua TEL:(010)68476606】

点赞 0

标签组:[linux系统

本文来源:https://www.kandian5.com/articles/23939.html

相关阅读

维多利亚女王爱的梦幻岛奥斯本庄园介绍

维多利亚和阿尔伯特都是品味高雅的艺术家,两个人都不简单,维多利亚是名副其实的“带货女王”她经常从珠宝商那里定制爱情信物(so aweet~),带旺了珠宝行业,甚至还发明了婚纱。阿尔伯特也很有才干,除了...

2025-11-03

辣椒怎么区分辣度

斯科维尔是辣椒的辣度单位,一定量的辣椒素放入一定量的水中再用舌尖尝试其辣得到的辣度就是斯科维尔,斯科维尔指数越高其辣椒越辣,最先使用该辣度单位的是美国药剂师韦尔伯·斯科维尔,他于1912年提出了这个单...

2025-11-03

腹肌怎么练

我们可能都听说过腹肌,那么什么是腹肌呢?因此,腹肌是人体结缔组织的重要组成部分,包括内斜肌、外斜肌、腹直肌和腹横肌。通过我们的不断训练,可以让这些肌肉表现得更明显。每个人的腹肌养成日记都是不一样的,但...

2025-11-03

宋金和议是什么盟约

宋靖康二年(西元一一二七),汴京陷金,徽、钦二宗北狩,北宋亡。其後宋室南渡,改元建炎,以迄绍兴十一年(一一四一)之十五年间,与金始终处於交战状态。惟交战期间,宋未尝一日忘和,一面请和,一面抗战。宋金酝...

2025-11-03

隆兴和议南宋割地求和

隆兴和议,是继绍兴和议之后南宋与金朝订立的第二个屈辱和约。宋孝宗即位后欲进攻金朝,收复中原,便起用老将张浚等发动“隆兴北伐”,却于隆兴元年(1163年)在符离被金军击溃。朝臣汤思退等群起攻击张浚北伐误...

2025-11-03

曹丕任命自家贾诩为太尉时 孙权为什么会嘲笑

今天历史网小编给大家准备了:贾诩和孙权,感兴趣的小伙伴们快来看看吧!据裴松之引《荀勖别传》而注《三国志·贾诩传》记载:晋司徒阙(通“缺”),武帝(司马炎)问其人於勖(荀彧侄孙)。答曰:&"三公具瞻所归...

2025-11-03

刘邦想废刘盈另立太子 刘邦为什么因为四个人放弃了

很多人都不了解刘邦换太子,接下来跟着历史网小编一起欣赏。公元前192年,汉高祖刘邦病重,他想把太子刘盈废掉,改立戚夫人儿子刘如意为太子。为了探听朝臣们的看法,刘邦就把太傅叔孙通叫到宫里,询问他的意见。...

2025-11-03

公子宋什么人?他为何要谋反杀害郑灵公?

公子宋什么人。下面历史网小编为大家详细介绍一下相关内容。笑谈古今事,坐看风云起。自古以来,君要臣死,臣不得不死,国君代表了至高无上的存在和一个国家的威严,俗话说,君无戏言。然而,中国古代历史上,就有这...

2025-11-03

长孙晟:唐太宗的岳父,在历史上有多传奇?

突厥,是漠北地区继匈奴、鲜卑、柔然之后,兴起的又一个游牧民族,南北朝时正值强盛,常南下掠夺财物骚扰中原,北朝的北齐、北周不得不采取和亲和朝贡的策略来换取和平。可是如此一来突厥气焰更加嚣张,一把手放话:...

2025-11-03

陶渊明的曾祖父:陶侃的一生是怎样的?

提起陶渊明可谓是无人不知无人不晓,这位浪漫的田园诗人“不为五斗米折腰”,甘享清贫。可是陶渊明毕竟有资格享受“五斗米”,这全赖他曾祖的功绩。与陶渊明相比,他的曾祖陶侃可是根正苗红的寒门之家。接下来历史网...

2025-11-03