寫在前面可參考
PS:使用wsl2作為Windows下Ubuntu環(huán)境時(shí)提升代碼編譯等效率的幾個(gè)點(diǎn):
1.安裝完wsl后,檢查wsl的版本,確保是版本2(cmd執(zhí)行wsl -l -v查看,如果不是,可通過wsl.exe -set-version Ubuntu-20.04 2轉(zhuǎn)換成版本2)
2.wsl2安裝完成后,切換軟件源為國內(nèi)軟件源,可參考(親測好用) Ubuntu20.04換阿里源(解決安裝build-essential失敗問題)_AnChenliang
3.默認(rèn)是安裝在系統(tǒng)盤的,可安裝完后遷移到非系統(tǒng)盤
4.OpenHarmony代碼相關(guān)操作建議在wsl2個(gè)人用戶家目錄下操作
一、板子組裝
板子組裝按照方便,使用安全組裝即可,注意屏幕和攝像頭的排線插的順序,插反可能會導(dǎo)致屏幕不亮、攝像頭不能用等情況。

二、WSL2安裝
InsStep:
1.打開設(shè)置->安全和更新->開發(fā)者選項(xiàng),選擇為“開發(fā)人員模式”;
2.Win + R運(yùn)行control appwiz.cpl指令,在啟用或關(guān)閉Windows功能中勾選適用于Linux的Windows子系統(tǒng)和虛擬機(jī)平臺兩項(xiàng)啟用,重啟(注:沒有虛擬機(jī)平臺的,請升級Windows系統(tǒng),Win10 版本號為 2004(內(nèi)部版本19041或更高),);
3.以管理員身份打開PowerShell并運(yùn)行:dism.exe /online /enable-feature
/featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 開啟Windows子系統(tǒng)功能;
4.打開Microsoft Store搜索Ubuntu,安裝Ubuntu20.04:

5.安裝完直接打開,設(shè)置用戶名和密碼以及root用戶密碼:

6.將Ubuntu Shell環(huán)境修改為bash
執(zhí)行sudo dpkg-reconfigure dash,選擇No,將Ubuntu shell由dash修改為bash

如圖,執(zhí)行l(wèi)s -l /bin/sh查看:

