
OpenHarmony三方内核移植 原创
Hello_Kun
发布于 2024-9-19 14:51
浏览
0收藏
如下图所示,OpenHarmony 内核层主要包含OH Linux内核、OH内核态特性。其中OH Linux内核可以看成是由三方Linux内核+OH内核态基础代码的组成。
OH 默认Linux内核为5.10,为保证稳定性,移植OH时使用目标芯片的原生内核,在此基础上添加OH内核态基础代码、OH内核态特性。即,选择的移植方案是:OH 内核层 = 目标芯片的Linux 内核 + OH内核态基础代码 + HDF特性 ,以目标芯片Linux-4.19.15内核移植OH为例,移植过程如下:
0.首先准备内核源码
1 添加内核基础代码
2 打hdf补丁
如果不添加HDF补丁,编译会报错遇到 undefined reference to _hdf_drivers_end' 、 undefined reference to
_hdf_drivers_start’
**检查内核补丁,**发现是因为执行drivers/hdf_core/adapter/khdf/linux/patch_hdf.sh时,默认添加的补丁路径和内容为:
hi3516是arm架构的,而新的csky架构,所以这个默认common_patch/hdf.patch补丁打到了arch/arm中,两种解决方法:
-
1.在 kernel/linux/patches/linux-4.19/common_patch/hdf.patch中添加针对csky的补丁,
-
2.直接修改/kernel/src_tmp/linux-4.19.15/arch/csky/kernel/vmlinux.lds.S,添加hdf占位符代码:
方法1需要制作补丁文件,因为需要找到目标芯片的linux内核、OH内核提交hdf补丁的pr,因为难以寻找,故选择方法2,手动添加
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
赞
收藏
回复

回复
相关推荐