发布时间:2026/8/15 8:54:29
openEuler编译和更换内核的方法 1. 编译内核生成rpm包2. rpm包替换内核3. 通过删除rpm包来删除内核4. 指定默认启动的内核5. 在两个硬盘上装双系统时指定硬盘启动顺序1. 编译内核生成rpm包内核编译在内核根目录下执行make openeuler_defconfig生成.config文件通过make menuconfig指定一些内核配置选项比如设置编译成的rpm包名称| | | | --- | --- | | 1 | General setup --- | | 2 | (_debug_sp4) Local version - append to kernel release |将spi_dw_mmio.c这个驱动编译为内核| | | | --- | --- | | 1 | Device Drivers --- | | 2 | [*] SPI support --- | | 3 | M Memory-mapped io interface driver for DW SPI core |通过查看.config文件中对应的配置项可以检查make menuconfig中的设置是否生效编译rpm包make binrpm-pkg -j jobs number其中jobs number代表并发量一般小于等于CPU核数生成的rpm包位于~/rpmbuild/RPMS/aarch64目录下共有两个包一个是kernel的二进制包一个是头文件包。| | | | --- | --- | | 1 | [rootlocalhost aarch64]# pwd | | 2 | /home/j00521119/rpmbuild/RPMS/aarch64 | | 3 | [rootlocalhost aarch64]# ll | | 4 | total 32072 | | 5 | -rw-rw-r--. 1 j00521119 j00521119 31602553 Nov 1 16:31 kernel-4.19.90-26.aarch64.rpm | | 6 | -rw-rw-r--. 1 j00521119 j00521119 1234637 Nov 1 16:30 kernel-headers-4.19.90-26.aarch64.rpm |编译过程中可能会遇到缺乏依赖包的问题根据报错内容安装需要的包即可。优化编译时间实际编译过程中会发现最后打包生成rpm包的耗时较长。通过下面的两步操作可以缩短打包生成rpm包的时间同时减少rpm包的size。在内核源码根目录下打开scripts/package/mkspec文件并注释这下述两行| | | | --- | --- | | 1 | bzip2 -9 --keep vmlinux | | 2 | mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2 |使用环境变量export INSTALL_MOD_STRIP1其中第一步的作用是不把vmlinux打包进rpm包中。vmlinux是linux内核的未压缩二进制文件包含了完整的内核代码和符号表信息通常用于调试和分析内核问题。INSTALL_MOD_STRIP是用来压缩内核模块的变量。在编译内核时内核模块会被编译成.ko文件这些文件可能会占用大量的磁盘空间。为了减少内核模块的体积可以使用INSTALL_MODE_STRIP变量来指定内核模块是否需要被压缩。当该变量的值为1时内核模块会被剥离符号和调试信息从而减小文件大小。2. rpm包替换内核使用下面的命令更换内核一般只用替换kernel包即可。| | | | --- | --- | | 1 | rpm -ivh kernel*.rpm --force |安装完成后可以通过下面的命令检查内核是否已经安装成功。| | | | --- | --- | | 1 | rpm -qa | grep kernel |3. 通过删除rpm包来删除内核通过下面的命令查找当前已经通过rpm包安装的内核| | | | --- | --- | | 1 | [rootvm1 ~]# rpm -qa | grep kernel | | 2 | kernel-5.10.0-136.12.0.86.oe2203sp1.aarch64 | | 3 | kernel-headers-5.10.0-136.12.0.86.oe2203sp1.aarch64 | | 4 | kernel-4.19.90_wayca_sc_with_cluster-34.aarch64 |使用下面的命令删除已经安装的内核| | | | --- | --- | | 1 | rpm -e kernel-4.19.90_wayca_sc_with_cluster-34.aarch64 |4. 指定默认启动的内核有时候会存在多个内核版本同时存在的情况。一种方法是在启动阶段手动选择启动内核使用这种方法除了要登录BMC外还要在启动阶段持续关注启动界面在特定启动阶段手段选择内核。下面给出了一种指定默认启动内核的方法使用这种方法避免了在更换内核后登录BMC的操作。通过命令grub2-editenv list可以查看当前设置的默认启动内核通过命令grep ^menuentry /etc/grub2-efi.cfg可以查看当前支持的所有内核版本通过命令grub2-set-default来设置默认启动内核。使用menuentry之后单引号内的完整字符串作为内核名| | | | --- | --- | | 1 | [rootvm1 ~]# grub2-editenv list | | 2 | saved_entryopenEuler (4.19.90_debug_sp4_wayca_sc) 22.03 (LTS-SP1) | | 3 | [rootvm1 ~]# grep ^menuentry /etc/grub2-efi.cfg | | 4 | menuentry openEuler (4.19.90_wayca_sc_with_cluster) 22.03 (LTS-SP1) --class openEuler --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option gnulinux-5.10.0-136.12.0.86.oe2203sp1.aarch64-advanced-3c1ec069-3a9b-461f-be6c-6f6a7184c3c5 { | | 5 | menuentry openEuler (5.10.0-136.12.0.86.oe2203sp1.aarch64) 22.03 (LTS-SP1) --class openEuler --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option gnulinux-5.10.0-136.12.0.86.oe2203sp1.aarch64-advanced-3c1ec069-3a9b-461f-be6c-6f6a7184c3c5 { | | 6 | [rootvm1 ~]# grub2-set-default openEuler (5.10.0-136.12.0.86.oe2203sp1.aarch64) 22.03 (LTS-SP1) | | 7 | [rootvm1 ~]# grub2-editenv list | | 8 | saved_entryopenEuler (5.10.0-136.12.0.86.oe2203sp1.aarch64) 22.03 (LTS-SP1) |5. 在两个硬盘上装双系统时指定硬盘启动顺序有时候我们会在两个硬盘上安装两个系统除了通过bios来手动指定启动硬盘之外还可以使用efibootmgr命令来指定硬盘启动顺序。efibootmgr命令是一个用于管理UEFI引导选项的命令行工具。它可以列出、添加、删除和修改UEFI引导选项以及设置默认引导选项。通过使用efibootmgr命令用户可以轻松地管理UEFI引导选项以确保系统正确地引导到所需的操作系统或引导设备。efibootmgr常用的使用方法如下也可以使用efibootmgr --help查看其它使用方法efibootmgr用于显示当前的启动顺序当前启动项efibootmgr -o用于设置新的启动顺序设置完成后reboot即可| | | | --- | --- | | 1 | [rootlocalhost aarch64]# efibootmgr | | 2 | BootCurrent: 0010 | | 3 | Timeout: 10 seconds | | 4 | BootOrder: 0010,000E,0002,0003,0004,0005,0006,0007,0008,0009,000A,000B,000C,000D,0001,0000 | | 5 | Boot0000* BootManagerMenuApp | | 6 | ... | | 7 | Boot000E* openEuler | | 8 | Boot0010* Uefi OpenEuler Grub Boot | | 9 | [rootlocalhost aarch64]# efibootmgr -o 0000E,0010 | | 10 | BootCurrent: 0010 | | 11 | Timeout: 10 seconds | | 12 | BootOrder: 000E,0010 | | 13 | Boot0000* BootManagerMenuApp | | 14 | ... | | 15 | Boot000E* openEuler | | 16 | Boot0010* Uefi OpenEuler Grub Boot | | 17 | [rootlocalhost aarch64]# efibootmgr | | 18 | BootCurrent: 0010 | | 19 | Timeout: 10 seconds | | 20 | BootOrder: 000E,0010 | | 21 | Boot0000* BootManagerMenuApp | | 22 | ... | | 23 | Boot000E* openEuler | | 24 | Boot0010* Uefi OpenEuler Grub Boot |经过上面的操作后启动顺序由原来的0010在前变成了000E在前。下次启动时系统就会从000E对应的操作系统启动。