7.python3環(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
8.安裝完成,用戶賬號設(shè)置好之后,打開命令行窗口執(zhí)行wsl -l -v查看下wsl的版本(注:cmd,wsl找不到的請更新windows版本),確保是wsl2,如果是版本1,可執(zhí)行wsl.exe –set-version Ubuntu-20.04 2命令升級為版本2,執(zhí)行后等待轉(zhuǎn)換完成即可??!注意一定要是WSL2,如果是版本1,編譯速度會慢幾十倍!


PS:執(zhí)行wsl.exe –set-version Ubuntu-20.04 2出現(xiàn)內(nèi)核組件問題,先下載安裝
wsl_update_x64.msi后,在執(zhí)行切換命令,即可開始轉(zhuǎn)換,等待轉(zhuǎn)換完成即可。
9.wsl2遷移參考OpenHarmony代碼操作總結(jié)wsl遷移部分
10.wsl2安裝完成后,切換軟件源為國內(nèi)軟件源:
s1:備份原來的源:cp -ra /etc/apt/sources.list /etc/apt/sources.list.bak
s2: 將源換成阿里源:sudo gedit /etc/apt/sources.list,將里面的內(nèi)容清空,把下面的內(nèi)容復(fù)制進(jìn)去,保存退出
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
s3: 更新緩存和升級:
sudo apt-get update
sudo apt-get upgrade
PS:按上述步驟切換軟件源后可解決一Ubuntu20.04一些依賴工具安裝失敗的問題
11.WSL映射到本地

如圖:
本地方便查看

三、獲取源碼
代碼初次下載需要做一些前期準(zhǔn)備工作:主要有碼云gitee賬號注冊、添加碼云SSH公鑰、安裝git和git-lfs、配置用戶信息、repo工具安裝
注冊碼云gitee賬號
電話號碼注冊即可,并添加工作郵箱為主郵箱,如圖:

注冊碼云SSH公鑰
參考碼云 生成/添加SSH公鑰
如圖:

如圖,檢測公鑰是否添加成功:

安裝git客戶端和git-lfs并配置用戶信息
安裝git客戶端
執(zhí)行:
sudo apt install git-all
安裝git-lfs
依次執(zhí)行以下命令:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
配置用戶信息
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
安裝repo工具
安裝碼云repo工具,由于權(quán)限可切換到root用戶下安裝,安裝后再切換個(gè)人用戶目錄操作既可:
執(zhí)行:
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 requests
下載主干master分支源碼
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
ps:git lfs

rk3568對應(yīng)倉庫
device/hihope/rk3568

四、編譯
代碼下載后初次編譯需要做一些前期準(zhǔn)備工作:主要有依賴工具安裝、預(yù)編譯
編譯環(huán)境準(zhǔn)備
S1:安裝依賴工具
sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev genext2fs liblz4-tool libssl-dev libtinfo5 lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby
S2:執(zhí)行java –version看是否有java的環(huán)境,沒有的話安裝下
sudo apt install openjdk-17-jre-headless
如圖:


S3:執(zhí)行prebuilts,在源碼根目錄下執(zhí)行,安裝編譯器及二進(jìn)制工具
bash build/prebuilts_download.sh
版本編譯
進(jìn)入源碼根目錄,執(zhí)行:
./build.sh --product-name rk3568 --ccache
編譯結(jié)果
編譯完成后,log顯示如下:

鏡像路徑:outrk3568packagesphoneimages

daily構(gòu)建版本或轉(zhuǎn)測版本獲取
daily構(gòu)建版本
http://ci.openharmony.cn/dailybuilds

PS:hdc工具除過自己本地編譯,也可以從流水線構(gòu)建本下載:

轉(zhuǎn)測版本
Release-Testing-Version.md · OpenHarmony-SIG/oh-inner-release-management – Gitee.com

五、燒寫
燒寫所需驅(qū)動和工具獲取
usb驅(qū)動安裝
雙擊windowsDriverAssitantDriverInstall.exe安裝usb驅(qū)動
正常燒寫
燒寫
雙擊windowsRKDevTool.exe打開燒寫工具,工具界面擊燒寫步驟如圖所示:
MASKROM模式和LOADER模式兩種模式下可供燒寫,推薦LOADER模式燒寫,非必要不使用MASKROM按鍵操作燒寫。
LOADER模式燒寫:板子上電狀態(tài),PC usb線連接板子,先按住板子上的Recovery鍵,然后按一下reset鍵,待工具界面顯示LOADER設(shè)備后,松開Recovery鍵,設(shè)備進(jìn)入loader模式,點(diǎn)擊執(zhí)行開始燒寫,如圖:

MASKROM模式燒寫: 設(shè)備斷開電源狀態(tài),PC usb線連接設(shè)備,先按住板子上的MASKROM按鍵,設(shè)備上電,待工具界面顯示MASKROM設(shè)備后,松開MASKROM鍵,系統(tǒng)進(jìn)入MASKROM模式,點(diǎn)擊執(zhí)行開始燒寫,具體步驟截圖與上圖一樣(注:MASKROM模式燒寫,需勾選Loader下載項(xiàng))。
變磚拯救
燒寫時(shí)由于燒寫不當(dāng),比如uboot文件燒錯等,導(dǎo)致燒寫工具M(jìn)ASKROM和Loader模式都發(fā)現(xiàn)不了設(shè)備,設(shè)備無法啟動的情況下,可按照如下操作進(jìn)行燒寫:
Windows下,設(shè)備連接電源狀態(tài),PC連接設(shè)備(通過USB),同時(shí)按住reset 鍵maskrom 按鍵,然后先松開reset鍵,待工具界面顯示MASKROM設(shè)備后,再松開MASKROM鍵,設(shè)備進(jìn)入MASKROM模式,勾選Loader,MASKROM模式下點(diǎn)擊執(zhí)行開始燒寫即可。
如圖:溝通Loader下載項(xiàng),MASKROM模式開始燒寫:

PS:MaskRom 模式是設(shè)備變磚的最后一條防線。強(qiáng)行進(jìn)入 MaskRom 涉及硬件操作,有一定風(fēng)險(xiǎn),因此僅在設(shè)備進(jìn)入不了 Loader 模式的情況下,方可嘗試 MaskRom 模式。進(jìn)入 MaskRom 的原理是人為的把 EMMC 的數(shù)據(jù)腳與地線短接,系統(tǒng)會認(rèn)為 EMMC 數(shù)據(jù)出錯,從而清除 EMMC 數(shù)據(jù)。
參考MaskRom模式 — Firefly Wiki
六、Hdc工具連接設(shè)備
hdc的版本和設(shè)備版本保持一致,可自己編譯最新hdc工具:源碼根目錄執(zhí)行./build.sh –product-name ohos-sdk –ccache,直接copy到本地路徑(可將hdc_std.exe改為hdc.exe方便點(diǎn))加入環(huán)境變量,如圖:

七、 測試套編譯和執(zhí)行
測試套編譯
到/test/xts/acts目錄下執(zhí)行./build.sh product_name=rk3568 system_size=standard target_subsystem=××××可編譯單個(gè)子系統(tǒng)測試套
編譯結(jié)果查看:/out/rk3568/suites/acts/

用例執(zhí)行
編譯生成的可執(zhí)行文件(C++用例等)和hap包(js用例等)在testcases目錄下,用例執(zhí)行可以將可執(zhí)行文件或hap包通過hdc send到設(shè)備制定目錄,通過 ./***或aa start的方式執(zhí)行,也可以連接設(shè)備后,將編譯生成的acts文件夾coay到Windows本地,cmd命令行進(jìn)入acts目錄,運(yùn)行run.bat,然后執(zhí)行run acts的方式開始執(zhí)行用例,用例執(zhí)行的報(bào)告和log會在acts目錄下生成。
PS:運(yùn)行run.bat依賴于編譯生成的tools文件夾下的工具,tools文件夾如果為空,請檢查編譯工具是否安裝全。
舉個(gè)例子
1.手動執(zhí)行
以本地手動執(zhí)行js測試用例為例,ps:安裝到設(shè)備上的應(yīng)用信息,可通過bm dump -命令查看,比如應(yīng)用包名,應(yīng)用Mainability等,C++用例直接將可執(zhí)行文件send到設(shè)備指定目錄,chmod權(quán)限后,./***執(zhí)行即可。
如圖:
S1:子系統(tǒng)測試套編譯

S2:hap安裝

S3:啟動應(yīng)用執(zhí)行測試用例,并將hilog日志保存到本地方便產(chǎn)看

日志查看:

2.xdevice自動執(zhí)行
本地環(huán)境需求:python(最好python3.7)、安裝pthon依賴包setuptools,最新版本的hdc_std,并將hdc_std.ext的路徑加入到環(huán)境變量path中;

1>.將測試套編譯生生成outrk3568suites目錄下的acts文件夾copy到本地任意目錄方便執(zhí)行

2>.cmd進(jìn)入acts所在目錄運(yùn)行acts目錄下的run.bat腳本:

ps:可執(zhí)行l(wèi)ist查看本地設(shè)備是否連接成功:

3>.執(zhí)行run acts即可自動化開始全量執(zhí)行acts目錄下所有的用例并完成執(zhí)行報(bào)告解析以及日志收集等:
ps:按模塊執(zhí)行(具體模塊可以查看actstestcases):run –l
ActsResourcescheduleReminderAgentTest

用例執(zhí)行報(bào)告查看:


日志查看:

八、串口調(diào)試

S1.用串口線連接 PC 與開發(fā)板,在設(shè)備管理器查看端口

S2.使用IPOP工具或者其他串口工具(有些串口工具可能不支持,連接上打印亂碼,目前試過的IPOP和securtCRT 是OK的,XShell不行)通過串口連接設(shè)備,串口波特率配置為 1500000,如圖:

S3.確定連接
連接后就可以進(jìn)行debug調(diào)試,查看串口打印等操作

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至2705686032@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。原文轉(zhuǎn)載: 原文出處: