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:该功能不启用
注:配置内核的方法主要有如下几种:
#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
安装完成~~