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

4412開發(fā)板移植Openharmony3.0標準版-原來移植ohos可以這樣簡單!

系統(tǒng)
4412開發(fā)板(1G+8G)采用Cortex-A9四核的Exynos 4412 (Exynos 4 Quad),主頻1.4~1.6 GHz,GPU采用的是Mali 400MP四核心圖形處理器,支持2D/3D圖形加速。

[[442853]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

大家好!我是拓維信息的鴻蒙開發(fā)者,廖永恒。最近,我在4412開發(fā)板上移植openharmony3.0(標準版)。并顯示成功。在這里,我簡單分享我移植過程。

4412開發(fā)板(1G+8G)采用Cortex-A9四核的Exynos 4412 (Exynos 4 Quad),主頻1.4~1.6 GHz,GPU采用的是Mali 400MP四核心圖形處理器,支持2D/3D圖形加速。

在文章中,我更多介紹移植解決問題方向、方法、調(diào)試手段。因為我覺得,在移植過程,你會遇到各種各樣的問題,自己要懂得分析問題,懂得解決問題。在文章中我更多充當“指路人”,同時文章教程在移植別的平臺芯片起到借鑒作用。我是一名才疏學(xué)淺的晚輩,同時妥妥一名鴻蒙小學(xué)生。在文章中有錯誤與不足,還望各位前輩們不吝指正。

一、我的移植環(huán)境

參考文章:一種快速移植OpenHarmony Linux內(nèi)核的方法

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

1.uboot:隨意,能引導(dǎo)kernel內(nèi)核就好。

2.kernel內(nèi)核:5.8 其實內(nèi)核不做什么要求,我也看到有人3.幾也可以用。之所以我用5.8,因為我看到4412最新的移植驅(qū)動好的內(nèi)核是這個版本。關(guān)于內(nèi)核,采用圖中三方Linux內(nèi)核方式。

3.根文件系統(tǒng):我是直接拿3516編譯后的system.img、userdata.img、vendor.img 。燒錄到mmc分區(qū)上。updater.img可以不燒錄。燒錄鏡像,各個平臺不同,自己需要想辦法燒錄成功。3516鏡像采用OpenHarmony-v3.0-LTS版本。

二、其他移植

1.移植好上圖中oh內(nèi)核態(tài)基礎(chǔ)代碼

2.Oh內(nèi)核態(tài)特性(如hdf)可以不移植,這個不會影響系統(tǒng)的啟動,UI界面的顯示。

3.移植顯示屏觸摸驅(qū)動。

4.重要移植點,就是移植顯示驅(qū)(drm驅(qū)動)要移植好,在dev/dri/ 存在cardx 。我的是card0 ,你可能會問,fb驅(qū)動呢?行不行?這個我沒有驗證。目前我見到幾款開發(fā)板,它們都是drm驅(qū)動。

三、關(guān)鍵配置

1.內(nèi)核配置里面必須要開啟IPC,不然系統(tǒng)啟動后有幾個進程處在高占用率狀態(tài),導(dǎo)致系統(tǒng)卡頓。

Device Drivers —>

Android —>

[] Android Drivers (開啟)

[] Android Binder IPC Driver (開啟)

2.內(nèi)核配置開啟SELinux Support 不然在啟動系統(tǒng)中報錯,但可以不開啟,不會影響系統(tǒng)啟動或顯知問題。

3.重新編譯內(nèi)核。

四、啟動系統(tǒng)

1.正確引導(dǎo)內(nèi)核啟動,根文件系統(tǒng)啟動。

我的bootargs是這個,

“mem=900M mmz=anonymous,0,0xA8000000,384M clk_ignore_unused androidboot.selinux=permissive skip_initramfs rootdelay=5 init=/init root=/dev/mmcblk1p2 rootfstype=ext4 rw blkdevparts=mmcblk1:1982M(updater),3075M(system),2048M(userdata),-(vendor)”

供參考。

2.啟動系統(tǒng)后修改三個文件

a.system/etc/init.cfg

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

我的修改成這樣,這里是掛載vendor與data分區(qū),看自身情況修改。

b.system/etc/weston.ini

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

這里是指定顯示設(shè)備來顯示。

c./system/etc/udev/rules.d/ touchscreen.rules

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

這里是指定觸摸設(shè)備。其中TSC2007 Touchscreen是我的觸摸設(shè)備名稱。

獲取方式:cat /proc/bus/input/devices

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

五、測試過程

如果顯示、觸摸驅(qū)動都弄好,燒錄鏡像正常。重啟設(shè)備后會可以直接顯示并觸摸。就這么簡單?就是這么簡單。

如果顯示不正常,解決思路是這樣:

(1)DRM 是否存在dev/dri/cardx x=1、2、3

(2)libdrm 是否通過modetest測試。 ohos 的third_party源碼有l(wèi)ibdrm庫想辦法編譯出來。

我的測試方法:自己寫測試文件,然后顯示出各種顏色。

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

測試結(jié)果:

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

(3)wmtest 測試

在這個目錄下的BUILD.gn 31行中改為ture。編譯生成wmtest可執(zhí)行文件。

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

測試命令:

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

測試結(jié)果:

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

六、查原因與解決問題

如果在上面的測試都通過了,還是不顯示系統(tǒng)界面,那就按下面的方法找原因。

參考文章:啟動恢復(fù)子系統(tǒng)概述

1.首先查看重要進程是否開啟

shell命令行輸入:ps -A

比如 installs、accountmgr、ueventd 、foundation、weston、appspawn 、com.ohos.launch、com.ohos.system

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

上圖詮釋系統(tǒng)啟動過程,先初始化init,根據(jù)/etc/ init.cfg 拉起

ueventd線程,然后再根據(jù)/etc/init/.cfg文件如圖拉起各個線程。比如:accountmgr、appspawn、系統(tǒng)界面等等。

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

在這里演示找到不能啟動開機動畫原因。開機動畫在graphic.cfg 拉起

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

正常情況下 在shell 輸入bootanimation 會顯示開機動畫的。

假設(shè)開機界面出現(xiàn)異常

在shell下輸入

bootanimation & hilog | grep BootAnimation

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

報錯是因為找不到這個開機文件。

為什么要 grep BootAnimation? 因為關(guān)于開機動畫源碼中指定log標簽BootAnimation 可以過濾無關(guān)日志。

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!-鴻蒙HarmonyOS技術(shù)社區(qū)

再舉例

所有com開頭的進程如com.ohos.systemui進程沒有起來。這個怎么樣查原因,有點難入手,我采用對比法,用好的3516開發(fā)板來做對比。我想到這些進程跟系統(tǒng)界面有關(guān),我想想讓它重啟界面,讓它報錯出來。我讀到文中的一句話:“由于應(yīng)用都需要加載JS的運行環(huán)境,涉及大量準備工作,因此appspawn作為應(yīng)用的孵化器,在接收到foundation里的應(yīng)用啟動請求時,可以直接孵化出應(yīng)用進程,減少應(yīng)用啟動時間。”我直接kill foundation進程試試?因為kill foundation進程重啟UI界面的,然后shell輸入:kill 824 & hilog > /data/foundation.log 其中824 是foundation的pid ,把hilog日志保存在/data/foundation.log中。在4412開發(fā)板與3516開發(fā)板做同樣的動作。

在foundation.log 搜關(guān)鍵字 “E” 發(fā)現(xiàn)一處,4412開發(fā)板讀system/lib/****.so文件失敗。3516開發(fā)板不報錯。最后我把3516開發(fā)板的lib庫全部拷貝到4412開發(fā)板上,重啟4412開發(fā)板,com開頭的進程都起來,界面顯示正常。

總之一句話:不怕bug多,就怕找不到error,不怕它異常,就怕沒有解決思路、方向。

七、其他

1.shell aa命令的使用

aa start -a com.ohos.photos.MainAbility -b com.ohos.photos

aa start -a com.ohos.settings.MainAbility -b com.ohos.settings

aa start -a com.ohos.launcher.MainAbility -b com.ohos.launcher

八、總結(jié)

移植過程還有諸多不足:

(1)顯示屏是4.3寸的電阻屏,界面顯示不全,觸摸沒做校驗,觸摸不準,亂跳。后期換大屏的電容屏。

(2)沒有加到openharmony編譯框架里面。

(3)hdc、hdf框架沒有使用起來。

展望:會把上面的不足慢慢完善起來。

異常問題千千萬,解決方向與方法很關(guān)鍵。今與各位同仁共享移植心得,在開鴻道路上越走越順、越快。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-12-16 15:14:54

鴻蒙HarmonyOS應(yīng)用

2021-12-31 10:00:30

鴻蒙HarmonyOS應(yīng)用

2022-01-04 11:05:52

鴻蒙HarmonyOS應(yīng)用

2021-11-23 15:35:05

鴻蒙HarmonyOS應(yīng)用

2021-11-08 07:19:45

鴻蒙HarmonyOS應(yīng)用

2022-06-21 11:02:27

系統(tǒng)移植鴻蒙

2021-10-14 15:48:28

鴻蒙HarmonyOS應(yīng)用

2011-06-15 14:19:11

QT 移植

2020-11-24 11:41:30

websocket

2022-04-01 15:54:01

DHCP網(wǎng)絡(luò)協(xié)議開發(fā)板

2022-01-07 09:56:16

鴻蒙HarmonyOS應(yīng)用

2022-02-09 19:45:41

MQTTOpenHarmon鴻蒙

2022-01-07 21:11:27

鴻蒙HarmonyOS應(yīng)用

2021-04-21 09:50:18

ubootexynos4412開發(fā)板

2022-09-15 15:21:22

操作系統(tǒng)鴻蒙

2023-06-27 15:12:46

C++三方庫移植

2022-09-14 15:28:19

操作系統(tǒng)鴻蒙

2022-09-13 16:10:15

鴻蒙操作系統(tǒng)

2022-09-07 15:08:58

操作系統(tǒng)鴻蒙

2022-09-06 15:46:52

speexdsp鴻蒙
點贊
收藏

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