openharmony 運(yùn)行代碼操作
openharmony 運(yùn)行代碼,本文主要介紹windows環(huán)境下OpenHarmony社區(qū)代碼操作:代碼下載,開(kāi)發(fā)環(huán)境搭建,版本編譯,燒寫(xiě),掛載,代碼運(yùn)行,上庫(kù)等完整操作流程總結(jié);
本文以xts_acts倉(cāng)庫(kù),Hi3516開(kāi)源板子操作為例。
主要操作是在Ubuntu子系統(tǒng)操作,本地只有HiTool版本燒寫(xiě)和代碼編輯工具Visual Studio Code(操作過(guò)程中有些安裝包和軟件獲取不便的,可以直接找我獲取)。
OpenHarmony社區(qū)文檔:https://device.harmonyos.com/cn/docs/
代碼倉(cāng)庫(kù)地址:https://openharmony.gitee.com
OpenHarmony_Hi3861Ubuntu編譯環(huán)境搭建測(cè)試套編譯用例執(zhí)行操作總結(jié):
https://blog.csdn.net/nanzhanfei/article/details/115841263
OpenHarmony-Hi3518EV300掛載燒寫(xiě):
https://blog.csdn.net/nanzhanfei/article/details/115834734?spm=1001.2014.3001.5501
openharmony 運(yùn)行代碼,目錄
Windows環(huán)境中準(zhǔn)備Ubuntu
獲取OpenHarmony源碼
編譯
燒寫(xiě)
NFS掛載
windows本地代碼編輯
代碼上庫(kù)
提交失敗項(xiàng)解決
附件
Windows環(huán)境中準(zhǔn)備Ubuntu
使用Windows10的WSL的Ubuntu子系統(tǒng),網(wǎng)上有很多安裝的分享,這里不做介紹,也可按照以下InsStep直接安裝,默認(rèn)安裝是安裝在系統(tǒng)盤(pán)下的,具體路徑如下,所有Ubuntu的內(nèi)容都在這個(gè)路徑下。
C:\Users\username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs
InsStep:
1.打開(kāi)設(shè)置->安全和更新->開(kāi)發(fā)者選項(xiàng),選擇為“開(kāi)發(fā)人員模式”;
2.Win + R運(yùn)行control appwiz.cpl指令,在啟用或關(guān)閉Windows功能中勾選適用于Linux的Windows子系統(tǒng)和虛擬機(jī)平臺(tái)兩項(xiàng)啟用,重啟;
3.微軟商店搜索Ubuntu安裝,安裝完畢直接啟動(dòng)并設(shè)置初始用戶名密碼便可以進(jìn)入U(xiǎn)buntu子系統(tǒng);
這里介紹一下如何將安裝好的Ubuntu子系統(tǒng)從系統(tǒng)盤(pán)遷移到指定的目錄,本文將其遷移到D:\Ubuntu目錄下。
Ubuntu子系統(tǒng)安裝成功后,進(jìn)行遷移操作,操作如下:
1.需要下載LxRunOffline,下載地址,下載文件LxRunOffline-v3.5.0-mingw.zip,然后解壓到某個(gè)目錄中
2.設(shè)置環(huán)境變量,在系統(tǒng)變量Path中添加LxRunOffline解壓的目錄(.exe所在的目錄)
3.重啟電腦,使環(huán)境變量生效
4.Win + R運(yùn)行cmd,輸入LxRunOffline,如果顯示下面的提示證明已經(jīng)安裝成功了
5.Win + R運(yùn)行cmd,輸入LxRunOffline list查看子系統(tǒng)版本
6.復(fù)制上面的版本號(hào),然后輸入LxRunOffline move -n {version} -d {dir},{version}是版本號(hào),{dir}是遷移目的目錄,比如本文是20版本,遷移到D盤(pán)Ubuntu目錄下,LxRunOffline move -n Ubuntu-20.04 -d D:\Ubuntu,然后回車(chē),等待遷移完成,10分鐘左右。
這樣,整個(gè)Ubuntu子系統(tǒng)就遷移到了指定目錄下了。
openharmony 運(yùn)行代碼,獲取OpenHarmony源碼
Ubuntu環(huán)境下:
1.Linux開(kāi)發(fā)環(huán)境準(zhǔn)備
參考 安裝Linux編譯環(huán)境 https://device.harmonyos.com/cn/docs/start/introduce/oem_minitinier_environment_lin-0000001105407498
2.python環(huán)境
Ubuntu20已自帶python3.8.5,執(zhí)行sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150切換python3:
安裝pip3
$ sudo apt-get -y update
$ sudo apt-get install python3-pip
其他所需庫(kù)參考開(kāi)源文檔使用pip3安裝即可。或者直接依次執(zhí)行下面命令:
$ sudo pip3 install kconfiglib
$ sudo pip3 install pycryptodome
$ sudo pip3 install six --upgrade --ignore-installed six
$ sudo pip3 install ecdsa
安裝gn,ninja,LLVM參考開(kāi)源文檔傻瓜安裝即可;
源碼獲取
1.碼云gitee賬號(hào)注冊(cè),SSH公鑰注冊(cè),git客戶端配置參考開(kāi)源文檔介紹配置即可,https://device.harmonyos.com/cn/docs/start/get-code/oem_sourcecode_guide-0000001050769927
2.安裝碼云repo工具:
$ su root -----------身份驗(yàn)證失敗,執(zhí)行 sudo passwd,設(shè)置root密碼即可。
$ sudo passwd
$ su root
# curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
# chmod a+x /usr/local/bin/repo
# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple reques
獲取OpenHarmony主干代碼
repo init -u https://gitee.com/openharmony/manifest.git -b ssh/master --no-repo-verify
repo sync -c -j16
repo forall -c 'git lfs pull'
如圖:
獲取OpenHarmony release分支代碼
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c -j16
repo forall -c 'git lfs pull'
如圖:
編譯
1.安裝hb
$ python3 -m pip install --user build/lite
$ vim ~/.bashrc
填加:export PATH=~/.local/bin:$PATH
source ~/.bashrc
編譯:
以Hi3516DV300板子為例:
1.Hi3516環(huán)境搭建:編譯依賴基礎(chǔ)軟件、文件打包工具、hc-gen、Java 虛擬機(jī)環(huán)境安裝 點(diǎn)擊參考開(kāi)源文檔Hi3516環(huán)境搭建 流式安裝即可
2.編譯版本
repo sync 更新代碼
hb set
回車(chē)
選擇ipcamera_hispark_taurus@hisilicon
hb build
等待編譯完成
編譯完成所在路徑:D:\Ubuntu\rootfs\home\alex\openharmony_master\out\hispark_taurus\ipcamera_hispark_taurus\
版本燒寫(xiě)所需文件:OHOS_Image.bin,rootfs_vfat.img,userfs_vfat.img
燒寫(xiě)
openharmony 運(yùn)行代碼,使用Hitool工具燒寫(xiě):
1.登錄Hihope官網(wǎng)下載Hi3516-HiTool安裝包解壓到本地
Windows環(huán)境雙擊HiTool.exe即可打開(kāi);
2.點(diǎn)擊鏈接下載USB-to-Serial Comm Port驅(qū)動(dòng)程序
點(diǎn)擊安裝包,安裝驅(qū)動(dòng)程序。
驅(qū)動(dòng)安裝完成后,將Hi3516開(kāi)源板子連接到PC上,重新插拔USB接口,串口信息顯示如下圖所示(如果初次查看設(shè)備管理沒(méi)有端口,請(qǐng)安裝CH341SER.EXE驅(qū)動(dòng))。
3.連接網(wǎng)線,進(jìn)行小網(wǎng)Ip設(shè)置
4.燒寫(xiě)
打開(kāi)hitool燒寫(xiě)工具,按照如下配置燒寫(xiě):
下電上電等待燒寫(xiě)成功:
PS:板子第一次燒寫(xiě)需要燒寫(xiě)fastboot,uboot文件(Hi3516DV300為例)可從device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot獲取:
參數(shù):開(kāi)始地址 0 長(zhǎng)度 1M
其他板子的uboot文件所在路徑同樣路徑獲取即可:
如圖,燒寫(xiě)成功,板子正常啟動(dòng):
NFS掛載
說(shuō)明:hanewin官網(wǎng)下載的最新版本的nfs1.2.59,安裝使用時(shí)會(huì)存在Unable to open file ×××.xml的情況,可自行下載安裝其他舊的nfs版本,自測(cè)hanewin_nfs_server_V1.1.69和hanewin_nfs_server_1.2.19都可以,同樣流程安裝即可正常使用,安裝包也可從附件中獲取。
1.控制面板——系統(tǒng)和安全——Windows Defender防火墻——高級(jí)設(shè)置——入站規(guī)則——新建規(guī)則(勾選端口next——TCP——特定本地端口,添加111,1058,2049 next——允許連接next——勾選域、專用、共用 next)——為該規(guī)則定義一個(gè)名字haneWinTcp——完成。
2.hanewin官網(wǎng)下載最新版本的nfs server安裝包
3.雙擊.exe安裝;
4.安裝成功后,到安裝所在路徑下,以管理員方式運(yùn)行NFS Server:
5.配置
6.設(shè)置保存后,重啟NFS服務(wù)
7.掛載
使用Xshell或其他工具,連接3516的板子:
掛載:
創(chuàng)建掛載目錄:/test_root/kernel
完成掛載:mount 192.168.1.3:/mnt /test_root/kernel nfs
windows本地代碼編輯
1.下載安裝代碼編輯工具Visual Studio Code,點(diǎn)擊下載;
2.安裝一些常用插件;
3.直接從本地Ubuntu目錄打開(kāi)打開(kāi)代碼文件編輯即可;
編輯后,編譯,以某個(gè)測(cè)試套用例為例:
將編譯好的可執(zhí)行文件放到掛載目錄下:
執(zhí)行
代碼上庫(kù)
1.登錄碼云fork代碼xts_acts倉(cāng)
2.簽署“貢獻(xiàn)者許可協(xié)議”(CLA)
3.創(chuàng)建本地分支:repo start branch_name --all
4.查看修改:git status
5.git add .
6.git commit -sm "xxxxxx" //xxxxx為提交信息描述
ps:
參考:https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E8%B4%A1%E7%8C%AE%E6%B5%81%E7%A8%8B.md
7.git push https://gitee.com/碼云用戶名/xts_acts upup:refs/heads/kernel_lite_20210402_3
其中,碼云用戶名是自己注冊(cè)碼云的名稱,xts_acts是fork的代碼倉(cāng),upup是Ubuntu本地repo建的分支,kernel_lite__20210405是分支標(biāo)簽,自己隨便建,不創(chuàng)建默認(rèn)是maser分支(這是給碼云遠(yuǎn)端個(gè)人倉(cāng)本次提交所創(chuàng)建的分支)。
說(shuō)明:第一次push,需要輸入username和password,用戶名輸入碼云用戶名,密碼是碼云登錄密碼;輸入后回車(chē),重新執(zhí)行g(shù)it push操作即可。
8.新建Pull Request將遠(yuǎn)端個(gè)人倉(cāng)庫(kù)同步到主干倉(cāng):
注意:這兒是從遠(yuǎn)端fork的個(gè)人倉(cāng)中同步(下圖左邊源分支這兒是個(gè)人碼云用戶名,而不是OpenHarmony),不知道的按如下操作:個(gè)人賬戶中點(diǎn)擊個(gè)人主頁(yè)——選擇xts_acts——Pull Request——新建Pull Request——選擇源分支同步到目標(biāo)分支;
評(píng)論輸入start build,代碼開(kāi)始構(gòu)建:自動(dòng)觸發(fā)編譯和測(cè)試以及靜態(tài)檢查,全部通過(guò)后,會(huì)有審核人員審核合入;
如圖已成功合入的:
至此,代碼已成功上庫(kù)合入,如果有編譯或測(cè)試或靜態(tài)檢查失敗,以同樣流程修改后重新上庫(kù)。
提交失敗項(xiàng)解決
1.靜態(tài)檢查失敗:
失敗項(xiàng)查看:
按照失敗項(xiàng)本地修改后重新提交
2.編譯測(cè)試項(xiàng)失敗:
編譯失敗較少,一般提交前本地最好編譯測(cè)試通過(guò),編譯失敗查看,點(diǎn)擊后面的report會(huì)自動(dòng)下載編譯內(nèi)容;
測(cè)試失敗查看:
3.解決后重新提交:
git add .
git commit --amend
git push https://gitee.com/碼云用戶名/xts_acts upup:refs/heads/kernel_lite_20210402_3 --force
說(shuō)明:
修改后,追加提交,只需要git push時(shí)在前面git push 信息的后面加上 --force,這樣修改追加提交的內(nèi)容就會(huì)自動(dòng)同步到前面創(chuàng)建的pr里,不需要重新在創(chuàng)建新的PR,然后評(píng)論輸入start build,開(kāi)始構(gòu)建即可。
遠(yuǎn)端個(gè)人倉(cāng)分支管理:
4.特殊情況:
靜態(tài)檢查無(wú)法修改的,比如誤報(bào),測(cè)試對(duì)象本身問(wèn)題等,在評(píng)論去說(shuō)明情況即可,審核人會(huì)審核合入;
碼云工具問(wèn)題導(dǎo)致失敗的情況,聯(lián)系工具的人解決恢復(fù)后,評(píng)論輸入start build 重新觸發(fā)構(gòu)建即可。
附件
提供了一些用到的軟件安裝包,可直接下載使用:
點(diǎn)擊下載
————————————————
版權(quán)聲明:本文為CSDN博主「@_南先森」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/nanzhanfei/article/details/115409538
-
OpenHarmony
+關(guān)注
關(guān)注
25文章
3744瀏覽量
16487
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論