0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙移植指南:打包刷機(jī)與設(shè)備調(diào)試

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:OST開(kāi)源開(kāi)發(fā)者 ? 2023-02-20 10:44 ? 次閱讀

上一篇我們?yōu)榇蠹医饣罅?a target="_blank">OpenHarmony 移植為什么這么難?這篇我們將分享打包刷機(jī)與簡(jiǎn)單設(shè)備調(diào)試。

打包 boot.img 鏡像

boot.img 打包流程如下:

內(nèi)核+設(shè)備樹(shù)打包出帶設(shè)備樹(shù)的內(nèi)核

設(shè)備樹(shù)內(nèi)核+bootimg.cfg+ramdisk.img 打包成 boot.img

①修改內(nèi)核啟動(dòng)參數(shù)

修改 boot.img 大?。涸鈮撼龅拇笮∈?8m 多,我們的內(nèi)核因?yàn)榘涯K編譯進(jìn)內(nèi)核的緣故,容量會(huì)增大,導(dǎo)致使用原有配置文件會(huì)無(wú)法成功打包,所以我們?cè)龃蟮?16m,小米 6 的 boot 分區(qū)有 64m 不會(huì)影響 boot.img 的刷入。

bootsize=0x1000000

修改并添加內(nèi)核啟動(dòng)參數(shù):

cmdline=clk_ignore_unusedconsole=tty1console=ttyGS0,115200no_console_suspendhardware=sagitdefault_boot_device=1da4000.ufshcohos.required_mount.system=/dev/block/platform/soc/1da4000.ufshc/by-name/system@/usr@ext4@ro,barrier=1@wait,requiredohos.required_mount.vendor=/dev/block/platform/soc/1da4000.ufshc/by-name/cust@/vendor@ext4@ro,barrier=1@wait,required

其中 hardware 和 default_boot_device 為 OH 初始化時(shí)用于識(shí)別設(shè)備的參數(shù),實(shí)測(cè)不配置也不影響啟動(dòng)。

hardware=sagitdefault_boot_device=1da4000.ufshc

ohos.required_mount.system 和 ohos.required_mount.vendor 是 OH 啟動(dòng)必須掛載的兩個(gè)分區(qū),必須進(jìn)行配置。

ohos.required_mount.system=/dev/block/platform/soc/1da4000.ufshc/by-name/system@/usr@ext4@ro,barrier=1@wait,requiredohos.required_mount.vendor=/dev/block/platform/soc/1da4000.ufshc/by-name/cust@/vendor@ext4@ro,barrier=1@wait,required
console=tty1 是為啟動(dòng)日志輸出到屏幕,后續(xù)可以進(jìn)行觀察 OH 的渲染框架是否接管屏幕 console=ttyGS0,115200 為開(kāi)啟串口控制臺(tái),后續(xù)方便進(jìn)行輸入命令,進(jìn)行 debug 調(diào)試等。 其他可按需配置,啟動(dòng)參數(shù)參考標(biāo)準(zhǔn) Linux。

②打包帶設(shè)備樹(shù)的內(nèi)核

命令如下,直接用 cat 命令,把內(nèi)核和設(shè)備樹(shù)二進(jìn)制文件直接輸出成 Image.gz-dtb。

cat${KERNEL_IMAGE_FILE}${DTB}>"${OUT_PKG_DIR}/Image.gz-dtb"

③打包 boot.img

命令如下,使用 abootimg 工具,--create 指定進(jìn)行 boot.img 創(chuàng)建的位置,-f 指定 bootimg.cfg 位置,-k 指定帶設(shè)備樹(shù)內(nèi)核的位置,-r 指定 ramdisk.img 的位置。

abootimg--create"${OUT_PKG_DIR}/boot.img"-f${BOOTCFG}-k"${OUT_PKG_DIR}/Image.gz-dtb"-r"${OUT_PKG_DIR}/ramdisk.img"
OH 的編譯框架已經(jīng)幫我們打包好了 system.img 和 vendor.img,在 out/packages/phone/images 中,復(fù)制 boot.img,system.img 和 vendor.img 到電腦中,準(zhǔn)備進(jìn)行刷機(jī)工作。

注意:刷機(jī)會(huì)格式化手機(jī),請(qǐng)使用備用機(jī)進(jìn)行刷機(jī),刷機(jī)前有需要的話請(qǐng)把手機(jī)的數(shù)據(jù)復(fù)制到電腦,刷機(jī)有風(fēng)險(xiǎn),請(qǐng)自行判斷,變磚概不負(fù)責(zé)?。?!

