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

前言

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

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

步骤

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

cat /proc/version

我的是

下载新内核

  • 切换到根目录下 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 root@你的IP:/

要把路径和IP换成自己的。上传完成后,查看

解压

移动到 /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

这个命令会生成很多零时文件,所以要确保空间足够,最后生成文件夹

配置内核

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

cd linux-4.16

运行命令:

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

在次编译,直到出现这个界面

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

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

运行命令

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

云服务器上编译内核很慢的,我大概用了90分钟。编译完成后

编译模块

运行命令

make modules

完成后

安装内核

  • 安装模块

运行命令

make modules_install

等待运行结束

  • 安装内核

运行命令

make install

等待完成

修改开机默认的内核

运行命令

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

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

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

重启

运行命令

reboot

重新连接后查看版本号

cat /proc/version


OK啦,内核成功升级!
在配置编译安装过程中出现任何问题欢迎留言,一起探讨

猜你喜欢

转载自blog.csdn.net/babybabyup/article/details/79720082