在CentOS7环境下 重新编译新内核

编译前准备

1.查看当前内核版本

 uname -r

CentOS默认的版本是 3.10.0-1160. el7. x86_64

2.下载内核

使用wget用镜像源下载(以北外的镜像源和Linux6.1.8为例):

wget https://mirrors.bfsu.edu.cn/kernel/v6.x/linux-6.1.8.tar.xz

 3.下载编译时所需要的依赖

记得切换为root用户

yum install make gcc ncurses-devel flex bison openssl-devel bc elfutils-libelf-devel perl dwarves

 如果提示CenOs默认的源用不了解决方案如下:

(1)备份当前的yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

(2)下载新的CentOS-Base.repo 到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

 (3)清空并生成缓存

yum clean all

yum makecache

 编译新内核

1.解压完成后切换到源码目录

cd linux-6.1.8

2.编译之前,进行编译选项的配置

(1)利用图形化界面配置:

make menuconfig

(2) 在编译过程中提示少了什么依赖就安装什么依赖就行

(3)解决gcc版本过低:

①启用 Software Collections (SCL):

yum -y install centos-release-scl

② 安装 GCC 8.3 及相关工具:

yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils

③ 临时启用 GCC 8.3:

scl enable devtoolset-8 bash

注意:使用 scl 命令启用的环境是临时的,退出 shell 或重启系统后,将恢复到原系统的 GCC 版本。

④ 如果希望长期使用 GCC 8.3,您可以将其添加到系统的环境变量中:

echo "source /opt/rh/devtoolset-8/enable" >> /etc/profile

⑤ 以下是升级gcc时遇到的问题:

    I.升级gcc时下载的仓库SCL,centos-sclo-sclo 仓库的 baseurl 依然无法访问 mirrorlist.centos.org。

    解决方法:暂时禁用 centos-sclo-sclo 仓库,因为它不是必需的系统仓库。你可以运行以下命令来禁用它:

yum-config-manager --disable centos-sclo-sclo

II.安装 devtoolset-8 时遇到了 GPG 密钥验证错误。这通常是由于存储库中的 GPG 密钥不匹配导致的。

解决方法:禁用 GPG 检查: 如果密钥问题仍然存在,可以临时禁用 GPG 检查,输入一下指令:

yum install --nogpgcheck devtoolset-8-gcc devtoolset-8-gcc-c++

III.运行 make menuconfig 时遇到了一些警告和错误,特别是显示器大小不足的问题。

解决方法:使用FinalShell运行,相比起在终端运行尺寸会大得多

3.开始编译

make -j8

4.编译完成后,安装内核

(1)安装内核模块

make modules_install -j6

(2)安装内核

make install

 编译完成验证新内核

1.重启系统

reboot

2.验证新内核版本

(1)重启时选择内核界面选择下载的新内核

 (2)输入指令查看当前内核

uname -r

过程遇到的困难实在有很多,看了许多的教程才完成,并且每个人遇到的问题都不一样,仅供参考。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值