openEuler_编译64K内核包(spec文件构建)
前言
openEuler的kernel.spec本身支持构建64K内核的版本,因此本文介绍如何通过修改kernel.spec,构建出64K版本的相关kernel rpm包及相关内核衍生包。
kernel source软件包下载与安装
下面以修改22.03 SP2 LTS版本的kernel.spec为例。
首先,需要下载openEuler 22.03 SP2 LTS的内核source软件包,并安装。
如果需要其他版本,https://repo.huaweicloud.com/openeuler仓库中自行搜索即可。
下载后,安装src rpm包。
| | |
| --- | --- |
| 1 | yum install -y rpm-build |
| 2 | rpm -ivh kernel-5.10.0-153.12.0.92.oe2203sp2.src.rpm |
安装后,可在/root/rpmbuild/SOURCE找下kernel源码包及相关文件,可在/root/rpmbuild/SPECS找到kernel.spec文件。
kernel.spec启用64K内核页配置
-
打开添加CONFIG_ARM64_64K_PAGES配置项的开关
在kernel.spec 32行前面添加_with_64kb的定义如下:
| | | | --- | --- | | 1 | %global _with_64kb 1 # 新增行,使能64K内核配置 | | 2 | %ifarch aarch64 | | 3 | %define with_64kb %{?_with_64kb: 1} %{?!_with_64kb: 0} | | 4 | %if %{with_64kb} | | 5 | %global package64kb -64kb | | 6 | %endif | | 7 | %else | | 8 | %define with_64kb 0 | | 9 | %endif | -
关闭kabi检查(可选)
如果不关注kabi变化,可在kernel.spec中选择关闭,关闭后构建内核将不再检查kabi前后是否变化。修改如下:
| | | | --- | --- | | 1 | %global with_kabichk 0 # 新增行,关闭kabi检查 | | 2 | %if 0%{?with_kabichk} | | 3 | Source18: check-kabi | | 4 | Source20: Module.kabi_aarch64 | | 5 | Source21: Module.kabi_x86_64 | | 6 | %endif |
安装内核构建所需的依赖包
执行构建命令:rpmbuild -ba kernel.spec将提示需要安装的依赖包。基本为如下依赖包,可检查后自行安装。
| | |
| --- | --- |
| 1 | yum install -y asciidoc audit-libs-devel binutils-devel clang dwarves gtk2-devel java-1.8.0-openjdk java-devel libbabeltrace-devel libcap-devel libcap-ng-devel libunwind-devel llvm pciutils-devel newt-devel perl-generators python3-docutils xmlto |
安装后,确认当前java环境是否为JDK8,执行javac -version,若是则依赖包安装正确,否则若JDK回显非JDK8,则需要重新安装软件包java-1.8.0-openjdk和java-1.8.0-openjdk-devel,并再次确认。
构建64K版本内核的相关软件包
执行如下命令,等待构建成功即可。
| | |
| --- | --- |
| 1 | cd /root/rpmbuild/SPECS |
| 2 | rpmbuild -ba kernel.spec |
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)