当前位置: 首页 > news >正文

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/openEuler-22.03-LTS-SP2/source/Packages/kernel-5.10.0-153.12.0.92.oe2203sp2.src.rpm

如果需要其他版本,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内核页配置

  1. 打开添加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 |
  2. 关闭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 |
http://www.jsqmd.com/news/1392997/

相关文章:

  • Ruby 4.0 通用 RCE 反序列化利用链:突破版本限制,深入底层构建
  • Rai Pal高级技巧:离线模组加载、本地数据库管理与Wine前缀优化
  • GEO排名查询平台助力AI搜索曝光评估,解锁AI时代品牌营销方式
  • Milvus RAG 灰度上线,先核对新旧召回差异
  • 3分钟搞定3MF导入导出:Blender3mfFormat插件完整上手指南
  • 2026 河南树瘤板材源头厂家选型指南:环保等级、花色丰富度与直供模式解析 - 中国华商产业观察网
  • 婴童润护洗发沐浴露哪家好:【蜜妙诗】冲净无残留感 - 17728181569
  • 从零到第一张图只要5分钟:这份ComfyUI中文工作流合集,是AI绘画新手的“作弊码“
  • Paperclip_Agent编排平台
  • 零基础安装pakku.js弹幕过滤插件:4步装好,5分钟告别刷屏弹幕
  • Raft 组件选型:先验证日志、快照和成员变更
  • Remix平板电脑评测:Android、Windows傻傻分不清楚
  • 一个链接把整个账号视频搬回家:DouK-Downloader 抖音数据采集实战指南
  • 短链接生成原理深度解析:durl如何用Beego+Xorm打造高效URL转换引擎
  • C语言函数递归:从“自己调用自己“到“大事化小“的完整复盘
  • 快手与星竞威武达成战略合作,持续完善游戏直播与电竞内容生态
  • 2026年8月白银屋顶漏水维修哪家好?正规防水修缮科普指南 - 聪居到家
  • 在 windows 上部署免安装版本的 PostgreSQL 16.15
  • 【ORC】如何将 Parquet 文件高效转换为 ORC 格式?有哪些工具或方法?
  • 婴童润护洗发沐浴露哪家好:【蜜妙诗】舒缓浴后紧绷 - 18102756859
  • scroll-world零基础实战:用AI把任何品牌变成无缝3D滚动页面的完整攻略
  • 如何让文心生成word文档?AI导出鸭苹果版将文心一言输出的富文本标记实时转为标准docx,保留公式、表格与流程图。
  • Flowable工作流引擎
  • 分布式存储 RPC 评审:超时、重试和幂等要连着看
  • Stellarium星空文化终极指南:一键切换千年文明,看清同一片天
  • 一台旧iPhone的自救:applera1n激活锁绕过工具全解析
  • RPG Maker MV解密神器上手指南:不用装软件,浏览器一键解锁加密资源
  • 婴童蛋黄油精华霜哪家好:【蜜妙诗】抚平起皮粗糙 - 17328623207
  • 2026西双版纳装修公司推荐:本地深耕15年的靠谱之选 - 品牌品鉴馆
  • 5 分钟搞定 B站视频下载:BiliTools 跨平台下载工具新手速通