刷入鏡像

①TWRP 刷入鏡像

按音量鍵上+電源開(kāi)機(jī)進(jìn)入 TWRP,這時(shí) TWRP 會(huì)進(jìn)入 MTP 模式,把刷機(jī)鏡像復(fù)制進(jìn)手機(jī)。

e774f0e0-b069-11ed-bfe3-dac502259ad0.png

選擇安裝:

e78309c8-b069-11ed-bfe3-dac502259ad0.jpg

e7a16436-b069-11ed-bfe3-dac502259ad0.jpg

選擇刷入鏡像,這時(shí)才會(huì)顯示我們的刷機(jī)文件:

e7d7fdc0-b069-11ed-bfe3-dac502259ad0.jpg

選擇 boot.img,選擇 boot 分區(qū):

e7fff6cc-b069-11ed-bfe3-dac502259ad0.jpg

滑動(dòng)確認(rèn)刷入:

e82aae30-b069-11ed-bfe3-dac502259ad0.jpg

按兩次返回,選擇 system.img,選擇 system 分區(qū):

e846fbb2-b069-11ed-bfe3-dac502259ad0.jpg

同樣按兩次返回,選擇 vendor.img,選擇 vendor 分區(qū): e86766e0-b069-11ed-bfe3-dac502259ad0.jpg 回到主頁(yè),選擇清除,選擇格式化 Data 分區(qū):

e89883ce-b069-11ed-bfe3-dac502259ad0.jpg

輸入 yes,格式化完成后重啟:

e8b2d56c-b069-11ed-bfe3-dac502259ad0.jpg

②fastboot 刷入鏡像

按音量鍵下+開(kāi)機(jī)鍵進(jìn)入 fastboot 模式,連接電腦,裝好驅(qū)動(dòng),使用以下命令進(jìn)行刷機(jī):

fastbootflashboot(boot.img的路徑)
fastbootflashsystem(system.img的路徑)
fastbootflashvendor(vendor.img的路徑)
fastbooteraseuserdata
fastbootreboot

簡(jiǎn)單調(diào)試經(jīng)驗(yàn)分享

①設(shè)備不斷重啟

上篇文章中我們配置了 usb 串口,如果內(nèi)核驅(qū)動(dòng)正常的話手機(jī)使用 usb 連接電腦會(huì)自動(dòng)識(shí)別為 com 設(shè)備,這時(shí)我們使用 xshell,mobaxterm 等工具查看串口日志。 e8c7341c-b069-11ed-bfe3-dac502259ad0.png 比如一般不斷重啟是因?yàn)?render_service 的崩潰,渲染服務(wù)是關(guān)鍵服務(wù),OH 設(shè)置了崩潰會(huì)自動(dòng)重啟:

e8e098da-b069-11ed-bfe3-dac502259ad0.png

為了調(diào)試我們先更改一下設(shè)置,讓它不自動(dòng)重啟,找到渲染服務(wù)的配置,把 critical 第一個(gè)參數(shù)從 1 改成 0,這樣就不會(huì)自動(dòng)重啟了。

e90fcfe2-b069-11ed-bfe3-dac502259ad0.png

②使用 modetest 測(cè)試 DRM 驅(qū)動(dòng)

要使 OH 能順利點(diǎn)亮,我們首先要確認(rèn)內(nèi)核 DRM 驅(qū)動(dòng)是否正常工作,這里我使用的是 modetest 進(jìn)行測(cè)試。 modetest 的代碼已經(jīng)存在 libdrm 的倉(cāng)庫(kù)中,但是沒(méi)有加入 OH 的編譯框架,有需要的同學(xué)可以參考我移植樹(shù)莓的 board 倉(cāng),里面的 test 文件夾中有寫(xiě)好的配置。

編譯好 modetest 之后直接運(yùn)行是沒(méi)有效果的,因?yàn)?OH 的渲染服務(wù)占用了顯卡,我們先把渲染服務(wù)關(guān)閉:

service_controlstoprender_service

關(guān)閉渲染服務(wù)之后,我們運(yùn)行 modetest,modetest 會(huì)遍歷設(shè)備所有的顯卡,并打印出信息

modetest

查看 log:

......
tryingtoopendevice'msm'...done
Encoders:
idcrtctypepossiblecrtcspossibleclones
3181DSI0x000000010x00000001

