OHOS(1) 了解移植相關知識

https://www.openharmony.cn/
***********************************
標準系統(tǒng)移植指南
https://docs.openharmony.cn/pages/v3.2/zh-cn/device-dev/porting/standard-system-porting-guide.md/
一種快速移植OpenHarmony Linux內(nèi)核的方法
https://docs.openharmony.cn/pages/v3.2/zh-cn/device-dev/porting/porting-linux-kernel.md/
***********************************
獲得內(nèi)核態(tài)層的兩種方法
為了表述方便,我們在下文部分地方用“OH”代替“OpenHarmony”。
將OH內(nèi)核態(tài)層繼續(xù)分解
OH內(nèi)核態(tài)層 = OH Linux內(nèi)核 + OH內(nèi)核態(tài)特性(可選特性或者必選特性,如必選特性HDF,今后的可選特性HMDFS等)
而OH Linux內(nèi)核 = 標準LTS Linux 內(nèi)核 + 三方SoC芯片平臺代碼 + OH內(nèi)核態(tài)基礎代碼(支撐OH用戶態(tài)層運行的最基礎代碼)
因此OH內(nèi)核態(tài)層 = 標準LTS Linux 內(nèi)核 + 三方SoC芯片平臺代碼 + OH內(nèi)核態(tài)基礎代碼 + OH內(nèi)核態(tài)特性(如HDF)

而將前兩項組合,標準LTS Linux 內(nèi)核 + 三方SoC芯片平臺代碼,其實就是一個三方Linux內(nèi)核的基礎組成。從上面的推導可以看出,OpenHarmony 內(nèi)核態(tài)層其實能夠由兩種方法得到:
方法一:OH 內(nèi)核態(tài)層 = 三方Linux內(nèi)核 + OH內(nèi)核態(tài)基礎代碼 + OH內(nèi)核態(tài)特性(如HDF,今后的HMDFS等)
也就是直接借助三方Linux內(nèi)核,再加上基礎OH內(nèi)核態(tài)基礎代碼、以及HDF等OH內(nèi)核態(tài)特性。
方法二:OH 內(nèi)核態(tài)層 = OH Linux內(nèi)核 + OH內(nèi)核態(tài)特性(如HDF,今后的HMDFS等)
也就是直接采用OHLinux內(nèi)核,然后再加入OH的其他內(nèi)核態(tài)特性。
當前方法二中OHLinux內(nèi)核支持的三方芯片平臺還不夠豐富。為了能夠響應三方開發(fā)者快速移植OpenHarmony的要求,下文會著重介紹方法一,即借助三方已有的Linux內(nèi)核,來快速移植OpenHarmony。
借助已有Linux內(nèi)核來移植OpenHarmony的流程
整個移植流程可以分為三步:
準備整體構建環(huán)境,包括將三方芯片平臺的現(xiàn)有內(nèi)核代碼拷貝到OpenHarmony的整體編譯環(huán)境下。
OpenHarmony內(nèi)核態(tài)基礎代碼的移植。
OpenHarmony內(nèi)核態(tài)必選特性(如HDF等)的移植。
=========================================================
標準系統(tǒng)方案之瑞芯微RK3568移植案例
https://docs.openharmony.cn/pages/v3.2/zh-cn/device-dev/porting/porting-dayu200-on_standard-demo.md/
=========================================================
OpenHarmony v4.0 beta1 (API Level 10接口)
https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v4.0-beta1.md
獲取源碼:
????“從鏡像站點獲取”:全量代碼(標準、輕量、小型系統(tǒng)) 4.0 Beta1
https://repo.huaweicloud.com/openharmony/os/4.0-Beta1/code-v4.0-Beta1.tar.gz?26.2 GB
查看:
????在device/board/下 grep rk3588 -n -r . 看下哪里有rk3588
????hihope/dayu210,這就是參考對象了
????編譯:./build.sh --product-name dayu210
????我的做法是另類的:就像剖開RKSDK一樣,首先bootloader這部分就是原RKSDK,linux kernel也是原RKSDK基礎上去修改,需要的是OHOS rootfs內(nèi)容(需要編譯一遍得到),然后就是RKSDK + OHOS ROOTFS 就可以組合成OHOS了(和ubuntu rootfs一個道理)。