OpenHarmony Linux内核本地管理
概述
写这篇文章的初衷,其实也是作者从事多年Android系统开发中,根深蒂固的目录情节导致的,再开发Harmony系统中,总是想模拟Android系统的开发思路。
对于OpenHarmony这个patch机制,其实我很讨厌它,虽然这样可以简化维护工作,不需要每个厂家都维护一个内核开发版本,但是这个patch,我讨厌它的地方就是严重制约了多人协作开发。如果一不小心修改了上游内核的文件,则如果用现有的机制,每一个协作开发的同学都需要重新再次生成patch ,不然无法patch到编译的内核。
本文基于RK3568 OpenHarmony 5.1进行描述, 使用Openharmony发布的linux-6.6内核。
修改步骤
1、拷贝内核patch
从kernel/linux/patches/linux-6.6/rk3568_patch/目录下拷贝hdf.patch和kernel.patch文件到kernel/linux/linux-6.6目录下,如下所示:
2、合并hdf.patch文件
在linux-6.6源码目录执行patch -p1 < hdf.patch,合并hdf.patch,如下所示:
3、文件拷贝
拷贝
drivers/hdf_core/adapter/khdf/linux linux-6.6/drivers/hdf/khdf
drivers/hdf_core/framework linux-6.6/drivers/hdf/framework
drivers/hdf_core/interfaces/inner_api linux-6.6/drivers/hdf/inner_api
drivers/hdf_core/framework/include/* linux-6.6/include/hdf
device/soc/hisilicon/common/platform/wifi linux-6.6/drivers/hdf/
third_party/FreeBSD/sys/dev/evdev linux-6.6/ drivers/hdf/
4、打入RK3568 BSP驱动patch
在命令行执行patch -p1 < kernel.patch
5、禁止OpenHarmony的patch功能
修改device/board/hihope/rk3568/kernel/build_kernel.sh文件,
a、注释掉PATCH路径
b. 禁止patch功能