centos下编译5.12.10内核

内核代码下载

官方下载地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/

国内下载地址:
https://mirror.bjtu.edu.cn/kernel/linux/kernel/
在这里插入图片描述
国内网站下载速度相对较快,国外网站下载看命

查看当前内核版本信息

uname -a
在这里插入图片描述

拷贝目录到指定文件夹

将内核源代码拷贝到/usr/local/src目录下
在这里插入图片描述

开始编译安装过程

解压内核代码

tar xvf linux.xx.xx.tar.gz
t

生成内核编译配置文件

从现有的系统中拷贝,主要避免手动选择,最大限度和当前保持一致
现有的系统内核编译配置文件在boot目录下,查看对应的版本就可以了
在这里插入图片描述

配置内核编译文件

执行make menuconfig
在这里插入图片描述

编译环境构建

如上图,会有报错,不能打开编译配置界面,是因为缺少库,根据报错,少什么,装什么就可以

ncurse-devel (make menuconfig 文本界面窗口依赖包)

在这里插入图片描述

flex找不到

在这里插入图片描述
安装flex
在这里插入图片描述

bison 找不到

在这里插入图片描述
安装bison
在这里插入图片描述

gcc版本太老

在这里插入图片描述

查看gcc当前版本

在这里插入图片描述

升级gcc版本

centos7里面
devtoolset-3对应gcc4.x.x版本
devtoolset-4对应gcc5.x.x版本
devtoolset-6对应gcc6.x.x版本
devtoolset-7对应gcc7.x.x版本
devtoolset-8对应gcc8.x.x版本
devtoolset-9对应gcc9.x.x版本
devtoolset-10对应gcc10.x.x版本

centos8里面有修改名字
gcc-toolset-9对应gcc9.x.x版本
gcc-toolset-10对应gcc10.x.x版本
gcc-toolset-11对应gcc11.x.x版本

执行如下命令
yum install devtoolset-9
source /opt/rh/devtoolset-9/enable
gcc更新成功
在这里插入图片描述

配置内核编译配置文件

开启IPv6
在这里插入图片描述
这里并没有修改任何内容,退出保存后,如下:
在这里插入图片描述

编译内核

执行make就可以了

编译错误处理

在这里插入图片描述
centos7 没有 libssl-dev
方法一、直接安装
yum install openssl openssl-devel
方法二、下载源码编译安装
访问OpenSSL官网资源
官网资源地址:https://www.openssl.org/source
1、下载
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
2、解压并切换目录
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
3、设定Openssl 安装,( --prefix )参数为欲安装之目录,也就是安装后的档案会出现在该目录下
./config --prefix=/usr/local/openssl
4、执行命令
./config -t
5、执行make、make install,编译Openssl
make & make install

编译命令

1、make
2、make module_install
make modules_install 是安装到/lib/modules/version下面, version就是新编译内核的版本,而且不会更新/lib下的文件
3、make install

make modules_install
是把编译好的模块拷贝到系统目录下(一般是/lib/modules/)。
也可自己指定ko安装路径:
make ARCH=arm64 modules_install INSTALL_MOD_PATH=yourpath
如:make ARCH=arm64 modules_install INSTALL_MOD_PATH=“modules_install_path”
在交叉编译的情况下,需要将ko模块安装到rootfs。
在这里插入图片描述
make install
安装内核二进制映像, 生成并安装boot初始化文件系统映像文件
在这里插入图片描述

启动新的Linux内核

修改内核启动顺序

centos7修改内核启动顺序

1、执行如下命令,查看系统内部有多少个内核。
cat /boot/grub2/grub.cfg |grep menuentry
2、参考如下命令,配置从默认内核启动。内核名称根据系统内部查到的实际名称来替换。
grub2-set-default “CentOS Linux (3.10.0-123.9.3.el7.x86_64) 7 (Core)”
3、执行如下命令,确认配置成功。
grub2-editenv list

centos6修改内核启动顺序

1、查看/etc/grub.conf文件,确认系统内核的情况,如下图所示系统存在2个内核的现象。
从上往下内核版本依次是2.6.32-573.18.1.el6.x86_64和2.6.32-431.23.3.el6.x86_64。
2、在grub.conf文件中决定开机使用哪个内核版本做启动的参数是default,默认值为0,代表从最新的内核启动。代表启动的内核版本从上往下依次是0、1、2等。
3、如果要选择从旧版内核,即系统最开始的内核启动,则把default值改为1 ,然后重启服务器从新的内核进行引导。

centos8修改内核启动顺序

1、查看默认内核
grubby --default-kernel
2、 查看所有内核
grubby --info=ALL
3、修改默认启动内核
grubby --set-default /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64

Ubuntu修改内核启动顺序

1、查看当前内核的启动顺序
cat /boot/grub/grub.cfg |grep menuentry
2、修改grub文件
假设要修改为3.13.0-166内核启动, 修改文件/etc/default/grub
$ sudo vim /etc/default/grub
GRUB_DEFAULT=0 ##修改为
GRUB_DEFAULT=“Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-31-generic”
3、更新修改后的grub
update-grub

参考:https://cloud.tencent.com/developer/article/2086777

我们是centos7,所以参考上述文档
当前没有make install完成的情况,默认有两个启动选项
在这里插入图片描述
安装完成以后,有三个启动选项了:
在这里插入图片描述
开机后如下:选择5.12.10启动就可以了
在这里插入图片描述

进入系统后,uname -a结果如下,成功

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值