本文的目的是将鸿蒙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_DIRwget -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 <<EOF >> ~/.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 <<EOF > ~/.pip/pip.conf
[global]
index-url = https://mirrors.huaweicloud.com/repository/pypi/simple
trusted-host = mirrors.huaweicloud.com
timeout = 120
EOF

另外,如果没有pip命令,是因为默认叫pip3,可以执行下面的命令创建pip命令。

ln -s /usr/bin/pip3 /usr/bin/pip

(7)继续安装各种包

# 安装 setuptools 和 kconfiglib
pip3 install setuptools kconfiglib# 安装编译hi3861需要的pip包
pip3 install scons ecdsa pycryptodome

2.  编译HarmonyOS源代码

(1)查看支持的平台

通过执行python build.py -h命令,可以查看HarmonyOS当前支持哪些平台,如图1所示。

图1

第1个是hi3561,第2个是hi3518,第3个是hi3861。

(2)分别执行和3个命令来编译这3个版本的目标文件

如果要增加调试信息,后面可以加-b debug

# 编译hi3561
python build.py ipcamera_hi3516dv300 -b debug
# 编译hi3518
python build.py ipcamera_hi3518dv300 -b debug
# 编译hi3861
python build.py wifiiot

执行这3行命令,会在<HarmonyOS源代码根目录>/out目录下出现对应的子目录,如Hi3861编译完,会出现wifiiot子目录,二进制目标文件都在该目录中。烧录文件是Hi3861_wifiiot_app_allinone.bin。

编译完的二进制文件下载方式在本文后面。

3. 烧录HarmonyOS

本文以Hi3861开发板为例,开发板样式如图2所示。

图2

需要按下面的步骤进行烧录。

(1)将Hi3861_wifiiot_app_allinone.bin文件复制到Windows10中(随便放一个目录就可以)。

(2)用Hi3861连接线将开发板与PC连接。

(3)检查设备管理器,看看是否正确识别Hi3861开发板,如果正确识别,如图3所示。

图3

如果设备管理器没有“端口(COM和LPT)”节点,那是因为被隐藏了,点击“查看”>“显示隐藏的设备”菜单项,就会显示,如图4所示。

图4

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

(4)运行HiBurn.exe

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

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

图5

(5)选择传输速率

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

图6

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

图7

(7)开始烧录

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

图8

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

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

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

图9

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

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

微信扫描下载本文需要的所有资源,或者关注「极客起源」微信公众号,输入178950获取资源下载地址。

- EOF -

想深入学习Python的同学,可以识别上面二维码进入课程页面

推荐阅读  点击标题可跳转

别再争论鸿蒙是不是套壳了,先在鸿蒙真机上运行个App再说

惊喜不断,鸿蒙IDE全新升级,4大功能助力App开发!

这样合并Python字典,可以让程序的运行效率提高4倍

Python字典不是不可以排序,是你方法没用对!

文件侠告诉你,Python复制文件的N种姿势!

Python代码可以加密吗?Python字节码告诉你!

使出Python的六脉神剑,让Python拥有无限扩展性

看我用元类(metaclass)花式创建Python类

你不知道__name__变量是什么意思吗?

Python生成器(Generator)最完美解释

关注「极客起源」公众号,加星标,不错过精彩技术干货

