官网下载最新版的Linux内核源码,本教程使用linux-5.19.9进行编译。

实验环境(CentOS-Stream-8)

$ uname -a
Linux localhost.localdomain 4.18.0-338.el8.x86_64 #1 SMP Fri Aug 27 17:32:14 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

下载并解压缩linux内核源码

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.19.9.tar.xz
tar -xvf linux-5.19.9.tar.xz
cd linux-5.19.9

安装相关依赖包

yum install -y gcc make ncurses-devel flex bison openssl openssl-devel elfutils-libelf-devel binutils binutils-devel

配置需要编译的模块,生成相应的配置文件.config

make menuconfig

根据各自的需求,可以选择需要的模块编译进内核中,这里我们保持默认即可,直接选择Save

无需修改名称,直接点击OK

选择Exit进行退出

选择Exit退出引导界面

检查目录下是否成功生成配置文件.config

ls -a

开始编译内核,-j之后的数字是指定一次可以同时执行多少个任务,根据各自编译机的CPU性能自行指定

make -j4
make modules_install

如果执行make modules_install发生如下错误

sed: can't read modules.order: No such file or directory
make: *** [Makefile:1477: __modinst_pre] Error 2

则我们手动执行make -j4 modules命令来排查问题

如果报certs/rhel.pem相关错误,如下所示

make[1]: *** No rule to make target 'certs/rhel.pem', needed by 'certs/x509_certificate_list'.  Stop.
make: *** [Makefile:1846: certs] Error 2

则编辑.config文件,将CONFIG_SYSTEM_TRUSTED_KEYS的值修改为空后保存

CONFIG_SYSTEM_TRUSTED_KEYS=""

再次重新执行make -j4 modules命令,如果遇到如下错误

BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1168: vmlinux] Error 1

需要再次编辑.config文件,按照提示将CONFIG_DEBUG_INFO_BTF的值修改为n,然后保存

CONFIG_DEBUG_INFO_BTF=n

修改完毕后,再一次重新执行make -j4 modules命令,如果执行成功,为了确保无误,我们再重新编译下内核,然后继续后续步骤

# 执行该命令,排查是否还存在模块相关错误
make -j4 modules
# 上述问题排查完毕,再重新编译一次,确保无误
make -j4
# 安装相关模块
make modules_install
# 安装内核
make install

安装完毕之后我们直接重启系统,使其加载新的内核

reboot

重启完成后,查看我们的系统信息

$ uname -a
Linux localhost.localdomain 5.19.9 #2 SMP PREEMPT_DYNAMIC Mon Sep 19 13:20:30 CST 2022 x86_64 x86_64 x86_64 GNU/Linux

