OpenHarmony2.0 一站式編譯燒錄Hi3516標(biāo)準(zhǔn)系統(tǒng)
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
工欲善其事,必先利其器。
6月初,OpenHarmony2.0開源后,Hi3516的小型系統(tǒng)已經(jīng)實(shí)現(xiàn)ubuntu環(huán)境下的一站式開發(fā),對(duì)于Hi3516的標(biāo)準(zhǔn)系統(tǒng),同樣可以一站式編譯燒錄,提高開發(fā)效率。
開發(fā)環(huán)境和源碼升級(jí)
標(biāo)準(zhǔn)系統(tǒng)的開發(fā) 需在小型系統(tǒng)開發(fā)環(huán)境的基礎(chǔ)上進(jìn)行升級(jí)。小型系統(tǒng)開發(fā)參考(https://harmonyos.51cto.com/posts/7435)(ubuntu20.04,DevEco Device Tool v2.2 Beta1,源碼code-2.0-canary)
1.安裝依賴工具
- sudo apt-get install binutils git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4
- 1.
- 1.
- 1.
2.升級(jí)源碼的 prebuilts
- #切換到工程目錄
- cd code-2.0-canary
- #下載腳本文件prebuilts_download.sh
- curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts_download.sh
- #運(yùn)行腳本,下載升級(jí)源碼的二進(jìn)制文件,并解壓到指定位置
- bash ./prebuilts_download.sh
3.標(biāo)準(zhǔn)系統(tǒng)編譯JS Framework,需下載并配置NodeJS
- #創(chuàng)建nodejs目錄
- mkdir -p prebuilts/build-tools/common/nodejs
- #進(jìn)入nodejs目錄
- cd prebuilts/build-tools/common/nodejs
- #下載nodejs (下載較慢且網(wǎng)絡(luò)不穩(wěn),可下載附件壓縮包,放至code-2.0-canary/prebuilts/build-tools/common/nodejs 下 )
- wget --no-check-certificate https://nodejs.org/download/release/v12.18.4/node-v12.18.4-linux-x64.tar.gz
- #解壓nodejs壓縮包
- tar -zxvf node-v12.18.4-linux-x64.tar.gz
- #設(shè)置NodeJS環(huán)境變量
- echo "export PATH=`pwd`/node-v12.18.4-linux-x64/bin:${PATH}" >> ~/.bashrc;source ~/.bashrc
- #切換到之前的目錄 code-2.0-canary 下
- cd -
- #進(jìn)入源代碼的third_party/jsframework目錄,準(zhǔn)備下載node_modules包
- cd third_party/jsframework
- #下載node_modules包
- npm install
- #升級(jí)npm
- npm install -g npm
- #切換到之前的目錄 code-2.0-canary 下
- cd -
- #在prebuilts/build-tools/common下創(chuàng)建js-framework目錄
- mkdir -p prebuilts/build-tools/common/js-framework
- #把下載的node_modules包放入js-framework
- cp -rp third_party/jsframework/node_modules prebuilts/build-tools/common/js-framework/
恭喜你,標(biāo)準(zhǔn)系統(tǒng)開發(fā)環(huán)境搭建成功!
編譯
環(huán)境搭建好,就可以編譯了。在code-2.0-canary 工程的命令窗口,執(zhí)行標(biāo)準(zhǔn)系統(tǒng)的編譯指令
- ./build.sh --product-name Hi3516DV300
首次編譯較慢,大約一小時(shí),編譯完成。

對(duì)源代碼applications/standard/hap/BUILD.gn稍作修改,保存,再次編譯,77秒,編譯成功

編譯后生成的燒錄文件,輸出在 out/ohos-arm-release/packages/phone/images/ 目錄下
燒錄
.Hi3516DV300燒錄標(biāo)準(zhǔn)系統(tǒng),有USB、網(wǎng)口和串口燒錄三種方式,串口太慢,USB只能在windows下使用,我們采用網(wǎng)口方式燒錄。
1.首先開發(fā)板通電,用串口線連接電腦USB口和開發(fā)板,把電腦和開發(fā)板分別通過網(wǎng)線連接到路由器。
2.打開DevEco Device Tool,在Projects中,點(diǎn)擊code-2.0-canary工程的Settings打開工程配置界面。
3.在Partition Configuration選項(xiàng)卡中,刪除原有4項(xiàng)燒錄文件信息,添加位于out/ohos-arm-release/packages/phone/images/下的7項(xiàng)燒錄文件信息

4.在“hi3516dv300”選項(xiàng)卡下,設(shè)置燒錄選項(xiàng) ,注意設(shè)置之前需完成硬件連接并通電。

5.網(wǎng)絡(luò)設(shè)置如下:
upload_net_server_ip: 電腦主機(jī)的IP地址,本機(jī)為 192.168.1.101
upload_net_client_mask:開發(fā)板的子網(wǎng)掩碼,自動(dòng)生成 255.255.255.0
upload_net_client_gw: 開發(fā)板的網(wǎng)關(guān),自動(dòng)生成 192.168.1.1,需留心與路由器是否一致
upload_net_client_ip: 開發(fā)板的IP地址,自動(dòng)生成 192.168.1.2
6.工程配置完成后,點(diǎn)擊右上部Save進(jìn)行保存。
7.打開DevEco Device Tool界面,在PROJECT TASKS中,點(diǎn)擊code-2.0-canary下hi3516dv300的Upload按鈕,啟動(dòng)燒錄。
8.開始燒錄后,根據(jù)提示,對(duì)Hi3516開發(fā)板斷電再上電
9.重新上電后,先串口燒錄,再網(wǎng)口燒錄,十分鐘左右,燒錄成功。

開發(fā)板自動(dòng)重啟,進(jìn)入OpenHarmony2.0標(biāo)準(zhǔn)系統(tǒng)的開機(jī)桌面
總結(jié)
1.標(biāo)準(zhǔn)系統(tǒng)初次編譯較慢,后續(xù)增量編譯一般可以在幾分鐘之內(nèi)完成,加上燒錄10分鐘左右,標(biāo)準(zhǔn)系統(tǒng)的編譯燒錄一般為十多分鐘或者更少,基本可以滿足學(xué)習(xí)和開發(fā)需求。
2.手動(dòng)配置Partition Configuration燒錄信息較為繁瑣,相比輕量系統(tǒng)的自動(dòng)配置或者燒錄工具Hitool的一鍵配置,后續(xù)版本DevEco Device Tool相信會(huì)加以改進(jìn)
3.OpenHarmony2.0的源碼code-2.0-canary在ubuntu環(huán)境下,小型系統(tǒng)和標(biāo)準(zhǔn)系統(tǒng)都已實(shí)現(xiàn)一站式開發(fā)。在windows環(huán)境下,輕量型Hi3861的也已實(shí)現(xiàn)一站式開發(fā)。
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)