别找了,这可能是全网最全的鸿蒙(HarmonyOS)刷机指南!相关推荐

  1. r7c刷机android6.0,奇兔刷机全网首发OPPO R7c(电信4G)刷机包 独家支持一键刷机

    OPPO R7c(电信4G)作为R系列的最新机型,集合了市面上几乎所有手机的流行元素,凭借高颜值的全金属机身,良好的拍照体验以及VOOC闪充功能,取得了单月销量过百万的成绩.近日,奇兔刷机已全网首发O ...

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

    摘要:相信很多同学都玩过鸿蒙(HarmonyOS)了,不过估计大多数同学都只是用鸿蒙开发App,与开发Android App也没啥区别.不过鸿蒙还有更有意思的玩法,那就是与硬件结合,也就是IoT.本文 ...

  3. 全网最全最好用的ChatGPT调教指南(prompt)

    什么是prompt 提示词(Prompt)是一种向人工智能系统(如ChatGPT等)提供的输入,用于引导和激发AI生成特定的回应或内容.在许多情况下,AI prompt可以是一个问题.一个主题.一个任 ...

  4. 鸿蒙源码图片,全网最全的鸿蒙源码结构分析(附自制4张架构图)

    前言:今天下午到晚上折腾了6个多小时,从官网一直到Gitee和CodeChina,把所有知道的资料都看了一下,整理了一份鸿蒙架构和源码对比图给大家,希望大家都来看看. 文章目录 O.视频观看地址: 一 ...

  5. 全网最全的鸿蒙源码结构分析(附自制4张架构图)

    前言:今天下午到晚上折腾了6个多小时,从官网一直到Gitee和CodeChina,把所有知道的资料都看了一下,整理了一份鸿蒙架构和源码对比图给大家,希望大家都来看看. 文章目录 O.视频观看地址: 一 ...

  6. 全网最全的ChatGPT提示词

    全网最全最好用的ChatGPT调教指南(prompt) 什么是prompt 提示词(Prompt)是一种向人工智能系统(如ChatGPT等)提供的输入,用于引导和激发AI生成特定的回应或内容.在许多情 ...

  7. 红米3s android6.0,奇兔刷机全网首发红米3S (Redmi 3S) MIUI8 ROM 独家支持一键刷机

    小米6月14通过官网直接发布了红米3S (Redmi 3S)手机,作为红米3的升级版,红米3S配备了高通骁龙430八核处理器,配备4100毫安时电池,MUUI的优化获得很好的续航能力.小巧轻薄的机身拥 ...

  8. 别再找了!全网最全的数据分析全流程攻略在这

    试想这样一个场景: 领导说:"你去建材市场帮我买些配件."你顶着烈日跑遍大小市场,但领导问你:"为何选这家?"你却答不上来. 你没努力吗?努力了.但有成效吗?至 ...

  9. 全网最全斗音短视频新老账号起号技巧

    大家好,我是我赢助手,专注于自媒体短视频去水印.去重和文案提取运营. 今天给大家分享下全网最全斗音短视频新老账号起号技巧 1.清理手机(手机登录新斗音号才需要清理) 安卓:打开设置-应用管理-斗音短视 ...

最新文章

  1. 机器视觉从发展到成熟,最新技术又有些什么?
  2. 深度学习model.fit计算流图
  3. Python单例设计模式
  4. GitLab公布关于开发者趋势的问卷调查结果
  5. QT界面操作1:如何跟踪鼠标位置?
  6. 常用正则表达式大全——包括校验数字、字符、一些特殊的需求
  7. Supervisor 配置文件
  8. windows C++ 网络编程
  9. 人脸识别mtcnn原理
  10. discards qualifiers —— 丢弃类型
  11. keyword can not be an expression
  12. 前后端接口对接--根据关键字查询搜索
  13. Python——实例1:温度转换(Python基本语法元素及框架,代码实现)
  14. 【每日爬虫】:利用线程池爬取百思不得姐段子
  15. PyCharm搜索技巧快捷键
  16. IBM X3650服务器使用说明
  17. matlab 浮雕算法,photoshop图像滤镜——浮雕算法(含matlab代码)
  18. DSP CCS 12.00 芯片:TMS320F28335 建立工程 ,使LED 灯闪烁
  19. 服务器除了一个灯亮其余的都不亮,鼠标键盘没反应
  20. java 打印图片_java 实现打印(图片和文本)

热门文章

  1. element中表格报错 ResizeObserver loop completed with undelivered notifications.
  2. JAVA 获取姓氏(姓和名)判断复姓
  3. CSS Design: Going to Print
  4. DELL 755重置BIOS设置教程
  5. Ardunio开发实例-VL53L0X飞行时间传感器
  6. 有万能PDF格式转换器吗
  7. CAN Bus cable simulation
  8. 怎么让手机变成震动器_手机如何当震动器
  9. JAVA开发运维(扁鹊见齐桓公之系统运维之痛)
  10. Kubernetes工作负载