Linux升级内核
Linux升级内核
CentOS7.6默认内核版本是3.10
$ uname -r
3.10.0-1062.el7.x86_64
可根据自己实际需求下载对应版本
1.rpm包安装
1.1 安装yum源
1.1.1 导入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
1.1.2 安装yum源
yum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
1.2 安装最新版
说明
可以通过 yum --disablerepo=* --enablerepo=elrepo-kernel list available
查看yum源中可用的rpm包版本
$ yum --disablerepo=* --enablerepo=elrepo-kernel list available
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* elrepo-kernel: hkg.mirror.rackspace.com
elrepo-kernel | 3.0 kB 00:00:00
elrepo-kernel/primary_db | 2.1 MB 00:00:01
Available Packages
kernel-lt.x86_64 5.4.264-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.264-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.264-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.264-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.264-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.264-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.264-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 6.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 6.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 6.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 6.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 6.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 6.6.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 6.6.7-1.el7.elrepo elrepo-kernel
perf.x86_64 5.4.264-1.el7.elrepo elrepo-kernel
python-perf.x86_64 5.4.264-1.el7.elrepo elrepo-kernel
这里安装最新长期维护版
yum -y install --enablerepo=elrepo-kernel kernel-lt
也可以通过下载CentOS7内核rpm包下载地址rpm包安装
1.3 修改内核顺序
grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
1.4 确认默认启动内核
grubby --default-kernel
export kernel_version=`grubby --default-kernel|awk -F'-' '{print $2}'`
echo -e "\e[42m安装的内核版本是 $kernel_version\e[0m"
1.5 重启机器生效
reboot
2.源码编译安装
说明
6.x的内核需要gcc5.1+版本,更多要求可以参考官方文档
2.1 编译gcc
2.1.1 下载源码包
export GCC_VERSION=10.5.0
wget https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.xz
2.1.2 解压缩
tar xf gcc-${GCC_VERSION}.tar.xz
2.1.3 安装依赖
yum -y install gmp-devel mpfr-devel libmpc-devel gcc-c++
2.1.4 创建构建目录
说明
在源代码目录外创建一个用于构建GCC的目录。这有助于保持源代码和构建文件分开
mkdir build-gcc
cd build-gcc
2.1.4 配置gcc
说明
更多配置项可以参考官方文档
../gcc-${GCC_VERSION}/configure --prefix=/usr/local --disable-multilib
2.1.5 编译和安装
make -j `nproc` && make install
2.1.6 验证安装
$ gcc --version
gcc (GCC) 5.2.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
2.2 源码编译内核
2.2.1 下载源码包
export KERNEL_VERSION=6.1.55
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${KERNEL_VERSION}.tar.xz
2.2.2 解压缩包
tar xf linux-${KERNEL_VERSION}.tar.xz
2.2.3 安装依赖
yum -y install ncurses-devel flex bison openssl-devel elfutils-libelf-devel dwarves
2.2.4 确保没有过时的 .o
文件和依赖项
cd linux-${KERNEL_VERSION}
make mrproper
2.2.5 配置内核
配置命令
更多关于使用Linux内核配置工具的信息,见文档 Kconfig make config
make olddefconfig
2.2.6 编译内核
make -j `nproc`
2.2.7 安装内核模块
make modules_install
2.2.8 安装内核
make install
2.2.9 修改内核顺序
grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
2.2.10 确认默认启动内核
grubby --default-kernel
export kernel_version=`grubby --default-kernel|awk -F'-' '{print $2}'`
echo -e "\e[42m安装的内核版本是 $kernel_version\e[0m"
2.2.11 重启机器
reboot
2.2.12 重启后验证
$ uname -a
Linux VM-0-4-centos 6.1.55 #1 SMP PREEMPT_DYNAMIC Sat Oct 7 16:33:51 CST 2023 x86_64 x86_64 x86_64 GNU/Linux