如何玩转CentOS Linux内核升级?手把手教你内核编译升级至最新版本

news2024/11/16 1:42:31

文章目录

  • 如何玩转CentOS Linux内核升级?手把手教你内核编译升级至最新版本
    • 1 升级环境
    • 2 升级需求
      • 2.1 升级前的内核版本
      • 2.2 升级后的内核版本
    • 3 升级步骤
      • 3.1 安装编译环境
      • 3.2 更新GCC版本
        • 3.2.1 多GCC版本共存
        • 3.2.2 永久替换旧的GCC
      • 3.3 下载内核源代码并解压
      • 3.4 配置 config
        • 3.4.1 方法一
        • 3.4.2 方法二
      • 3.5 编译安装内核
        • 3.5.1 编译内核
        • 3.5.2 安装内核
        • 3.5.3 设置以后默认从新的内核启动
      • 3.6 删除多余内核
        • 3.6.1 查看当前使用的内核
        • 3.6.2 查看通过 rpm 安装的内核
        • 3.6.3 删除多余内核
        • 3.6.4 更新引导配置
      • 3.7 重启服务器
      • 3.8 检查内核版本

如何玩转CentOS Linux内核升级?手把手教你内核编译升级至最新版本

1 升级环境

操作系统版本当前内核版本
CentOS Linux release 7.6.1810 (Core)Linux Kernel 3.10.0-957

2 升级需求

CentOS 7.9 编译安装最新内核版本。

2.1 升级前的内核版本

# uname -sr

image-20240615165328791

2.2 升级后的内核版本

# uname -sr

image-20240615223558128

3 升级步骤

3.1 安装编译环境

# 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 \
	rpm-build

示例:

image-20240615164838504

image-20240615164855176

3.2 更新GCC版本

CentOS7 自带的 GCC 是 4.8.5 版本,编译内核会导致报错。

3.2.1 多GCC版本共存

以下是安装新的GCC操作:(多GCC版本共存)。

# yum install centos-release-scl -y

示例:

image-20240615170838272

image-20240615170913329

# yum install devtoolset-8-gcc* -y

示例:

image-20240615170428863

image-20240615170447479

# scl enable devtoolset-8 bash  -----该操作允许GCC多版本共存

示例:

image-20240615170601671

3.2.2 永久替换旧的GCC

以下是永久替换旧的GCC操作:(只使用GCC新版本)

# mv /usr/bin/gcc /usr/bin/gcc-4.8.5
# ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
# mv /usr/bin/g++ /usr/bin/g++-4.8.5
# ln -s /opt/rh/devtoolset-8/root/bin/g++

略!

3.3 下载内核源代码并解压

从清华大学镜像源下载 Linux Kernel 6.5.2 的源代码包。

注意:一定要执行 cd linux-6.5.2 命令,因为接下的操作默认都是这该目录下操作的。

# wget https://mirrors.tuna.tsinghua.edu.cn/kernel/v6.x/linux-6.9.4.tar.gz
# tar -xzf linux-6.9.4.tar.gz
# cd linux-6.9.4

示例:

image-20240615171412270

3.4 配置 config

3.4.1 方法一

根据现有内核参数去生成新的配置参数文件 .configconfig-3.10.0-957.el7.x86_64 这个文件在你的机器里可能并不相符,可以执行 ls -l /boot/ 命令查看你的这个文件名称。

# cp /boot/config-3.10.0-957.el7.x86_64 .config
# make oldconfig ----- 一路回车

示例:

image-20240615172115887

image-20240615172952724

3.4.2 方法二

执行以下这个命令,会进入一个配置界面,如果看不懂就保持默认配置,Tab键选定 save 然后回车,根据提示保存 .config 文件。

# make menuconfig 

略!

3.5 编译安装内核

-j 12 参数是因为主机CPU是1核心,根据自己的机器情况修改。

make INSTALL_MOD_STRIP=1 modules_install > /dev/null 把内核模块的 debug 信息去掉,节约磁盘空间。

3.5.1 编译内核
# make -j 1 all

示例:

image-20240615173437284

image-20240615215354025

3.5.2 安装内核
# make INSTALL_MOD_STRIP=1 modules_install > /dev/null && make modules_install && make install

示例:

image-20240615215539540

image-20240615215659836

3.5.3 设置以后默认从新的内核启动
# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg && sudo grub2-set-default 0 && sudo grub2-mkconfig -o /boot/grub2/grub.cfg

示例:

image-20240615215821737

3.6 删除多余内核

3.6.1 查看当前使用的内核

使用 uname -sr 查看当前使用的内核。

# uname -sr

示例:

image-20240615222508139

3.6.2 查看通过 rpm 安装的内核

使用 rpm -qa|grep kernel 查看通过 rpm 安装的内核。

# rpm -qa | grep kernel

示例:

image-20240615222619196

3.6.3 删除多余内核

使用 yum remove [多余内核] 删除多余内核,执行多次删除多余的 kernel。

# yum remove kernel-tools-libs-3.10.0-957.el7.x86_64 -y
# yum remove kernel-headers-3.10.0-1160.119.1.el7.x86_64 -y
# yum remove kernel-tools-3.10.0-957.el7.x86_64 -y
# yum remove kernel-debug-devel-3.10.0-1160.119.1.el7.x86_64 -y
# yum remove kernel-3.10.0-957.el7.x86_64 -y

示例:

image-20240615222834794

image-20240615222913796

image-20240615223011044

image-20240615223028982

image-20240615223123703

image-20240615223202043

image-20240615223225846

image-20240615223318860

3.6.4 更新引导配置

使用 grub2-mkconfig -o /boot/grub2/grub.cfg 更新引导配置。

# grub2-mkconfig -o /boot/grub2/grub.cfg

示例:

image-20240615223358260

3.7 重启服务器

# reboot

示例:

image-20240615223455789

3.8 检查内核版本

# uname -sr
# uname -a

示例:

image-20240615223819186

原文链接:https://mp.weixin.qq.com/s?__biz=MzkxNzI1OTE3Mw==&mid=2247492497&idx=1&sn=e4e2e12f8d27a28df18423935711d324&chksm=c141f55bf6367c4da32f0dc9f57db7878a1d4feca5ef8a91e148c3ff89051ed76e46fc269bdd&token=1470233958&lang=zh_CN#rd

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2073610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《数据结构》(408代码题及应用题)(王道收编真题)

一、线性表 1、线性表的线性表示 分析: “循环”左移,那这个循环就应该是我们需要重点思考的点。先考虑最简单的我们可以设置两个数组,其中一个数组保存的是原数据,另一个初始为空。接着想要实现循环左移就只需要找出相对应的位…

2002-2023年中债国债3年期到期收益率

国债是一种政府发行的债券,它为投资者提供了一种相对安全的投资渠道,因为背后有国家信用的支撑。国债的发行可以帮助政府筹集资金,用于公共支出、基础设施建设、社会福利等项目。国债通常分为两种形式:固定利率国债和浮动利率国债…

PHP 7.4.21 development server 源码泄露漏洞复现

原漏洞地址&#xff1a;https://blog.projectdiscovery.io/php-http-server-source-disclosure/ 版本&#xff1a;PHP<7.4.21 漏洞成因&#xff1a; 通过&#xff1a;PHP -s 开启的内置web服务器存在源码泄露漏洞&#xff0c;可以将PHP文件作为静态代码直接输出源码 POC&…

【区间dp】 P1775 石子合并(弱化版) 题解

题目描述 设有 N ( N ≤ 300 ) N(N \le 300) N(N≤300) 堆石子排成一排&#xff0c;其编号为 1 , 2 , 3 , ⋯ , N 1,2,3,\cdots,N 1,2,3,⋯,N。每堆石子有一定的质量 m i ( m i ≤ 1000 ) m_i\ (m_i \le 1000) mi​ (mi​≤1000)。现在要将这 N N N 堆石子合并成为一堆。每…

20240825 每日AI必读资讯

超6亿&#xff01;文心大模型日调用量半年增长超10倍&#xff0c;AI成百度最强加速引擎 - 文心大模型日调用量超过6亿次&#xff0c;日均处理Tokens文本超1万亿。与23年Q4公布的5000万次日均调用量相比&#xff0c;半年增长超10倍。 - 第二季度&#xff0c;百度云业务营收51亿…

【计算机网络】socket网络编程 --- 实现简易UDP网络程序之字符串回响

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

【北京仁爱堂】脖子歪斜,拉扯疼痛怎么办?规律的生活让痉挛性斜颈的恢复事半功倍!

痉挛性斜颈是一种肌张力障碍性疾病&#xff0c;也是一种让人非常痛苦不堪的疾病&#xff0c;他不仅影响患者的外貌&#xff0c;也会对患者的身体和心理造成双重的打击&#xff0c;严重影响正常的生活&#xff0c;社交和工作。 痉挛性斜颈的病因尚不明确&#xff0c;因为做任何仪…

Java Web —— 第八天(登录功能)

基础登录功能 LoginController 类 RestController //用于处理 HTTP 请求 Slf4j //记录日志 RequestMapping("/login") public class LoginController {Autowiredprivate EmpService empService;PostMappingpublic Result login(RequestBody Emp emp){log.info(&quo…

FFmpeg的入门实践系列六(编程入门之常见处理流程)

欢迎诸位来阅读在下的博文~ 在这里&#xff0c;在下会不定期发表一些浅薄的知识和经验&#xff0c;望诸位能与在下多多交流&#xff0c;共同努力 文章目录 前期博客参考书籍一、FFmpeg常见的处理流程复制编解码器的参数完整代码 二、创建并写入音视频文件三、总结附页 前期博客…