在CentOS上编译最新版linux内核(linux-5.19.9)的更多相关文章

  1. 在Linux CentOS上编译并安装Clang 3.5.0

    编译CoreCLR需要Clang 3.5,而CentOS上安装的是Clang 3.4.2(yum repos中最新版也是这个),只能自己手工编译LLVM的源代码进行安装. (注:CentOS的版本是6 ...

  2. 在Linux CentOS上编译CoreCLR

    经过几天的努力,终于解决了在CentOS上编译CoreCLR的问题.最终发现问题是CMAKE_C_FLAGS的设置引起的. 只要在“src/pal/tools/clang-compiler-overr ...

  3. .NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序

    在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了 ASP.NET 5 示例程序.在这篇博文中我们将 Ubuntu 换成 CentOS. 目前 dnx 的编译需要用到 m ...

  4. Win10上编译CoreCLR的Windows和Linux版本

    一.编译环境 首先,不管是Windows还是Linux版本CoreCLR的编译,都是在Windows10上进行的. 二.CoreCLR for Windows 在Windows上做编译怎么能少得了Vi ...

  5. 在CentOS上编译安装PostgreSQL

    http://my.oschina.net/tashi/blog 第一步:准备阶段 获取必需软件包: CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名.which命令可 ...

  6. 64位CentOS上编译 Hadoop 2.2.0

    下载了Hadoop预编译好的二进制包,hadoop-2.2.0.tar.gz,启动起来后.总是出现这样的警告: WARN util.NativeCodeLoader: Unable to load n ...

  7. 【实习】从ubuntu迁移过来的代码,在centos上编译问题的解决汇总

    目前自己的开发环境(同将来线上环境)是centos 7.我这里主要实现服务端.需要组里其他同学提供一个接口(视频编辑).公司内部自己开发环境 通常是台式ubuntu16.04.所以提供视频处理接口是在 ...

  8. 在CentOS上编译安装MySQL 5.7.13步骤详解

    MySQL 5.7主要特性 更好的性能 对于多核CPU.固态硬盘.锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是用户更关心的. 更好的InnoDB存 ...

  9. CentOS上编译安装OpenCV-2.3.1与ffmpeg-2.1.2

    已測试环境: CentOS 6.3 32bit CentOS 6.5 64bit 以前在CentOS 6.3 32bit安装过OpenCV,參见CentOS 6.3中安装OpenCV2.3.1,现在换 ...

  10. 在centos上编译安装mariadb数据库

    一.安装前提(准备数据文件.安装其他依赖的软件) 1.准备数据存放的目录 [root@localhost ~]# fdisk /dev/sdb  (fdisk /dev/sdb 创建一个逻辑分区/de ...

随机推荐

  1. ATM+购物车导图

    1 #项目需求: 1.额度15000或者自定义 ---> 注册功能 2.实现购物商城,买东西假如购物车,调用信用卡接口结账 ---> 购物功能.支付功能 3.可以提现,手续费5% ---- ...

  2. cadence报错because the library part is newer than the part in the design cache.Select the part in the cache and choose Design-Update Cache,and then place the part again.

    cadence报错because the library part is newer than the part in the design cache.Select the part in the ...

  3. echars简单使用

    引入js <script type="text/javascript" src="js/echarts.js" ></script> 记 ...

  4. python菜鸟学习: 3.浅copy使用场景

    # -*- coding: utf-8 -*-import copy# 浅copy# 使用场景,比如A,B夫妻共有一个银行账户,存取马宁的数据username = ["name", ...

  5. 法拉第未来任命新CFO!贾跃亭激动发声

    近段时间以来,贾跃亭旗下的的法拉第未来(Faraday Future,简称 FF)可谓是动作频频. 一天前,有媒体报道称,FF 任命 Zvi Glasman 为其首席财务官.其将负责公司财务.投资者关 ...

  6. ZSTUOJ刷题11:Problem D.--零起点学算法106——首字母变大写

    Problem D: 零起点学算法106--首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 18252  Solved: 5211 Descr ...

  7. libevent学习之入门--[02]从hello-world开始

    系列文章回顾 libevent学习之入门--[01]概述与安装 上一节介绍了libevent的下载和编译,从这节开始,我会从我学习的角度逐步探索libevent的源码,慢慢揭开它的神秘面纱. 面对几十 ...

  8. vue父子组件,子组件调用父组件方法

    问题描述:在table页面修改数据后,想刷新页面.修改页面以子组件的形式写的,现在想在子组件里面调用父组件的方法实现页面刷新! 将问题google后,以下两种方法都尝试过了,但是不起作用......大 ...

  9. 06 显示fps帧频

    需要看fps就用下面这段代码即可 var FPS = {};FPS.time = 0;FPS.FPS = 0; FPS.startFPS = function (stage){ FPS.shape = ...

  10. 【pytest】执行测试不输出logging日志问题

    [一] 今天更新了一波pytest,4.50 -> 6.2.3.执行了一波测试发现之前的logging输出不见了. 看了下启动参数 --log-cli-level=LOG_CLI_LEVEL 加 ...