別找了,這可能是全網(wǎng)最全的鴻蒙(OpenHarmony)刷機(jī)指南
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
摘要:相信很多同學(xué)都玩過鴻蒙(HarmonyOS)了,不過估計(jì)大多數(shù)同學(xué)都只是用鴻蒙開發(fā)App,與開發(fā)Android App也沒啥區(qū)別。不過鴻蒙還有更有意思的玩法,那就是與硬件結(jié)合,也就是IoT。本文將教大家如何將鴻蒙刷到開發(fā)板上,通過這些開發(fā)板可以控制更多的硬件。
本文的目的是將鴻蒙2.0刷到潤和Hi3861、Hi3516和Hi3518開發(fā)板上。目前網(wǎng)上已經(jīng)有很多關(guān)于刷鴻蒙2.0的文章,我整理了一下,并結(jié)合自己的經(jīng)驗(yàn),在本文中闡述了從配置環(huán)境,到編譯鴻蒙源代碼,再到刷機(jī)的全過程。
注意:這里的Hi3861相當(dāng)于Ardiuno,價(jià)格也差不多,主要用于控制外設(shè),本身并沒有多少計(jì)算能力,Hi3516和Hi3518的配置相對(duì)較高,支持GUI。有點(diǎn)類似于樹莓派。
本文主要以Hi3861為例,其他兩個(gè)開發(fā)板的編譯和刷機(jī)過程類似。
Hi3581需要分為編譯環(huán)境和燒錄環(huán)境,目前編譯環(huán)境只能是Linux,推薦使用Ubuntu Linux 20.04,用這個(gè)版本你會(huì)少了很多麻煩。至少Python環(huán)境直接是3.8.5了,大家可以不用理會(huì)Python了,因?yàn)榫幾gHarmonyOS,Python的版本是3.7或以上版本即可,經(jīng)過測(cè)試,Python 3.9也沒問題。
Hi3581的刷機(jī)環(huán)境需要使用Windows,推薦使用Windows 10,Home版、專業(yè)版都經(jīng)過了測(cè)試,沒問題,企業(yè)版的Windows還沒測(cè)試,但大概率也沒問題。
所以這里是重點(diǎn):需要準(zhǔn)備Ubuntu 20.04和Windows 10。 Ubuntu 20.04可以安裝的虛擬機(jī)中,我用的是VMWare,這樣可以通過快照在不同狀態(tài)之前切換。
1. 配置編譯環(huán)境
現(xiàn)在開始配置Ubuntu 20.04的編譯環(huán)境,讀者需要按著如下幾步操作:
(1)配置 repo 工具
如果你的Linux系統(tǒng)上還沒有配置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命令,需要先執(zhí)行下面的命令下載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腳本,它會(huì)調(diào)用git命令下載單個(gè)代碼倉
- 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 # 以后每天同步遠(yuǎn)程倉的修改,只需要執(zhí)行這一條命令即可
讀者需要將yourname改成自己的名字,將your-email-address改成自己的email。
(3)檢測(cè)mkfs.vfat和mcopy命令是否安裝
在終端執(zhí)行這兩個(gè)命令,如果沒有安裝,使用apt安裝這兩個(gè)命令
(4)安裝各種工具和包
在終端執(zhí)行下面的命令進(jìn)行安裝:
- sudo apt-get install dosfstools mtools # 官方文檔說明的兩個(gè)文件系統(tǒng)打包工具
- sudo apt-get install zip # 官方文檔雖然沒有寫,但是打包rootfs過程中需要使用
- sudo apt install mtd-utils # 3518需要打包 jffs2 鏡像的mkfs.jffs2 命令,需要安裝這個(gè)包
- sudo apt install build-essential # 安裝gcc/g++/make等工具,ffmpeg的測(cè)試過程中需要使用
(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二進(jìn)制工具目錄
- EOF
- # 生效環(huán)境變量
- source ~/.bashrc
(6)改變pip源,加速下載
執(zhí)行下面的命令重新配置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命令,是因?yàn)槟J(rèn)叫pip3,可以執(zhí)行下面的命令創(chuàng)建pip命令。
ln -s /usr/bin/pip3 /usr/bin/pip
(7)繼續(xù)安裝各種包
- # 安裝 setuptools 和 kconfiglib
- pip3 install setuptools kconfiglib
- # 安裝編譯hi3861需要的pip包
- pip3 install scons ecdsa pycryptodome
2. 編譯HarmonyOS源代碼
(1)查看支持的平臺(tái)
通過執(zhí)行python build.py -h命令,可以查看HarmonyOS當(dāng)前支持哪些平臺(tái),如圖1所示。
第1個(gè)是hi3561,第2個(gè)是hi3518,第3個(gè)是hi3861。
(2)分別執(zhí)行和3個(gè)命令來編譯這3個(gè)版本的目標(biāo)文件
如果要增加調(diào)試信息,后面可以加-b debug
- # 編譯hi3561
- python build.py ipcamera_hi3516dv300 -b debug
- # 編譯hi3518
- python build.py ipcamera_hi3518dv300 -b debug
- # 編譯hi3861
- python build.py wifiiot
執(zhí)行這3行命令,會(huì)在
編譯完的二進(jìn)制文件下載方式在本文后面。
3. 燒錄HarmonyOS
本文以Hi3861開發(fā)板為例,開發(fā)板樣式如圖2所示。
需要按下面的步驟進(jìn)行燒錄。
(1)將Hi3861_wifiiot_app_allinone.bin文件復(fù)制到Windows10中(隨便放一個(gè)目錄就可以)。
(2)用Hi3861連接線將開發(fā)板與PC連接。
(3)檢查設(shè)備管理器,看看是否正確識(shí)別Hi3861開發(fā)板,如果正確識(shí)別,如圖3所示。
如果設(shè)備管理器沒有“端口(COM和LPT)”節(jié)點(diǎn),那是因?yàn)楸浑[藏了,點(diǎn)擊“查看”>“顯示隱藏的設(shè)備”菜單項(xiàng),就會(huì)顯示,如圖4所示。
通常Windows 10會(huì)自動(dòng)安裝驅(qū)動(dòng),如果不幸沒有自動(dòng)安裝驅(qū)動(dòng),那么可以自行下載。Hi3861使用的是CH340G芯片,讀者可自己在google搜索該芯片驅(qū)動(dòng)的下載地址,也可以在本文后面下載驅(qū)動(dòng)文件。
(4)運(yùn)行HiBurn.exe
這個(gè)工具是海思做的,用于燒錄開發(fā)板,華為推出的驅(qū)動(dòng)開發(fā)工具內(nèi)置了該工具,讀者也可以在本文后面下載該工具。
運(yùn)行后,在COM中選擇圖3看到的COM端口號(hào)(如圖5所示),本例是COM4。
(5)選擇傳輸速率
點(diǎn)擊HiBurn中的Setting > com settings菜單項(xiàng),彈出Com settings對(duì)話框,在Baud中選擇3000000,讓燒錄速度更快,如圖6所示。
(6)點(diǎn)擊Select file按鈕,選擇Hi3861_wifiiot_app_allinone.bin文件,在下方列表中會(huì)出現(xiàn)如圖7所示的3個(gè)燒錄項(xiàng)。這個(gè)文件其實(shí)是多個(gè)燒錄項(xiàng)的合體。
(7)開始燒錄
選中Send file按鈕旁邊的Auto burn復(fù)選框,然后點(diǎn)擊上方的connect按鈕,這時(shí)下方日志欄會(huì)出現(xiàn)Connecting字樣,如圖8所示。
(8)最后按一下圖2所示開發(fā)板上的Reset Key,就會(huì)開始燒錄,如圖9所示。
這是因?yàn)镠i3861開發(fā)板需要重啟,才會(huì)檢測(cè)boot動(dòng)作,如果遇到燒錄的指令,就會(huì)燒錄,否則就會(huì)正常啟動(dòng)。
如果燒錄成功,會(huì)顯示如圖9所示的信息。
另外,AI Camera和DIY IPC套件附贈(zèng)的USB串口線中集成了PL2302芯片,需要安裝USB-to-Serial Comm Port.exe驅(qū)動(dòng)才可以被Windows識(shí)別,下載地址: http://www.hihope.org/download
OK,然后就可以愉快滴玩耍了。后期會(huì)推出基于HI3861以及其他HarmonyOS開發(fā)板的有趣的IoT項(xiàng)目的文章和視頻課程,敬請(qǐng)期待。
文章后續(xù)內(nèi)容和相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往學(xué)習(xí)
原文鏈接: https://developer.51cto.com/art/202102/647152.htm
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)