官网下载最新版的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. mqtt的使用

    1.mqttws31.js /******************************************************************************* * Cop ...

  2. 2N2218仿真估算静态工作点

    (在找到的2N2218技术手册中没有发现输入输出特性曲线,只能自己估算了) 共射极直流通路电路 #静态工作点表达式 #IBQ = (Vcc - UBEQ)/RB #ICQ = (Vcc - UCEQ) ...

  3. mysql剪贴板

    // mysql 8.0 连接数据源的配置文件 <!--数据源--><bean id="dataSource" class="com.alibaba.d ...

  4. python与c++区别

    1 都是面向对象编程,但是python是脚本语言,无需main函数 2 python不需要引用库,前不要定义类型,后不要: 列表可以用-x,表示倒数第几个,不能用a++ a = [1, 2, 3, 4 ...

  5. Java中Math类常用方法

    ​在编写程序时,可能需要计算一个数的平方根.绝对值或获取一个随机数等.java.lang包中的Math类包含许多用来进行科学计算的static方法,这些方法可以直接通过类名调用.另外,Math类还有两 ...

  6. oracle-11.2.0.4静默安装----RedHat7.5

    1.配置/etc/hosts文件和关闭seliux和firewall防火墙 编辑/etc/hosts文件 [root@henry ~]# vim /etc/hosts [root@henry ~]# ...

  7. ceph 集群 健康状态报 clock skew detected on mon.tg-ceph-mon-2

    1.现象: health: HEALTH_WARN no active mgr mons are allowing insecure global_id reclaim clock skew dete ...

  8. 个人PSP(四则运算)升级

    源代码管理平台Gitbee地址:https://gitee.com/chen-haijin/ 1.题目要求:能自动生成小学四则运算题目,且每一道题目的运算结果不能为负.除了支持整数运算外,还要支持真分 ...

  9. 微信小程序 css overflow :hidden 子元素不生效

    原css  .item .right {     width: 70%; }    .item .right .name {     font-size: 32rpx;     font-family ...

  10. win10系统格式化后进行虚拟分区

    1. 目的 目前win10磁盘分区多数人采用两种方式: 1:只分一个C盘,文件在C盘以目录区分. 缺点:所有文件都在一起,区分查找比较麻烦. 2:物理分区,分多个盘,如C,D,E等等 缺点:容量固定, ...