目录:

1. 配置编译环境

2. 编译HarmonyOS源代码

3. 烧录HarmonyOS

4.下载文中资源

5.作者文章合集

摘要:相信很多同学都玩过鸿蒙(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 <<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个是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所示。 

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

(1)将Hi3861_wifiiot_app_allinone.bin文件复制到Windows10中(随便放一个目录就可以)。
(2)用Hi3861连接线将开发板与PC连接。
(3)检查设备管理器,看看是否正确识别Hi3861开发板,如果正确识别,如图3所示。
 

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

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

(4)运行HiBurn.exe

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

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

(5)选择传输速率

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


查看文章更多章节>>>

作者:蒙娜丽宁

想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com

 

别找了,这可能是全网最全的鸿蒙(OpenHarmony)刷机指南的更多相关文章

  1. 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解)

    不多说,直接上干货! 说明: Anaconda2-5.0.0-Windows-x86_64.exe安装下来,默认的Python2.7 Anaconda3-4.2.0-Windows-x86_64.ex ...

  2. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

  3. 全网最全ASP.NET MVC 教程汇总

    全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MV ...

  4. 【全网最全的博客美化系列教程】08.自定义地址栏Logo

    全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 ...

  5. 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装爬虫框架Scrapy(离线方式和在线方式)(图文详解)

    不多说,直接上干货! 参考博客 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解) 第一步:首先,提示升级下pip 第二步 ...

  6. 【全网最全的博客美化系列教程】01.添加Github项目链接

    全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 ...

  7. 【全网最全的博客美化系列教程】02.添加QQ交谈链接

    全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 ...

  8. 自学MVC看这里——全网最全ASP.NET MVC 教程汇总(转)

    自学MVC看这里——全网最全ASP.NET MVC 教程汇总   MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要 ...

  9. 转载 jQuery和js自定义函数和文件的方法(全网最全)

    jQuery和js自定义函数和文件的方法(全网最全)    版权声明:本文为像雾像雨又像风_http://blog.csdn.net/topdandan的原创文章,未经允许不得转载. https:// ...

随机推荐

  1. java架构《并发线程基础二》

    1.关键字 volatile            使用场景: 针对与多线程公用的数据  用volatile关键字修饰  但其不保证原子性(同步).volatile关键字不具备synchronized ...

  2. zoj3593One Person Game (扩展欧几里德)

    There is an interesting and simple one person game. Suppose there is a number axis under your feet. ...

  3. C# TCP应用编程三 异步TCP应用编程

    利用TcpListener和TcpClient类在同步方式下接收.发送数据以及监听客户端连接时,在操作没有完成之前一直处于阻塞状态,这对于接受.发送数据量不大的情况或者操作勇士较短的情况下是比较方便的 ...

  4. 洛谷P1522 [USACO2.4]牛的旅行 Cow Tours

    洛谷P1522 [USACO2.4]牛的旅行 Cow Tours 题意: 给出一些牧区的坐标,以及一个用邻接矩阵表示的牧区之间图.如果两个牧区之间有路存在那么这条路的长度就是两个牧区之间的欧几里得距离 ...

  5. CF1463-B. Find The Array

    题意: 给出一个由n个数组成的数组a,这个数组的元素和为S,要求你找出一个由n个数字组成数组b,这个数组满足: 数组中的每个数可以将他两边的数字整除或者被他两边的数字整除 数组b中每个位置的数字减去数 ...

  6. 国产网络测试仪MiniSMB - 如何3秒内创建出16,000条IP递增流

    国产网络测试仪MiniSMB(www.minismb.com)是复刻smartbits的IP网络性能测试工具,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太 ...

  7. windows安装

    1.windows系统版本分类a. 个人版windows98.XP.win7,win8,win10b. 企业版/服务器版windows server NT/2000/2003/2008/2012[广泛 ...

  8. Linux命令学习-01——find -type

    Linux find 命令用来在指定目录下查找文件. 任何位于参数之前的字符串都将被视为欲查找的目录名.如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件.并且将查找到 ...

  9. C# 类(3)

    方法重载 和python类似,在调用函数的时候可以指定默认参数,car("Jeep",color="red") 方法重载就是 可以定义几个同名的函数,然后带有不 ...

  10. 51nod1089 最长回文子串 manacher算法

    0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度. 如果一个字符串正着读和反着读是一样的,那它就是回文串.下面是一些回文串的实例: 12321 a aba abba aaaa ...