CentOS 7手动编译kernel源码升级内核操作指南
一、前言
工欲善其事,必先利其器。CentOS7想要升级内核版本,有时候可能并不是那么容易的一件事,因为你可能因为找不到一个合适的工具、比较清晰的教程等原因而不得不大费周折去解决途中遇到的各种问题。
编译linux-kernel内核源码需要适合的编译工具gcc、远程工具xshell、源码包、编译过程需要的一些依赖,还需要了解编译的流程等。这些准备工作都做好了之后,之后的工作就容易开展下去了。
二、环境准备
1. 升级gcc
CentOS 7的默认版本是4.8,然而在编译的时候可能会显示没有选项,甚至直接提示版本过老,要求更新为4.9及以上的版本
sudo -i
yum install centos-release-scl
# 如果想安装7.*版本的,就改成devtoolset-7-gcc*,以此类推
yum install devtoolset-7-gcc*
# 激活对应的devtoolset,激活命令只对本次会话有效
scl enable devtoolset-7 bash
# 查看gcc版本
gcc -v
# 也可以设置软连接,使之永久生效
2. 安装依赖
yum install bc -y
yum install openssl-devel -y
yum install ncurses-devel -y
yum install flex -y
yum install bison
yum install elfutils-libelf-devel
3. 获取kernel源码
linux-5.10.11.tar.gz
linux-5.11.tar.gz
注:我在此教程中使用的是linux-5.10.11.tar.gz
yum install lrzsz
cd /usr/src/
rz # 选择源码包linux-5.10.11.tar.gz
tar -zxvf linux-5.10.11.tar.gz
三、编译kernel
cd linux-5.10.11
make defconfig
# 或make oldconfig
# 或cp /boot/config-3.10.0-1127.el7.x86_64 .config
make menuconfig
lscpu # 查看可用cpu数量
make -j n
make modules
make modules_install
make install
# 设置第一启动项
vi /etc/default/grub
将saved 修改为 0
按“Esc”,然后输入“:wq”保存并退出
grub2-mkconfig -o /boot/grub2/grub.cfg