openEuler编译和更换内核的方法

发布时间:2026/9/30 14:27:26

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/9/29 14:40:23

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

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

2026/9/30 14:23:29

从 WebEDI 到 EDI 平台:商超供应商如何突破手工瓶颈?

很多商超供应商已经完成WebEDI接入,具备订单、发货、发票等信息交换能力。但实际业务流程仍是:登录商超门户下载订单,人工核对商品资料,录入ERP,再根据发货情况制作ASN、回传发票,最后还要人工查看处理状态…

2026/9/30 14:23:29

springboot智能家电购物商城77956-计算机课程设计、毕业设计

前言 ✨ 博主介绍:一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码,帮…

2026/9/30 14:23:29

AI做出来的方案和报告,领导不认怎么办?

AI做出来的方案和报告,领导不认怎么办?兴冲冲用 AI 做了一份方案交上去,领导翻两页就放下:"这东西靠谱吗?数据哪来的?"于是很多人得出两个极端结论:要么觉得领导保守,要么…

2026/9/30 14:18:28

25.58万的腾势Z9S给你百万豪华座驾体验

过去,大型豪华轿车的产品逻辑几乎围绕后排展开:加长轴距、舒适座椅、静谧座舱,驾驶者更像被服务的 "专职司机"。但二三十万价位的豪华车用户正在发生变化 —— 绝大多数时间由车主本人驾驶,在豪华体面之外,操…

2026/9/29 11:07:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/29 21:48:03

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 7:00:49

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 0:01:22

MATLAB+Yalmip+CPLEX实战:综合能源系统优化调度全流程解析

做综合能源系统优化调度这活儿,最痛苦的不是建模本身,而是模型写完之后不知道该怎么求解。看论文里轻飘飘一句“采用Yalmip调用CPLEX求解”,自己上手时却往往卡在环境配置、变量声明、约束写法和求解状态判读上,一耗就是两三天。这…

2026/9/30 0:01:22

I3C比I2C快10倍?RK3576实战:速率、DTS配置与混合总线避坑指南

I3C 比 I2C 快 10 倍?这句话在嵌入式群里传了很久,每次都能吵出一堆截图。前段时间我正好在 RK3576 上调板级 I3C 接口,从控制器寄存器一路摸到 Linux DTS 配置,踩了不少坑,也把这笔速度账彻底算明白了。本文就用 RK35…

2026/9/30 0:01:22

字符串转对象:JSON.parse、new Function与URLSearchParams

“字符串转对象”这几个字,我在技术群里见过的问法至少有十几种:有人拿着一串{a:1,b:2}说 JSON.parse 直接报错,有人要从 URL 里抠出参数,还有人只是想把abc变成能挂属性的东西。js 这门语言里,字符串和对象之间的转换…

2026/9/29 3:53:39

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/29 9:46:12

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/30 10:28:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