華為的鴻蒙系統(tǒng)在2019年正式發(fā)布,2020年升級到2.0版本并且正式對所有開發(fā)者開源,那個時候我就已經(jīng)簡單評測過這個開源系統(tǒng)了,只是一直沒有發(fā)布相關(guān)的博客,然后最近有粉絲私信我希望我出一下鴻蒙相關(guān)的文章,所以就有了這個系列。
1 HarmonyOS簡介
華為鴻蒙系統(tǒng)是一款全新的面向全場景的分布式操作系統(tǒng),創(chuàng)造一個超級虛擬終端互聯(lián)的世界,將人、設(shè)備、場景有機(jī)地聯(lián)系在一起,將消費者在全場景生活中接觸的多種實現(xiàn)極速發(fā)現(xiàn)、極速連接、硬件互助、資源共享,用合適的設(shè)備提供場景體驗。
從古到今出現(xiàn)過很多操作系統(tǒng),其中也有很多優(yōu)秀的架構(gòu),但是絕大部分都夭折了,消失在人們的視野范圍。而對于鴻蒙追求的這種萬物互聯(lián),我還是挺看好的,而且在華為這個大企業(yè)的全力推進(jìn)下,鴻蒙目前的發(fā)展還算順利,一旦鴻蒙站穩(wěn)了腳跟,成為繼IOS和安卓之后的第三個主流系統(tǒng),那么鴻蒙系統(tǒng)的開發(fā)人員就成了香餑餑,因為目前懂鴻蒙的人很少,經(jīng)驗豐富的更少,第一批敢于下水的鴨子就成了最大的受益者之一。當(dāng)然,如果鴻蒙系統(tǒng)最終夭折了,那一切都是浮云,留給我們的可能只有經(jīng)驗和教訓(xùn)了。
2 開發(fā)環(huán)境搭建
HarmonyOS的編譯工具鏈主要以Linux系統(tǒng)下的開發(fā)為主,因此我們需要先搭建Linux的環(huán)境,用于程序編譯。而這個編譯完的固件最終需要燒錄到硬件上,所以我們還需要在Windows下安裝一些工具用于燒錄和調(diào)試。
下面的 2.1 (簡潔版環(huán)境搭建)
和 2.2(復(fù)雜版環(huán)境搭建)
選擇其中一種方式即可,建議選擇第一種。
特別說明:我這里是基于海思Hi3861這個IC來運行和測試鴻蒙操作系統(tǒng)的。這里搭建的環(huán)境只是為了編譯源碼,最終是燒錄到這個IC上面跑的。
2.1 簡潔版環(huán)境搭建(使用已經(jīng)搭建好HarmonyOS環(huán)境的鏡像)
推薦用這種方式搭建環(huán)境,比較省時省力。
2.1.1 安裝虛擬機(jī)和Linux鏡像
關(guān)于虛擬機(jī)搭建Linux環(huán)境相關(guān)的教程有很多,我這里就不詳細(xì)講解了,不懂的同學(xué)請自行查閱資料。
Linux鏡像要安裝下面這個鏈接里面的,這個鏡像已經(jīng)把HarmonyOS需要的開發(fā)環(huán)境搭好了,下載完解壓即可。
鏈接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取碼:tn12
VMware Workstation下載安裝好了之后點擊“打開虛擬機(jī)”(注意是打開不是創(chuàng)建),選擇上面解壓好的鏡像文件安裝即可。
選擇鏡像。
提示:新虛擬機(jī)的存儲路徑建議選擇剩余空間10GB以上的盤。
安裝完直接打開虛擬機(jī)即可。默認(rèn)用戶和密碼:bearpi
,打開后可以自行修改。
2.2 復(fù)雜版環(huán)境搭建(基于普通Ubuntu搭建HarmonyOS環(huán)境)
如果想自己體驗一遍HarmonyOS開發(fā)環(huán)境搭建的話可以試下,不太建議使用該方法,因為沒什么必要,HarmonyOS的編程開發(fā)才是重點。
提示:如果選擇了2.1的方式,那現(xiàn)在直接跳到第3步即可。
2.2.1 安裝虛擬機(jī)和Linux鏡像
關(guān)于虛擬機(jī)搭建Linux環(huán)境相關(guān)的教程有很多,我這里就不詳細(xì)講解了,不懂的同學(xué)請自行查閱資料。
提示:Linux鏡像要Ubuntu16.04及以上64位系統(tǒng)版本。
2.2.2 將Linux shell設(shè)置為bash
打開Linux終端,輸入如下命令查看shell是否為bash
ls -l /bin/sh
提示:如果為顯示為/bin/sh -> bash
則為正常,否則請按以下方式修改。
方法一:在終端運行如下命令,然后選擇 no。
sudo dpkg-reconfigure dash
方法二:先刪除sh,再創(chuàng)建軟鏈接。
rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
2.2.3 安裝Python環(huán)境
我們需要在Linux的環(huán)境下安裝Python作為構(gòu)建編譯工具,一般版本新一點的Ubuntu都是自帶了Pythond,如果沒有則需要自己安裝,安裝包可以在官網(wǎng)下載,也可以在下面的鏈接下載。
提示:要保證Pythond版本在3.7以上。
sudo apt-get install python3.8
sudo apt-get install python3-pip
sudo pip3 install setuptools
sudo pip3 install kconfiglib
建議安裝kconfiglib 13.2.0+版本
sudo pip3 install pycryptodome
sudo pip3 install six --upgrade --ignore-installed six
sudo pip3 install ecdsa
如果當(dāng)前系統(tǒng)中既存在python2又存在python3,參考以下方法將默認(rèn)python修改為python3
ll `which python`
sudo rm /usr/bin/python
sudo ln -s python3.8 /usr/bin/python
2.2.4 安裝SCons
1)運行如下命令,安裝SCons安裝包
sudo apt-get install scons -y
提示:如果軟件源中無法找到安裝包,請按以下步驟處理:
a)下載源碼包(下載路徑:“ https://scons.org/pages/download.html ”
,推薦SCons版本是3.0.4+)。
b)解壓源碼包到任意目錄(以scons-3.1.2為例)。
c)安裝源碼包:進(jìn)入解壓目錄,運行如下命令:
tar -xvf scons-3.1.2.tar.gz
sudo python3 setup.py install
2)查看版本
scons -v
2.2.5 安裝編譯工具
1)下載工具
開發(fā)工具 | 用途 | 獲取途徑 |
---|---|---|
gn | 產(chǎn)生ninja編譯腳本 | https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar |
ninja | 執(zhí)行ninja編譯腳本 | https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar |
交叉編譯器gcc_riscv32 | 交叉編譯工具 | https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz |
2)解壓安裝包
tar -xvf gn.1523.tar -C ~/
tar -xvf ninja.1.9.0.tar -C ~/
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/
3)設(shè)置環(huán)境變量
vim ~/.bashrc
將以下命令拷貝到.bashrc文件底部
export PATH=~/gn:$PATH
export PATH=~/ninja:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
生效環(huán)境變量
source ~/.bashrc
4)查看版本
riscv32-unknown-elf-gcc -v
3 Windows工具安裝
代碼編譯是在Linux環(huán)境執(zhí)行的,但是固件燒錄和調(diào)試要在Windows下操作,所以還需要安裝一些工具。
3.1 Hiburn(必要)
Hiburn是代碼燒錄工具,可以在下面的鏈接下載。
下載鏈接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取碼:tn12
3.2 MobaXterm
MobaXterm是一個很好用的調(diào)試工具,我們可以使用MobaXterm來遠(yuǎn)程控制虛擬機(jī)的Linux,用MobaXterm替代Linux的終端。說到這里,可能有些同學(xué)會有疑惑,為什么不直接在Linux上運行終端呢?
雖然虛擬機(jī)跟MobaXterm都是在同一個電腦上面操作,但是有些操作使用MobaXterm會比虛擬機(jī)上的操作更方便,而且MobaXterm還可以遠(yuǎn)程操作。具體看個人使用,這個不是必須要用的。
MobaXterm官方下載地址:https://mobaxterm.mobatek.net
除了MobaXterm,其實還有其他工具也很好用,比如Xshell。這個看個人習(xí)慣吧,我這里只是推薦。
3.3 RaiDrive
這是一個可以將ubuntu文件遠(yuǎn)程映射到Windows上面的一個軟件,有了這個軟件,我們可以用windows下的軟件去查看修改ubuntu上面的文件,對于沒用過Linux的新手而言,Linux的操作方式可能會很不習(xí)慣,也不方便,但是映射到windows之后操作起來就會方便很多。
下載鏈接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取碼:tn12
使用方法如下:
1) 打開上面配置好的Linux操作系統(tǒng),并且在終端輸入ifconfig命令查看IP地址。
2) 打開RaiDrive,語言切換成中文。
3) 按下圖配置。
提示:ip地址以實際虛擬機(jī)運行的這個Linux操作系統(tǒng)實際使用的ip地址為準(zhǔn)(也就是上面第1步查到的那個),賬號密碼是Linux系統(tǒng)的登錄賬號和密碼,默認(rèn)是bearpi
。
配置完成之后會自動彈出一個文件窗口,這個就是ubuntu文件的映射。在這里操作文件的話會自動同步到Linux系統(tǒng)。
3.4 Visual Studio Code
VScode是一款非常好用的代碼編輯器,誰用誰知道。而且這個軟件也是跨平臺的,Windows、MAC和Linux都可以使用。比起Linux的vim,我覺得VScode要友好太多了。
當(dāng)然,你要是不喜歡或者不習(xí)慣的話,也不一定非要用這個,這都是無所謂的。
VScode官網(wǎng)地址:https://code.visualstudio.com
4 下載HarmonyOS源碼
方法1:在ubuntu獲取源碼
前面我們已經(jīng)通過虛擬機(jī)搭建好一個Linux系統(tǒng),我們可以通過Linux的命令行來獲取HarmonyOS源碼。
打開終端,依次輸入以下命令,然后等待下載完成即可。
cd /home/bearpi
mkdir project && cd project
hpm init -t default
hpm i @bearpi/bearpi_hm_nano
提示:如果下載失敗,請檢查網(wǎng)絡(luò)是否正常。然后重新執(zhí)行 hpm i @bearpi/bearpi_hm_nano
命令即可。
方法2:從鏡像站獲取源碼
鏡像站點地址:https://mirrors.huaweicloud.com/harmonyos/os/
打開地址,這里有多個版本的源碼,我這里以1.0版本作為演示。
下載完成以后,可以直接在PC端解壓查看源碼,也可以先導(dǎo)入虛擬機(jī)的linux系統(tǒng),然后在linux系統(tǒng)下解壓查看。
5 編譯源碼
編譯流程:
在Linux終端上進(jìn)入源碼的根目錄下,運行下面這個命令行。
hpm dist
如果出現(xiàn) "BUILD SUCCESS"
字樣,說明編譯成功,如果出現(xiàn) "ERROR"
,則可以根據(jù)錯誤提示查找原因。
編譯成功之后可以在/project/out/BearPi-HM_Nano
目錄下找到編譯出來的bin文件(Hi3861_wifiiot_app_allinone.bin)
。
用RaiDrive映射文件方式查看如下圖:
在終端查看如下圖:
6 燒錄測試
6.1 代碼燒錄
我們把燒錄文件從Linux系統(tǒng)里面復(fù)制到PC下,因為我們的燒錄工具是在windows系統(tǒng)下運行的,開發(fā)板也需要連接到PC端(其實就是把HI3861的燒錄接口通過電平轉(zhuǎn)換IC連接到PC端)。
燒錄步驟如下:
1) 連接開發(fā)板到PC端
因為打開了虛擬機(jī),所以插入usb的時候需要選擇接入位置,這里選擇主機(jī)。
連接成功之后可以在設(shè)備管理器看到串行設(shè)備端口。
提示:沒有安裝CH340驅(qū)動的需要先安裝驅(qū)動。
2) 打開燒錄工具HiBurn,選擇開發(fā)板對應(yīng)的com口,配置串口參數(shù)。
串口波特率可以大一點,這樣燒錄速度比較快。
3) 加載bin文件,勾選Auto burn復(fù)選框,然后點擊Connect。
按下Connect后,此時Connect按鈕變成Disconnect,等待下載。
4) 按下開發(fā)板上面的復(fù)位按鍵,等待下載完成即可。
6.2 運行測試
下載完成后重新上電復(fù)位,這事代碼就已經(jīng)開始運行了 ,可以通過串口看到運行l(wèi)og,也可以通過按鍵F1和F2查看效果:F1按下LED燈亮,F(xiàn)2按下LED燈滅(這個是demo程序)。
7 更換其他demo繼續(xù)測試
源碼中提供了很多測試demo,我們可以在“projectapplicationsBearPiBearPi-HM_Nanosample”
路徑下找到BUILD.gn
文件,里面默認(rèn)打開的是"B2_basic_button:button_example"
這個demo。
想要更換其他demo我們只需要把B2注釋掉,然后打開其他demo,再重新編譯即可。
結(jié)束語
好了,關(guān)于鴻蒙系統(tǒng)的環(huán)境搭建就介紹到這里,本人對鴻蒙系統(tǒng)開發(fā)了解的也不是很深入,如有錯誤,歡迎指正,謝謝!
如果這篇文章有幫助到你,可以給博主點個贊再走。