7885解耦项目升级OH5.0编译总结
任务目标: 将7885 解耦项目的OpenHarmony框架从OH4.1Release升级到OH5.0Release。 项目结构说明: 由社区sig工程和laval工程组成,社区sig工程负责编译OH框架和开源产品仓,laval工程负责编译展锐镜像。 工程具体说明可查阅:https://gitee.com/cooperation-team-7885/make_pac/blob/5.0/READM
任务目标:
将7885 解耦项目的OpenHarmony框架从OH4.1Release升级到OH5.0Release。
项目结构说明:
由社区sig工程和laval工程组成,社区sig工程负责编译OH框架和开源产品仓,laval工程负责编译展锐镜像。
工程具体说明可查阅:https://gitee.com/cooperation-team-7885/make_pac/blob/5.0/README.md
升级步骤:
一、搭建sig工程
1、创建manifests工程,xml中OH底座仓指向社区OH5.0.0release版本tag节点,产品仓(device和vendor仓)则基于OH4.1解耦版本在对应的sig仓fork一份新的5.0分支,fork仓的新分支需统一命名。
2、内核方面有三个仓,分别为kernel_linux_5.15、kernel_linux_common_modules和kernel_linux_patches。
kernel_linux_5.15仓在sig空间已存在,需fork一份新的5.0分支。
kernel_linux_common_modules和kernel_linux_patches仓在sig空间中不存在,涉及的嵌入式修改需作为patch放在device_board_hardmony下的kernel目录。
二、搭建laval工程
1、创建manifests工程,xml中OH底座仓指向社区OH5.0release版本tag节点,kernel相关仓指向sig仓的5.0分支,产品仓则基于OH4.1解耦版本fork一份新的5.0分支。
2、基于4.1版本底座的嵌入式修改pr,5.0工程对应的仓同样需要fork一份。
三、编译sig工程
目标:保障编译通过,和laval工程合并拍包烧录后启动正常,如hdc能识别设备,以及foundation、render_service基本服务能启动。
注意:需要嵌入式修改OH仓的代码需制作成patch放到device_soc_spreadtrum/patches目录下,并修改vendor/***/下的patch.yml配置。
1、裁剪产品仓模块
-
裁剪产品仓非启动相关模块
-
build仓patch修改适配到5.0
2、执行产品编译,解决编译报错
-
内核linux-5.15基于OH5.0适配
-
内核5.15的kernel_linux_patch仓的hdf.patch挪到device/board/***/kernel目录,在编译内核时拷贝到kernel_linux_patch目录下
-
kernel_common_modules仓的patch挪到device/board/***/kernel目录,在编译内核时打补丁到kernel_common_modules目录
-
内核5.15导致的部分OH部件编译报错问题需制作成patch,如device_soc_spreadtrum/patches下的drivers/hdf_core中的0001-hdf_core.patch
-
vendor仓配置适配OH5.0,如:features命名、resourceschedule配置、security_config配置等,可能还涉及其他配置,可参考社区rk3568
3、编译完成后拍包
拍包工具分:sig+laval合并拍包、sig工程独立拍包。
-
sig+laval合并拍包需在laval工程成功编译后执行,方便一次性烧录调试。
-
sig工程独立拍包为sig工程独立发布后的必要工具,保障oh相关功能更新时烧录。
拍包工具及说明见:https://gitee.com/cooperation-team-7885/make_pac/tree/5.0/
四、编译laval工程
目标:保障编译通过,和sig工程合并拍包烧录后启动正常。
1、执行产品编译,解决编译报错
-
基于OH5.0底座的编译报错,涉及嵌入式修改的OH仓需fork,并更新manifests工程,适配修改后提交到fork的仓。
-
编译完成后保障展锐相关组件和驱动没有缺失
2、编译完成后拍包
编译完成后会在out目录生成独立的laval工程pac包,可独立烧录该包,然后再烧录sig工程的pac包。也可以通过sig+laval合并拍包后一次性烧录。
更多推荐
所有评论(0)