<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙移植指南:打包刷機與設備調試

OpenHarmony技術社區 ? 來源:OST開源開發者 ? 2023-02-20 10:44 ? 次閱讀

上一篇我們為大家解惑了OpenHarmony 移植為什么這么難?這篇我們將分享打包刷機與簡單設備調試。

打包 boot.img 鏡像

boot.img 打包流程如下:

內核+設備樹打包出帶設備樹的內核

設備樹內核+bootimg.cfg+ramdisk.img 打包成 boot.img

①修改內核啟動參數

修改 boot.img 大?。涸鈮撼龅拇笮∈?8m 多,我們的內核因為把模塊編譯進內核的緣故,容量會增大,導致使用原有配置文件會無法成功打包,所以我們增大到 16m,小米 6 的 boot 分區有 64m 不會影響 boot.img 的刷入。

bootsize=0x1000000

修改并添加內核啟動參數:

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 初始化時用于識別設備的參數,實測不配置也不影響啟動。

hardware=sagitdefault_boot_device=1da4000.ufshc

ohos.required_mount.system 和 ohos.required_mount.vendor 是 OH 啟動必須掛載的兩個分區,必須進行配置。

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 是為啟動日志輸出到屏幕,后續可以進行觀察 OH 的渲染框架是否接管屏幕 console=ttyGS0,115200 為開啟串口控制臺,后續方便進行輸入命令,進行 debug 調試等。 其他可按需配置,啟動參數參考標準 Linux。

②打包帶設備樹的內核

命令如下,直接用 cat 命令,把內核和設備樹二進制文件直接輸出成 Image.gz-dtb。

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

③打包 boot.img

命令如下,使用 abootimg 工具,--create 指定進行 boot.img 創建的位置,-f 指定 bootimg.cfg 位置,-k 指定帶設備樹內核的位置,-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 的編譯框架已經幫我們打包好了 system.img 和 vendor.img,在 out/packages/phone/images 中,復制 boot.img,system.img 和 vendor.img 到電腦中,準備進行刷機工作。

注意:刷機會格式化手機,請使用備用機進行刷機,刷機前有需要的話請把手機的數據復制到電腦,刷機有風險,請自行判斷,變磚概不負責?。?!

刷入鏡像

①TWRP 刷入鏡像

按音量鍵上+電源開機進入 TWRP,這時 TWRP 會進入 MTP 模式,把刷機鏡像復制進手機。

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

選擇安裝:

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

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

選擇刷入鏡像,這時才會顯示我們的刷機文件:

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

選擇 boot.img,選擇 boot 分區:

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

滑動確認刷入:

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

按兩次返回,選擇 system.img,選擇 system 分區:

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

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

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

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

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

②fastboot 刷入鏡像

按音量鍵下+開機鍵進入 fastboot 模式,連接電腦,裝好驅動,使用以下命令進行刷機:

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

簡單調試經驗分享

①設備不斷重啟

上篇文章中我們配置了 usb 串口,如果內核驅動正常的話手機使用 usb 連接電腦會自動識別為 com 設備,這時我們使用 xshell,mobaxterm 等工具查看串口日志。 e8c7341c-b069-11ed-bfe3-dac502259ad0.png 比如一般不斷重啟是因為 render_service 的崩潰,渲染服務是關鍵服務,OH 設置了崩潰會自動重啟:

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

為了調試我們先更改一下設置,讓它不自動重啟,找到渲染服務的配置,把 critical 第一個參數從 1 改成 0,這樣就不會自動重啟了。

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

②使用 modetest 測試 DRM 驅動

要使 OH 能順利點亮,我們首先要確認內核 DRM 驅動是否正常工作,這里我使用的是 modetest 進行測試。 modetest 的代碼已經存在 libdrm 的倉庫中,但是沒有加入 OH 的編譯框架,有需要的同學可以參考我移植樹莓的 board 倉,里面的 test 文件夾中有寫好的配置。

編譯好 modetest 之后直接運行是沒有效果的,因為 OH 的渲染服務占用了顯卡,我們先把渲染服務關閉:

service_controlstoprender_service

關閉渲染服務之后,我們運行 modetest,modetest 會遍歷設備所有的顯卡,并打印出信息

modetest

查看 log:

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

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

查看 modetest 支持的命令,配置這兩個參數:

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

我的命令簡化為:

modetest-Mmsm-s32:1080x1920
運行命令后,手機屏幕顯示出顏色條紋,即為 DRM 驅動工作正常:

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

③OH 渲染框架調試

配置 hilog 打印等級,啟動屏幕調試 hilog 打?。?/p>

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

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

