官网下载最新版的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. Mysql学习:2、mysql基本命令

    1.下载安装好的mysql分为两种数据库: a.系统自带: b.用户自己创建: 2.基本命令: create database 数据库名称; // 创建数据库:记住后面加 分号 drop databa ...

  2. <四>JMeter数据库连接/后置处理器/断言简介

    一.数据库连接 1.右键线程组添加--配置元件--JDB Cconnection Configuration 2.配置如下: URL为数据路连接地址,用户名密码为数据库用户名和密码 3.添加一个JDB ...

  3. springboot项目打成jar包,启动指定外部的yml文件

    java -jar xxx.jar --spring.config.local=application.yml

  4. 获取指定字符串第n次出现的位置索引

    returnIndex(str,cha,num){ var x=str.indexOf(cha); for(var i=0;i<num;i++){ x=str.indexOf(cha,x+1); ...

  5. Windows下配置Hadoop的Java开发环境

    最近在学习用java来编写MapReduce程序,我是先在windows中开发完成,运行没有问题之后,再打成jar包,放到Linux集群中运行,由于在配置windows的开发环境的时候就花了大半天的时 ...

  6. #Python #字符画 #灰度图 使用Python绘制字符画及其原理

    由于最近身体状况不太好所以更新会有点慢,请大家多多包涵.同时也提醒大家注意保重身体! 前提:默认大家已经正确安装了 Python,且正确将Python配置到了系统Path . 目录 1.字符画的概况 ...

  7. 配置Nginx 反向代理 + go在windows 环境下编译运行在linux的文件

    在源码根目录下 创建build.bat: set GOOS=linux set GOARCH=amd64 go build -o build/myweb main.go 在终端执行: ./build. ...

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

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

  9. C语言初级阶段5——函数2

    C语言初级阶段5--函数2 址传递 1.地址:在定义变量,数组,函数等等,系统会自动给分配他们的内存区域(地址),把这个数据放到这个地址上面. 2.&:&a 得到a的地址编号 3.*: ...

  10. 如何简单使用Git

    Git基本功能 Git基本功能 在具体介绍Git能做什么之前,先来了解下Git里的四个角色: workspace: 本地的工作空间. index:缓存区域,临时保存本地改动. local reposi ...