《黑神话:悟空》中的实景三维建模

这几天&#xff0c;国产游戏《黑神话:悟空》终于面世&#xff0c;迅速引爆了全球游戏市场。作为一款以《西游记》为背景的3A级动作角色扮演游戏&#xff0c;《黑神话:悟空》不仅在文化表达上极具吸引力&#xff0c;其背后的技术实力更是令人瞩目。本文将深入探讨&#xff0c;3A…

新“冰桶挑战”风靡奥运年,荣耀让科技有温度

巴黎奥运会落幕之后&#xff0c;残奥会即将在8月28日正式开赛&#xff0c;“超越自我&#xff0c;挑战极限”的拼搏精神仍在延续。 而挑战精神&#xff0c;不分场上或台下&#xff0c;存在于生活中的每个角落。 2024年不仅是奥运年&#xff0c;也是“冰桶挑战”的十周年&…

DMP调研(Data Management Platform-数据管理平台)

基础概念 数据资产 CRM、DMP、CDP 定义 Customer Data Platform&#xff08;CDP,客户数据平台&#xff09;&#xff1a;对于企业来说&#xff0c;CDP是作为全链路运营的核心数据系统。是汇集所有客户数据并将数据存储在统一的、可多部门访问的数据平台中&#xff0c;让企业各…

【Remi Pi使用HDMI屏幕显示QT界面】将QT工程在Ubuntu虚拟机交叉编译好拷贝到开发板并运行

开发板和Ubuntu虚拟机ssh连接 可以成功点亮hdmi屏幕&#xff08;默认是运行的mxapp2程序显示如下&#xff09; 可以在开发板上运行自己的qt程序界面 手动配置开发板以太网ip ip addr add 192.168.43.101/24 brd dev eth0 ip link set eth0 &#xff08;2&#xff09;虚拟机…

Vue3.0项目实战(一)——Vue3 大事件管理系统项目搭建

目录 1. 大事件项目介绍和创建 1.1 Vue3 大事件管理系统 1.2 pnpm 包管理器 - 创建项目 1.3 创建项目 2. Eslint 配置代码风格 2.1 环境同步 2.2 Eslint 配置代码风格 3. 基于 husky 的代码检查工作流 3.1 提交前做代码检查 3.2 暂存区 eslint 校验 3.3 总结 4. 目…

i.MX6裸机开发(9):CCM时钟控制模块

本章参考资料&#xff1a;《IMX6ULRM》&#xff08;参考手册&#xff09;。 学习本章时&#xff0c;配合《IMX6ULRM》第18章Clock Controller Module (CCM)&#xff0c;效果会更佳&#xff0c;特别是涉及到寄存器说明的部分。 本章我们主要讲解时钟部分&#xff0c;芯片内部的…

TensorFlow实现Softmax回归

原理 模型 相比线性回归&#xff0c;Softmax只多一个分类的操作&#xff0c;即预测结果由连续值变为离散值&#xff0c;为了实现这样的结果&#xff0c;我们可以使最后一层具有多个神经元&#xff0c;而输入不变&#xff0c;其结构如图所示&#xff1a; 为了实现分类&#xf…

AI编程简介

文章目录 AI 编程的特点常见编程工具copilot的工作原理AI编程常用技巧 AI 编程的特点 AI 编程是指利用人工智能技术来辅助开发过程的一种编程方式。包括但不限于&#xff1a;代码生成、优化、调试、审查&#xff0c;文档生成、测试自动化。 编程能力是大模型各项能力的天花板&…

可用于便携音箱的18V同步升压变换器TPS61288

在音频市场中,便携式音箱因其自带电源、方便携带深受消费者喜爱。便携式音箱通常配备2节可充电锂离子电池,当输出功率要求高于10W时,电池电压不足以为音频功放提供足够的功率,一般需要升压电路将电池电压升压至12V~18V以满足功率要求。 TPS61288是德州仪器公司推出的一款最…

力扣2025.分割数组的最多方案数

力扣2025.分割数组的最多方案数 哈希表 前缀和 用两个哈希表分别存元素(之后会遍历)左侧和右侧的前缀和 typedef long long LL;class Solution {public:int waysToPartition(vector<int>& nums, int k) {int n nums.size(),ans 0;vector<LL> sum(n);unor…

【Redis】Redis编程技巧

Redis编程技巧 一、StringVeiw是什么&#xff1f;二、OptionalString是什么&#xff1f;三、怎么看keys *1、vector配合back_inserter2、set配合inserter 四、chrono_literals技巧 一、StringVeiw是什么&#xff1f; 是一种轻量级的字符串视图类型&#xff0c;通常提供的是一种…