当前位置: 首页 > article >正文

【Linux】centos7内核编译6.11.3版本及其所出现的问题解决方案(升级make、升级gcc)

文章目录

  • 一、编译流程
    • 1、下载内核源码并解压
    • 2、清理
    • 3、配置基础环境
    • 4、保存配置
    • 5、编译安装
    • 6、查看
  • 二、出现错误
    • 1、报错,make版本过低。
    • 2、 gcc版本过低,更新升级gcc至11.2.0版本
      • 2.1、下载依赖(yum -y install bzip2)时报错
      • 2.2、./contrib/download_prerequisites报错

一、编译流程

1、下载内核源码并解压

先自己下载内核源码压缩包,不要解压。

#解压
tar -xf linux-6.11.3.tar.xz  #我的内核版本为6.11.3

2、清理

在解压之后,会出现 linux-6.11.3 文件

#进入文件
cd linux-6.11.3
#清理(删除内核源码中的中间文件、配置文件和备份文件)
make mrproper

3、配置基础环境

在linux-6.11.3文件下

#安装字符终端设备ncurses(已安装请忽略)
yum -y install ncurses-devel
#复制本机内核配置文件到新内核目录.config下
cp /boot/config-3.10.0-514.e17.x86_64 .config
#我的本机内核配置文件是/boot/config-3.10.0-514.e17.x86_64

4、保存配置

make menuconfig

执行命令后会进入如下界面:
点击键盘右键,选择save
在这里插入图片描述
选择ok
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5、编译安装

#可能要跑几个小时,耐心等待
make -j4  #j后面的数字不要超过自己cpu核心数的两倍。
#进行模块安装
make modules_install
#安装内核
make install

6、查看

重启系统
选择刚刚编译的内核版本

uname -r #查看当前内核版本

二、出现错误

1、报错,make版本过低。

在这里插入图片描述
报错信息为:当前make版本为3.82,要升级make版本在4.0之上。

# 下载
wget https://ftp.gnu.org/pub/gnu/make/make-4.4.tar.gz
# 解压配置
tar zxf make-4.4.tar.gz
cd make-4.4
./configure --prefix=/usr
type make
make check
make install
# 验证版本
make -v

2、 gcc版本过低,更新升级gcc至11.2.0版本

在这里插入图片描述
报错信息为:当前gcc版本为4.8.5,而gcc最低版本为5.1.0

#下载gcc源码包
wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
# 解压缩
tar -zxvf gcc-11.2.0.tar.gz
#下载依赖配置文件
yum -y install bzip2
cd gcc-11.2.0
./contrib/download_prerequisites
#配置
mkdir build
cd build/
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
#编译
make
#可用make -j4来加快编译速度,但不要超过cpu核心数的两倍。

2.1、下载依赖(yum -y install bzip2)时报错

#下载并使用阿里云仓库repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

#修改vi /etc/yum.repos.d/epel.repo文件
#将项[xxx]中的enabled=1改为enabled=0
enabled=0

#重新加载yum
yum clean all
yum makecache

2.2、./contrib/download_prerequisites报错

在这里插入图片描述

输入以下命令:

yum -y install ca-certificates

http://www.kler.cn/a/372136.html

相关文章:

  • Spring的高效开发思维(二)
  • 在VS Code中操作MySQL数据库
  • MySQL 分库分表
  • JavaScript 中如何识别异步函数?
  • OpenSSL:生成 DER 格式的 RSA 密钥对
  • 聚类分析算法——K-means聚类 详解
  • 包和模块(上) python复习笔记
  • 汇流箱组件:光伏汇流采集装置 参数介绍
  • RTT工具学习
  • AI技术的应用前景如何?它会不会改变我们的生活和工作方式?
  • 阿里云VPC机器如何访问公网
  • Vue.observable vs Vuex:何时使用轻量级状态管理?
  • 【python】flash-attn安装
  • 【Clickhouse】客户端连接工具配置
  • 面试 Java 基础八股文十问十答第二十九期
  • Javaee:阻塞队列和生产者消费者模型
  • Brainpy的jit编译环境基础
  • 【LeetCode】跳跃游戏ⅠⅡ 解题报告
  • 如何在Linux系统中使用Netcat进行网络调试
  • Transformer中的Encoder
  • 基于STM32G0的USB PD协议学习(3)
  • 基于微信小程序的图书馆座位预约系统+LW示例参考
  • 数据结构算法学习方法经验总结
  • 经典面试题——抽象类和接口的区别
  • 【Linux】Kafka部署
  • SpringBoot实现的扶贫成效监测平台