自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenHarmony富設備移植指南(五)打包刷機與簡單設備調(diào)試

系統(tǒng) OpenHarmony
原解壓出的大小是8m多,我們的內(nèi)核因為把模塊編譯進內(nèi)核的緣故,容量會增大,導致使用原有配置文件會無法成功打包,所以我們增大到16m,小米6的boot分區(qū)有64m不會影響boot.img的刷入。

??想了解更多關于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

??https://ost.51cto.com??

一、打包boot.img鏡像

boot.img打包流程:

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

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

1、修改內(nèi)核啟動參數(shù)

(1)修改boot.img大小

原解壓出的大小是8m多,我們的內(nèi)核因為把模塊編譯進內(nèi)核的緣故,容量會增大,導致使用原有配置文件會無法成功打包,所以我們增大到16m,小米6的boot分區(qū)有64m不會影響boot.img的刷入。

bootsize = 0x1000000

(2)修改并添加內(nèi)核啟動參數(shù)

cmdline = clk_ignore_unused console=tty1 console=ttyGS0,115200 no_console_suspend hardware=sagit default_boot_device=1da4000.ufshc ohos.required_mount.system=/dev/block/platform/soc/1da4000.ufshc/by-name/system@/usr@ext4@ro,barrier=1@wait,required ohos.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ù),實測不配置也不影響啟動。

hardware=sagit default_boot_device=1da4000.ufshc

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

?ohos.required_mount.system=/dev/block/platform/soc/1da4000.ufshc/by-name/system@/usr@ext4@ro,barrier=1@wait,required ohos.required_mount.vendor=/dev/block/platform/soc/1da4000.ufshc/by-name/cust@/vendor@ext4@ro,barrier=1@wait,required

console=tty1 是為啟動日志輸出到屏幕,后續(xù)可以進行觀察OH的渲染框架是否接管屏幕 console=ttyGS0,115200 為開啟串口控制臺,后續(xù)方便進行輸入命令,進行debug調(diào)試等。

其他可按需配置,啟動參數(shù)參考標準Linux。

2、打包帶設備樹的內(nèi)核

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

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

3、打包boot.img

命令如下,使用abootimg工具,--create指定進行boot.img創(chuàng)建的位置,-f指定bootimg.cfg位置,-k指定帶設備樹內(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中,復制boot.img,system.img和vendor.img到電腦中,準備進行刷機工作。

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

二、刷入鏡像

1、TWRP刷入鏡像


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

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

選擇安裝:

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

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

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

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

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

滑動確認刷入。

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

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

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

同樣按兩次返回,選擇vendor.img,選擇vendor分區(qū)。

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

回到主頁,選擇清除,選擇格式化Data分區(qū)。

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

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

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)


2、fastboot刷入鏡像

按音量鍵下+開機鍵進入fastboot模式,連接電腦,裝好驅(qū)動,使用以下命令進行刷機,fastboot需要額外userdata.img,默認OHbeta5生成的userdata是f2fs格式的,需要修改build/ohos/images/mkimage/userdata_image_conf.txt,把--fs_type=f2fs中的f2fs修改成ext4,然后重新編譯。

fastboot flash boot (boot.img的路徑)
fastboot flash system (system.img的路徑)
fastboot flash cust (vendor.img的路徑)#網(wǎng)友【賀小帥解說】提醒在此修正
fastboot erase userdata
fastboot flash userdata (userdata.img的路徑) #網(wǎng)友【賀小帥解說】提醒在此修正
fastboot reboot

三、簡單調(diào)試經(jīng)驗分享2,刷入鏡像

1、設備不斷重啟

上篇文章中我們配置了usb串口,如果內(nèi)核驅(qū)動正常的話手機使用usb連接電腦會自動識別為com設備,這時我們使用xshell,mobaxterm等工具查看串口日志。

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)


比如一般不斷重啟是因為render_service的崩潰,渲染服務是關鍵服務,OH設置了崩潰會自動重啟。

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

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

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

2、使用modetest測試DRM驅(qū)動

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

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

service_control stop render_service

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

modetest

查看log:

......
trying to open device 'msm'...done
Encoders:
id crtc type possible crtcs possible clones
31 81 DSI 0x00000001 0x00000001

Connectors:
id encoder status name size (mm) modes encoders
32 31 connected DSI-1 64x114 1 31
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
#0 1080x1920 60.00 1080 1200 1216 1256 1920 1924 1926 1930 145444 flags: ; type: preferred, driver
......

我們可以找到,我們的驅(qū)動模塊名為msm,Connector id為32,mode名為1080x1920。

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

-M module use the given driver

-s <connector_id>[,<connector_id>][@<crtc_id>]:[#<mode index>]<mode>[-<vrefresh>][@<format>] set a mode

我的命令簡化為:

modetest -M msm -s 32:1080x1920

運行命令后,手機屏幕顯示出顏色條紋,即為DRM驅(qū)動工作正常。

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

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

配置hilog打印等級,啟動屏幕調(diào)試hilog打印。

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

OpenHarmony富設備移植指南(5)打包刷機與簡單設備調(diào)試-開源基礎軟件社區(qū)

使用命令啟動渲染服務,并過濾只顯示display相關的內(nèi)容。

hilog -D 0xD001400 & service_control start render_service

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

??想了解更多關于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區(qū)
相關推薦

2023-02-28 15:40:16

鴻蒙CPU渲染

2023-03-23 16:02:07

樹莓派4GPU調(diào)試

2023-04-06 09:10:13

設備移植鴻蒙

2023-03-10 09:47:45

OpenGL渲染設備移植

2023-03-06 16:11:00

設備移植開源GPU驅(qū)動

2023-02-06 16:21:48

2023-02-07 15:52:50

2023-02-08 15:46:50

設備移植第三方內(nèi)核適配

2023-05-05 16:05:26

設備內(nèi)核移植鴻蒙

2023-05-16 14:49:25

鴻蒙內(nèi)核移植

2023-07-25 10:45:48

OHScrcpy鴻蒙

2023-02-14 17:11:50

開源鴻蒙刷機指南

2022-03-17 15:55:19

播放數(shù)字音頻解碼鴻蒙

2023-08-01 16:29:26

鴻蒙設備安裝

2022-03-14 15:19:36

鴻蒙開發(fā)板操作系統(tǒng)

2022-09-28 13:48:13

設備開發(fā)鴻蒙

2022-10-24 14:54:29

LWIP協(xié)議鴻蒙

2022-02-15 14:45:14

OpenHarmo系統(tǒng)鴻蒙

2023-02-15 16:38:04

代碼敏捷開發(fā)

2022-10-25 14:51:11

設備開發(fā)鴻蒙
點贊
收藏

51CTO技術(shù)棧公眾號