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

实验环境(CentOS-Stream-8)

  1. $ uname -a
  2. 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内核源码

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

安装相关依赖包

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

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

  1. make menuconfig

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

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

选择Exit进行退出

选择Exit退出引导界面

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

  1. ls -a

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

  1. make -j4
  2. make modules_install

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

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

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

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

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

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

  1. CONFIG_SYSTEM_TRUSTED_KEYS=""

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

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

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

  1. CONFIG_DEBUG_INFO_BTF=n

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

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

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

  1. reboot

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

  1. $ uname -a
  2. 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. 在Windows系统上安装和配置Jenkins自动发布

    一.安装jenkins的流程转载于: https://www.jianshu.com/p/de9c4f5ae7fa 二.在window中执行批处理文件bat或者powershell可以成功,但是Jen ...

  2. mumu模拟器pin码忘记,如何找回

    1.进入mumu安装目录:D:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin 2.通过cmd进入mumu的bin目录,输入命令:adb_ser ...

  3. Error running 'tm8': Cannot load C:\Users\Administrator\.IntelliJIdea2019.3\system\tomcat\Unnamed_jymes_3\conf\server.xml (系统找不到指定的文件。)

    救命救命,由于脑壳被门夹了去更改了idea的配置,导致重启项目报错!又是给自己挖坑的一天,唉!!! 主要是看报错信息还一直以为是tomcat的问题,然后试了很多方法,比如查看配置的tomcat路径.重 ...

  4. yield基础知识

    function* y(p1){ let r=p1; r=(yield r-5) //表达式A,在第1轮是普通return,在第2轮next(param)时会被param替换 r=(yield r*2 ...

  5. verilog 硬件描述语言

    第一章 绪论 verilog--数字电路设计技术--ASIC/SOC芯片设计--协议pcie SATA USB--系统知识(个人计算机,芯片组,网络连接,嵌入式系统,硬件和软件的互操作) 第二章 寄存 ...

  6. vue+element 表格动态列添加点击事件与排序(/或者空值排最后)

    <template> <div> <el-table     ref="tableData"       :data="tableData& ...

  7. vue实现学生管理系统

    开发步骤 创建一个空文件夹,取名students-system 方式一:右键新建 方式二:命令行新建(提倡) ##windows系统 md students-system##mac/linux mkd ...

  8. JMeter常用组件(全)

    JMeter执行顺序: 配置元件 → 前置处理器 → 定时器 → 取样器 → 后置处理器 → 断言 → 监听器: 同一层级的,顺序执行: 一.线程组 场景设置,模拟并发用户发送请求,设置并发策略.详见 ...

  9. Pytorch Cross Entropy

    Entropy Uncetainly measure of surprise higher entropy = less info \[Entropy = -\sum_i P(i)\log P(i) ...

  10. Kafka源码阅读系列——Producer

    Producer Kafka源码的exmaple模块有一个Producer类,继承了Thread类,构造方法会指定topic,是否异步,是否幂等,配置Kafka集群信息,初始化一个KafkaProdu ...