欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

云服务器centOS编译升级Linux内核-Linux(1)

程序员文章站 2022-05-13 15:34:04
...

前言

  • 本博文每一步均配有相应截图,并且是我亲自操作完成后,才写的博客,所以只要跟着做了,一定会跑成功。

由于Linux是完全开源的,所以很容易获得Linux的内核,也可以对内核新增一些特殊功能,做一个特殊的内核,本文不涉及内核编程,只是简单的升级一下云服务器内核。

步骤

先看一下我的腾讯云服务器的内核版本号

cat /proc/version

我的是
云服务器centOS编译升级Linux内核-Linux(1)

下载新内核

  • 切换到根目录下 cd / .

下载内核

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.16.tar.xz

直接下载有点慢,可以先下载到本地,然后上传至服务器,退出系统,上传

scp /Users/hulimin/Downloads/linux-4.16.tar.xz aaa@qq.com你的IP:/

要把路径和IP换成自己的。上传完成后,查看
云服务器centOS编译升级Linux内核-Linux(1)

解压

移动到 /usr/src

mv linux-4.16.tar.xz /usr/src/

解压

xz -d linux-4.16.tar.xz

这个过程大约需要2~3分钟吧,这个命令完成后不会有任何提示
继续解压

tar -xvf linux-4.16.tar

这个命令会生成很多零时文件,所以要确保空间足够,最后生成文件夹
云服务器centOS编译升级Linux内核-Linux(1)

配置内核

首先切换到生成的文件夹中

cd linux-4.16

运行命令:

make menuconfig
yum install bison
  • 如果不是第一次编译,则需要清除残留的.config.o 文件
make mrproper

在次编译,直到出现这个界面
云服务器centOS编译升级Linux内核-Linux(1)

  • 对每一个选项,都可以回答y,m或者是n,y表示将相应特性的支持或驱动程序编译进内核,m表示将相应特性的支持或驱动程序编译成可加载模块,在需要的时候,手动添加进内核中,n表示不提供相应特性或驱动程序的支持。
  • 一般采用默认设置即可:选择<save> 保存设置,然后退出。退出后

云服务器centOS编译升级Linux内核-Linux(1)

编译内核,生成启动印像文件

运行命令

make
  • 出现错误 fatal error: openssl/opensslv.h: No such file or directory
    是因为没有装openssl
yum install openssl-devel

云服务器上编译内核很慢的,我大概用了90分钟。编译完成后
云服务器centOS编译升级Linux内核-Linux(1)

编译模块

运行命令

make modules

完成后
云服务器centOS编译升级Linux内核-Linux(1)

安装内核

  • 安装模块

运行命令

make modules_install

等待运行结束

云服务器centOS编译升级Linux内核-Linux(1)

  • 安装内核

运行命令

make install

等待完成
云服务器centOS编译升级Linux内核-Linux(1)

修改开机默认的内核

运行命令

cat /boot/grub2/grub.cfg | grep menuentry 

云服务器centOS编译升级Linux内核-Linux(1)

设置成此内核CentOS Linux (4.16.0) 7 (Core)

grub2-set-default 'CentOS Linux (4.16.0) 7 (Core)'

重启

运行命令

reboot

重新连接后查看版本号

cat /proc/version

云服务器centOS编译升级Linux内核-Linux(1)
OK啦,内核成功升级!
在配置编译安装过程中出现任何问题欢迎留言,一起探讨