CentOS7.2升级内核


1.安装编译工具

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel

或者可以安装开发工具包

yum groupinstall "development tools"

2.下载内核源码并解压进入源码安装包

推荐下载地址https://www.kernel.org/

cd /usr/src && wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.12.3.tar.xz && tar -xvf linux-4.12.3.tar.xz && cd linux-4.12.3

3.清理内核源码目录(如果之前编译过内核,可以执行本步骤清理)

make mrproper

make mrproper命令会删除所有的编译生成文件、内核配置文件(.config文件)和各种备份文件

4.使用make menuconfig菜单来订制内核功能

可以使用当前系统的config文件作为模板

cp /boot/config-3.10.0-514.el7.x86_64  .config

然后make menuconfig,进入编译配置界面
此处每一个有三种选择

[  ] :不选  
[ *] :集成到vmlinux文件中  
[M ] :集成到模块中  

这里写图片描述

其实对应着.config文件中:
=y:打到核心里,以后放在vmlinux中
=m:模块方式,以后就表现为ko文件
not set:该功能不启用

img

注:配置内核的方法主要有如下几种:

#make menuconfig  //基于ncurse库编制的图形工具界面  
#make config  //基于文本命令行工具,不推荐使用  
#make xconfig  //基于X11图形工具界面  
#make gconfig  //基于gtk+的图形工具界面  

5.执行make编译,时间会稍有点长~~

make

这里写图片描述
make其实包含了两步:make bzImage和make modules

make bzImage — 编译基本的内核(make menuconfig这一步中选[ *]的部分),并制成压缩镜像
make moudles — 编译内核模块(make menuconfig这一步选择[M ]的部分)
make modules_install — 将上一步编译好的模块(.ko文件)拷贝到/lib/modules/liunx-x.xx.x文件夹,内核启动时需要加载的模块,会在这个路径下寻找
make install — 编译出来的压缩内核镜像拷贝到/boot/文件夹下,并且修改/boot/grub2/grub.cfg这个grub配置文件

或者make –jN以多线程编译,N代表线程数,比如电脑是双核4线程,N填4
编译大概需要2个小时左右

6.安装模块

make modules_install

这里写图片描述

安装完毕后可以到/lib/modules目录下查看
这里写图片描述

7.执行make install 安装内核相关文件

make install

这里写图片描述

安装完毕后可以到/boot目录下查看

8.安装完成后修改默认内核启动项

cat /boot/grub2/grub.cfg | grep menuentry //查看系统可用内核 
grub2-set-default ‘CentOS Linux (4.12.3) 7 (Core)’ //修改开机默认使用的内核

这里写图片描述

这里写图片描述

9.重启电脑后uname -r查看内核版本

reboot

这里写图片描述

uname -r

这里写图片描述

安装完成~~