Connectors:
idencoderstatusnamesize(mm)modesencoders
3231connectedDSI-164x114131
modes:
indexnamerefresh(Hz)hdisphsshsehtotvdispvssvsevtot)
#01080x192060.0010801200121612561920192419261930145444flags:;type:preferred,driver
......
我們可以找到,我們的驅(qū)動(dòng)模塊名為 msm,Connector id 為 32,mode 名為 1080x1920。

查看 modetest 支持的命令,配置這兩個(gè)參數(shù):

-Mmoduleusethegivendriver
-s[,][@]:[#][-][@]setamode

我的命令簡(jiǎn)化為:

modetest-Mmsm-s32:1080x1920
運(yùn)行命令后,手機(jī)屏幕顯示出顏色條紋,即為 DRM 驅(qū)動(dòng)工作正常:

e92d788a-b069-11ed-bfe3-dac502259ad0.jpg

③OH 渲染框架調(diào)試

配置 hilog 打印等級(jí),啟動(dòng)屏幕調(diào)試 hilog 打?。?/p>

e94dcda6-b069-11ed-bfe3-dac502259ad0.png

e96a0af2-b069-11ed-bfe3-dac502259ad0.png

使用命令啟動(dòng)渲染服務(wù),并過(guò)濾只顯示 display 相關(guān)的內(nèi)容:

hilog-D0xD001400&service_controlstartrender_service
打通串口并能顯示 log 信息之后就是各種調(diào)試代碼了,這部分操作就跟開(kāi)發(fā)板差不多了,接下去就是對(duì)照 log 跟代碼不斷拉扯了,教程只能到這里了,祝各位調(diào)試順利。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1360

    瀏覽量

    40185
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    376

    瀏覽量

    28096
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    571

    瀏覽量

    33870
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42687
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3635

    瀏覽量

    16059

原文標(biāo)題:鴻蒙移植指南:打包刷機(jī)與設(shè)備調(diào)試

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PSP3000全系統(tǒng)破解機(jī)指南

    PSP3000全系統(tǒng)破解機(jī)指南
    發(fā)表于 08-16 16:27

    鴻蒙設(shè)備學(xué)習(xí)菜鳥(niǎo)指南》之 【索引及PDF和工具分享】

    本帖最后由 HonestQiao 于 2020-11-3 14:29 編輯 《鴻蒙設(shè)備學(xué)習(xí)菜鳥(niǎo)指南》之 【目錄索引】本帖為索引貼,各節(jié)的內(nèi)容,將逐步發(fā)布。本菜鳥(niǎo)指南的寫(xiě)作目的,是
    發(fā)表于 10-30 13:14

    【HiSpark系列】鴻蒙設(shè)備學(xué)習(xí)索引及PDF和工具分享

    本帖最后由 l_xy 于 2020-11-3 11:56 編輯 原文鏈接:https://bbs.elecfans.com/jishu_2003267_1_1.html《鴻蒙設(shè)備學(xué)習(xí)菜鳥(niǎo)指南
    發(fā)表于 11-03 11:54

    非華為手機(jī)品牌機(jī)教程

    壇子里的各位大神你們好!最近鴻蒙的OS的發(fā)布讓人看得熱血沸騰,驚艷無(wú)比,想起當(dāng)初用三星手機(jī)的時(shí)候小米的MIUI,用小米UI后再回三星ui,HTC等。今想請(qǐng)教各位大神誰(shuí)有做好的
    發(fā)表于 06-05 11:22

    鴻蒙openharmony到RK3566開(kāi)發(fā)板上的步驟

    連接。需要重啟開(kāi)發(fā)板,并且長(zhǎng)按電源鍵和音量 + ,進(jìn)入loader模式。當(dāng)機(jī)工具提示發(fā)現(xiàn)一個(gè)loader設(shè)備時(shí),那么說(shuō)明已經(jīng)具備機(jī)的條件了,可以開(kāi)始
    發(fā)表于 03-15 14:36

    小米手機(jī)鴻蒙系統(tǒng)

    鴻蒙系統(tǒng)小米機(jī)包是一款針對(duì)小米手機(jī)打造的機(jī)包,在機(jī)
    的頭像 發(fā)表于 06-24 14:45 ?2.2w次閱讀
    小米手機(jī)<b class='flag-5'>刷</b><b class='flag-5'>鴻蒙</b>系統(tǒng)

    小米鴻蒙系統(tǒng)機(jī)包下載 安裝教程如下

    小米鴻蒙系統(tǒng)機(jī)包是一款專(zhuān)為小米手機(jī)用戶打造的機(jī)工具,是可以讓用戶在小米手機(jī)上感受鴻蒙系統(tǒng)的手機(jī)軟件,可以縱享大量一鍵
    的頭像 發(fā)表于 06-29 09:44 ?5.4w次閱讀
    小米<b class='flag-5'>鴻蒙</b>系統(tǒng)<b class='flag-5'>刷</b><b class='flag-5'>機(jī)</b>包下載 安裝教程如下

    用Cocos引擎遠(yuǎn)程真機(jī)設(shè)備來(lái)開(kāi)發(fā)鴻蒙游戲教程

    6 月 25 日,新鮮出爐的 DevEco 2.2 beta 提供了遠(yuǎn)程真機(jī)調(diào)試,而上周 6 月 18 發(fā)布的 Cocos Creator 3.2 支持一鍵打包鴻蒙項(xiàng)目。 作為一個(gè)沒(méi)有
    的頭像 發(fā)表于 06-30 08:56 ?1971次閱讀
    用Cocos引擎遠(yuǎn)程真機(jī)<b class='flag-5'>設(shè)備</b>來(lái)開(kāi)發(fā)<b class='flag-5'>鴻蒙</b>游戲教程

    小米鴻蒙系統(tǒng)教程

    鴻蒙系統(tǒng)小米機(jī)包是一款針對(duì)小米手機(jī)打造的機(jī)包,在機(jī)
    的頭像 發(fā)表于 07-02 11:03 ?7w次閱讀

    小米鴻蒙系統(tǒng)教程

    鴻蒙系統(tǒng)小米機(jī)包是一款針對(duì)小米手機(jī)打造的機(jī)包,在機(jī)
    的頭像 發(fā)表于 07-02 11:10 ?7.8w次閱讀

    小米手機(jī)如何鴻蒙系統(tǒng)

    最近華為鴻蒙系統(tǒng)非?;?,許多用戶紛紛下載,擁有小米手機(jī)的用戶也想體驗(yàn)下鴻蒙系統(tǒng),在這篇文,將分享小米手機(jī)機(jī)鴻蒙系統(tǒng)的詳細(xì)步驟。
    的頭像 發(fā)表于 07-07 16:18 ?19.7w次閱讀
    小米手機(jī)如何<b class='flag-5'>刷</b><b class='flag-5'>鴻蒙</b>系統(tǒng)

    OpenHarmony富設(shè)備移植指南(1)導(dǎo)言

    OpenHarmony富設(shè)備移植指南導(dǎo)言。在研究學(xué)習(xí)OpenHamony移植的路上,文檔資料的缺失讓我倍感痛苦,如今移植樹(shù)莓派4b以及小米6
    的頭像 發(fā)表于 02-06 14:04 ?1229次閱讀
    OpenHarmony富<b class='flag-5'>設(shè)備</b><b class='flag-5'>移植</b><b class='flag-5'>指南</b>(1)導(dǎo)言

    OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源

    OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源
    的頭像 發(fā)表于 02-08 10:58 ?2184次閱讀
    OpenHarmony富<b class='flag-5'>設(shè)備</b><b class='flag-5'>移植</b><b class='flag-5'>指南</b>(2)從postmarketOS獲取<b class='flag-5'>移植</b>資源

    鴻蒙】標(biāo)準(zhǔn)系統(tǒng)移植指南

    標(biāo)準(zhǔn)系統(tǒng)移植指南 本文描述了移植一塊開(kāi)發(fā)板的通用步驟,和具體芯片相關(guān)的詳細(xì)移植過(guò)程無(wú)法在此一一列舉。后續(xù)社區(qū)還會(huì)陸續(xù)發(fā)布開(kāi)發(fā)板移植的實(shí)例供開(kāi)
    的頭像 發(fā)表于 02-27 14:36 ?800次閱讀
    【<b class='flag-5'>鴻蒙</b>】標(biāo)準(zhǔn)系統(tǒng)<b class='flag-5'>移植</b><b class='flag-5'>指南</b>

    PoE受電設(shè)備調(diào)試指南

    電子發(fā)燒友網(wǎng)站提供《PoE受電設(shè)備調(diào)試指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-24 10:59 ?0次下載
    PoE受電<b class='flag-5'>設(shè)備</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>指南</b>