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

CentOS 7 内核 3.10 升级 6.5.2 (RPM 直装 + 源码编译)

方案一

直接基于 RPM 在线升级(简单,速度快)

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y
# (选项一)升级最新版内核
yum --enablerepo=elrepo-kernel install kernel-ml -y
# (选项二)升级到指定版本
## 访问 https://linux.cc.iitk.ac.in/mirror/centos/elrepo/kernel/el7/x86_64/RPMS/ 查看支持版本列表
## 下载并安装(例如 6.5.2 版本)
wget https://linux.cc.iitk.ac.in/mirror/centos/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-6.5.2-1.el7.elrepo.x86_64.rpm
yum localinstall kernel-ml-6.5.2-1.el7.elrepo.x86_64.rpm
reboot

官方链接:

  1. https://elrepo.org/wiki/doku.php?id=start
  2. https://elrepo.org/wiki/doku.php?id=kernel-ml

方案二

基于源码编译 RPM 安装包(适合源码定制场景)

# 准备编译环境
yum groupinstall "Development Tools" -y && \
yum install -y \openssl-devel \rpm-build \redhat-rpm-config \asciidoc \hmaccalc \perl-ExtUtils-Embed \pesign \xmlto \audit-libs-devel \binutils-devel \elfutils-devel \elfutils-libelf-devel \ncurses-devel \newt-devel \numactl-devel \pciutils-devel \python-devel \zlib-devel
# 更新 gcc 版本
yum install centos-release-scl devtoolset-8-gcc* -y
scl enable devtoolset-8 bash# 下载指定版本源码
wget https://mirrors.tuna.tsinghua.edu.cn/kernel/v6.x/linux-6.5.2.tar.gz
tar -zxvf linux-6.5.2.tar.gz
cd linux-6.5.2# 设置编译选项,可以直接拷贝当前机器的配置(文件名可能不同,通过 ls /boot 自己找下)
cp /boot/config-3.10.0-1160.el7.x86_64 .config
## 在如下 make menuconfig 命令弹出的界面
### (可选)选择 General setup -> Local version -> 输入自己内核的定制名字,例如 -china, 
### 如果不想改任何内容,直接保存退出
make menuconfig# 执行编译
make INSTALL_MOD_STRIP=1 binrpm-pkg -j 8
## 编译结束会看到编译好的 RPM 包输出路径,例如 /root/rpmbuild/RPMS/x86_64# 安装编译生成的 rpm 安装包(同时可拷贝到其它机器用于内核升级)
cd /root/rpmbuild/RPMS/x86_64
yum localinstall *
reboot

验证升级后的内核版本

uname -r
6.5.2-china

在这里插入图片描述

各版本源代码下载地址:https://mirrors.tuna.tsinghua.edu.cn/kernel/v6.x/

设置默认内核版本

升级新内核后,需要在启动时选择才能使用,比较麻烦。
可以通过如下方法设置默认选中升级后的内核版本:

# 查看可以使用的内核
cat /boot/grub2/grub.cfg | grep -v rescue | grep ^menuentry
# 设置默认内核,例如 CentOS Linux (6.5.2-china) 7 (Core)
grub2-set-default 'CentOS Linux (6.5.2-china) 7 (Core)'
# 查看当前启动内核版本
grub2-editenv list
reboot

内核核心文件列表

  • /boot/config-6.5.2-china 一个文本文件,存储内核编译配置
  • /boot/vmlinuz-6.5.2-china 内核映像文件,包含操作系统内核代码和数据,内核本体
  • /boot/System.map-6.5.2-china 包含内核符号和地址信息的文本文件,主要用于内核开发、调试和系统管理
  • /boot/initramfs-6.5.2-china.img 内存中的临时根文件系统,用于在 Linux 系统启动过程中提供必要的工具和驱动程序,以便在实际的根文件系统挂载之前进行系统初始化
  • /usr/lib/modules/6.5.2-china 一个文件夹,保存与内核配套的模块,可以使用 modprobe 加载内核模块

相关文章:

  • 新建一个 React TypeScript 项目,并使用 Webpack 进行构建和打包
  • Java程序之让气球上升
  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用
  • git配置ssh key
  • tensorRT C++使用pt转engine模型进行推理
  • express+vue 在线五子棋(一)
  • 使用Vue开发页面(前置知识)
  • npm全局安装依赖指定存放文件目录
  • 电子电气架构——由NRC优先级引起的反思
  • 华为appgallery上架
  • 借助AI快速提高英语听力:如何获得适合自己的听力材料?
  • Python爬虫介绍
  • 2024 年值得推荐的 10 款 iPhone 数据恢复软件
  • Less与Sass的区别
  • Mac数据如何恢复?3 款最佳 Mac 恢复软件
  • 【翻译】babel对TC39装饰器草案的实现
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • iOS | NSProxy
  • JAVA SE 6 GC调优笔记
  • JAVA之继承和多态
  • js面向对象
  • maya建模与骨骼动画快速实现人工鱼
  • MD5加密原理解析及OC版原理实现
  • MySQL-事务管理(基础)
  • Protobuf3语言指南
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 产品三维模型在线预览
  • 成为一名优秀的Developer的书单
  • 创建一个Struts2项目maven 方式
  • 如何胜任知名企业的商业数据分析师?
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 项目管理碎碎念系列之一:干系人管理
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • const的用法,特别是用在函数前面与后面的区别
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​决定德拉瓦州地区版图的关键历史事件
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • #QT(QCharts绘制曲线)
  • #QT项目实战(天气预报)
  • #知识分享#笔记#学习方法
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (2)STM32单片机上位机
  • (C#)一个最简单的链表类
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (三)elasticsearch 源码之启动流程分析
  • (三)终结任务
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)Docker基本介绍
  • (转) 深度模型优化性能 调参
  • (转)c++ std::pair 与 std::make
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统