OpenHarmony 内核学习 [1]-- 单独编译 OpenHarmony 标准系统内核
内核是操作系统的核心,学习掌握 OpenHarmony 内核对于开发人员至关重要。笔者整理学习 OpenHarmony 标准系统内核笔记如下:
阅读本文大约需要 15 分钟。@toc
OpenHarmony 标准系统内核
OpenHarmony 标准系统类设备(参考内存≥128MiB),OpenHarmony 选择 Linux 内核作为标准系统内核。
OpenHarmony 标准系统从
Linux内核LTS版本
中选择合适的版本作为内核的基础版本,目前已完成对 Linux-4.19 及 Linux-5.10 的适配及支持。
Linux 内核版本
Linux 内核版本分为稳定版本以及长期支持 LTS(long term support)版本。
稳定版本大约每三个月发布一个新版本,包含最新硬件支持、性能改进以及 bug 修复等。其缺点是整体维护生命周期较短,产品软件不能得到长期稳定的支持。
LTS 为长期支持版本,“长期支持”体现在对该版本内核的长期维护(对 bug 和安全方面的修复),一般维护周期达到 6 年之久。相较于维护周期从 6 个月到 2 年不等非 LTS 内核版本,对一款商用产品来说并不能覆盖其产品完整的生命周期,很有可能会使产品暴露于安全的风险之中。且 LTS 版本更新不会包含新的特性升级,保证了版本的稳定。
OpenHarmony 的 Linux 内核基于开源 Linux 内核 LTS 4.19.y / 5.10.y 分支演进,在此基线基础上,回合 CVE 补丁及 OpenHarmony 特性,作为 OpenHarmony Common Kernel 基线。针对不同的芯片,各厂商合入对应的板级驱动补丁,完成对 OpenHarmony 的基线适配。
Linux 社区 LTS 4.19.y 分支信息请查看kernel官网;
Linux 社区 LTS 5.10.y 分支信息请查看kernel官网。
内核的 Patch 组成模块,在编译构建流程中,针对具体芯片平台,合入对应的架构驱动代码,进行编译对应的内核镜像。所有补丁来源均遵守 GPL-2.0 协议。
目前 OpenHarmony Beta3 使用的内核版本为 5.10.93,Beta4 使用的内核版本为 5.10.97
OpenHarmony 标准系统内核源码目录
单独编译 OpenHarmony 标准系统内核(以 rk3568 为例)
笔者编译环境:
wsl2
+Ubuntu18.04
+OpenHarmony Beta3源码
首先在 out/kernel/src_tmp/linux-5.10 目录下打开终端执行如下语句:
单独编译结果
结果是在如下目录下生成 resource.img 内核镜像和 boot_linux.img
/home/jiajiahao/ohos3.2beta3/sources/out/kernel/OBJ/linux-5.10/resource.img
home\jiajiahao\ohos3.2beta3\sources\out\kernel\src_tmp\linux-5.10\boot_linux.img
重新编译 OpenHarmony 标准系统内核
删除源码下 out 目录
然后重新编译出全部的镜像文件
知识附送
编译 rk64 位:用 DevEco Device Tool 工具可以编译 64 位的镜像
安装最新依赖包:
OpenHarmony 环境重置
版权声明: 本文为 InfoQ 作者【离北况归】的原创文章。
原文链接:【http://xie.infoq.cn/article/1430d41edc60ae922e800e00a】。文章转载请联系作者。
评论