使用命令啟動渲染服務,并過濾只顯示 display 相關的內容:

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

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1313

    瀏覽量

    39907
  • 移植
    +關注

    關注

    1

    文章

    369

    瀏覽量

    27882
  • 調試
    +關注

    關注

    7

    文章

    528

    瀏覽量

    33651
  • 鴻蒙
    +關注

    關注

    55

    文章

    1888

    瀏覽量

    42183
  • OpenHarmony
    +關注

    關注

    24

    文章

    3439

    瀏覽量

    15260

原文標題:鴻蒙移植指南:打包刷機與設備調試

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    不求人 HTC手機教程指南

    很多朋友對都是一頭霧水,每天都在聽說,但就是不知道
    發表于 07-11 14:29

    PSP3000全系統破解指南

    PSP3000全系統破解指南
    發表于 08-16 16:27

    【連載】信盈達實力大佬講師帶你學習鴻蒙系統移植和驅動開發!

    鴻蒙開發課程介紹:第一節鴻蒙操作系統需要安裝的軟件有哪些,本節課將會重點介紹軟件的安裝步驟,以及如何獲取安裝包。連載中...第二節接著將帶領大家進行u-boot、內核、根文件系統的移植,并且完成
    發表于 09-11 10:25

    鴻蒙設備學習菜鳥指南》之 【索引及PDF和工具分享】

    本帖最后由 HonestQiao 于 2020-11-3 14:29 編輯 《鴻蒙設備學習菜鳥指南》之 【目錄索引】本帖為索引貼,各節的內容,將逐步發布。本菜鳥指南的寫作目的,是
    發表于 10-30 13:14

    鴻蒙設備學習菜鳥指南》之 【三、安裝】

    ` 本帖最后由 HonestQiao 于 2020-10-30 13:48 編輯 《鴻蒙設備學習菜鳥指南》之 【三、安裝】目錄索引三、安裝 廢話少說,直接看:(論壇不能傳視頻,只好請大家去潤和官
    發表于 10-30 13:45

    【HiSpark系列】鴻蒙設備學習索引及PDF和工具分享

    本帖最后由 l_xy 于 2020-11-3 11:56 編輯 原文鏈接:https://bbs.elecfans.com/jishu_2003267_1_1.html《鴻蒙設備學習菜鳥指南
    發表于 11-03 11:54

    非華為手機品牌教程

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

    鴻蒙openharmony到RK3566開發板上的步驟

    連接。需要重啟開發板,并且長按電源鍵和音量 + ,進入loader模式。當機工具提示發現一個loader設備時,那么說明已經具備的條件了,可以開始
    發表于 03-15 14:36

    用Cocos引擎遠程真機設備來開發鴻蒙游戲教程

    6 月 25 日,新鮮出爐的 DevEco 2.2 beta 提供了遠程真機調試,而上周 6 月 18 發布的 Cocos Creator 3.2 支持一鍵打包鴻蒙項目。 作為一個沒有鴻蒙
    的頭像 發表于 06-30 08:56 ?1756次閱讀
    用Cocos引擎遠程真機<b class='flag-5'>設備</b>來開發<b class='flag-5'>鴻蒙</b>游戲教程

    RISC-V MCU開發實戰 (三):移植鴻蒙OS項目

    移植鴻蒙OS項目
    的頭像 發表于 11-01 11:08 ?2643次閱讀
    RISC-V MCU開發實戰 (三):<b class='flag-5'>移植</b><b class='flag-5'>鴻蒙</b>OS項目

    鴻蒙設備移植指南:編譯框架適配

    上一篇我們成功將 OpenHarmony 移植到小米 6 手機上,今天給大家講解 OpenHarmony 編譯部分。
    的頭像 發表于 02-08 09:15 ?1049次閱讀

    OpenHarmony富設備移植指南(1)導言

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

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

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

    使用 Taro 開發鴻蒙原生應用 —— 快速上手,鴻蒙應用開發指南

    隨著鴻蒙系統的不斷完善,許多應用廠商都希望將自己的應用移植鴻蒙平臺上。最近,Taro 發布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發鴻蒙原生應用,也可將現有的
    的頭像 發表于 02-02 16:09 ?450次閱讀
    使用 Taro 開發<b class='flag-5'>鴻蒙</b>原生應用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應用開發<b class='flag-5'>指南</b>

    鴻蒙】標準系統移植指南

    標準系統移植指南 本文描述了移植一塊開發板的通用步驟,和具體芯片相關的詳細移植過程無法在此一一列舉。后續社區還會陸續發布開發板移植的實例供開
    的頭像 發表于 02-27 14:36 ?371次閱讀
    【<b class='flag-5'>鴻蒙</b>】標準系統<b class='flag-5'>移植</b><b class='flag-5'>指南</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>