相关新闻

2026/8/15 8:49:28

Git合并拒绝:理解unrelated histories错误与解决方案

1. 问题引入:当 Git 拒绝你的合并请求时 作为开发者,我们每天都在和 Git 打交道, git merge 更是家常便饭。但不知道你有没有遇到过这种情况:当你信心满满地想把一个独立开发的分支合并回主分支,或者想把一个从零开始…

2026/8/15 9:39:33

MySQL ONLY_FULL_GROUP_BY错误解析与四种解决方案实践

1. 问题缘起:一个让无数开发者头疼的“拦路虎”如果你最近在升级了MySQL版本,或者在新部署的数据库环境中执行一个原本运行良好的GROUP BY查询时,突然遇到了一个刺眼的错误信息:“Expression #1 of SELECT list is not in GROUP B…

2026/8/15 9:39:33

Agent意图识别分层架构:从规则到大模型的完整设计与落地

Agent意图识别分层架构:从规则到大模型的完整设计与落地 引言 在构建智能Agent的过程中,意图识别是一个核心模块。面对用户的自然语言输入,系统需要快速、准确地判断用户的意图,并将其路由到相应的处理逻辑。然而,在实…

2026/8/15 9:39:33

阿里云万相3.0动画生成功能实战:从API调用到工程化集成

最近在探索AI视频生成领域时,发现阿里云万相3.0悄然上线了“动画生成”功能,这无疑为内容创作者和开发者提供了一个全新的、低门槛的AI视频创作工具。相比之前需要复杂代码和大量算力的方案,万相3.0的动画生成功能通过简单的文本或图片输入&a…

2026/8/15 9:39:33

Ps无锯齿抠图教程:4 套方案搞定人像、电商商品素材

1. 本文解决的实际问题与锯齿产生原因实际痛点很多设计师完成抠图,在白色画布预览效果尚可;一旦更换深色背景、用于电商主图、海报合成,就暴露出各类边缘问题:物体边缘锯齿、毛刺,放大之后颗粒感严重;外围出…

2026/8/15 9:34:33

架构师视角:奇点大会透露的多模态系统架构新范式

多模态AI走出实验室的这一年,架构师们终于要面对一个老问题的新版本:当演示视频里的惊艳效果变成生产环境的SLA承诺,我们到底该用什么样的系统结构来承载它?奇点智能技术大会(2026)上,这个话题被…

2026/8/14 4:27:24

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/15 7:22:41

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/15 0:04:00

AI 电动婴儿车智能功率 辅助控制、电源管理的完整选型方案

2026年随着 AI 技术在电动孕婴童用品中的深度渗透(如智能避障、自适应速度控制、能量回收),电动婴儿车对功率器件提出更高要求:高效率、小型化、低功耗、高可靠性。微碧半导体(VBsemi)基于 Trench 及 SGT 工…

2026/8/15 0:04:00

论文AIGC检测不达标完整教程!低门槛用5款工具逐步复检!

论文提交前自己先查一遍AI率,是2026年毕业生的常规动作。学校要求论文AI率低于30%,乃至于20%才能答辩… 很多同学发现一个尴尬的事情:同一篇论文,知网查出来AI率35%,维普查可能是48%,大雅、朱雀又是另外的数…

2026/8/14 4:27:24

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/15 4:56:16

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/14 4:27:24

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…