内核升级操作说明
Linux 内核版本从 3.10.0 升级到 5.4.188,并打上对应版本的实时补丁。
所需文件:
1.
linux-5.4.188.tar.gz
下载地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/
2.
patch-5.4.188-rt73.patch.gz
下载地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.4/older/
1. 内核源码打实时补丁
把这 2 个文件(linux-5.4.188.tar.gz 和 patch-5.4.188-rt73.patch.gz)放到这个目录下 /usr/src/kernels/
[root@netaud]# cd /usr/src/kernels
[root@netaud]# tar -xvf linux-5.4.188.tar.gz -C /usr/src/kernels/
[root@netaud]# gunzip patch-5.4.188-rt73.patch.gz
[root@netaud]# cp patch-5.4.188-rt73.patch /usr/src/kernels/linux-5.4.188
[root@netaud]# cd /usr/src/kernels/linux-5.4.188
[root@netaud]# patch -p1 < patch-5.4.188-rt73.patch
2. 配置内核参数
[root@netaud]# cp /boot/config-3.10.0-1127.rt56.1093.el7.x86_64 ./.config
[root@netaud]# yum install ncurses-devel
[root@netaud]# make menuconfig
在 menuconfig 界面,先 load(加载本地的 .config)
再选择下面的这一项:抢占式低延时模式。
General setup
Preemption Model (Voluntary Kernel Preemption (Desktop)) --->
(X) Preemptible Kernel (Low-Latency Desktop) 或者:(*)Fully Preemptible Kernel (Real-Time)
保存退出。
3. 编译安装内核
#查看 cpu 核数
[root@netaud]# nproc
#主机有几个 cpu 配置成几,加速编译过程(20 个核的服务器需要编译大约 10 分钟)
[root@netaud]# make -j 20 && make modules_install -j 20 && make install -j 20
#如果报错:scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: No such file or directory
[root@netaud]# yum install openssl-devel
#如果报错:error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please
install libelf-dev, libelf-devel or elfutils-libelf-devel
[root@netaud]# yum install elfutils-libelf-devel
#编译安装完后,查看是否有新增的内核版本
[root@netaud]# ls -lh /boot
4.
设置默认启动内核
#查看当前内核版本
[root@netaud]# uname -r
#查看所有可用内核
[root@netaud]# cat /boot/grub2/grub.cfg |grep "menuentry "
#设置默认启动的内核
[root@netaud]# grub2-set-default 'CentOS Linux (5.4.188-rt73) 7 (Core)'
#生成 gurb 配置
[root@netaud]# grub2-mkconfig -o /boot/grub2/grub.cfg
#查看内核修改结果(正常为:saved_entry='CentOS Linux (5.4.188-rt73) 7 (Core)' )
[root@netaud]# grub2-editenv list
#系统设置为低延迟的性能模式
[root@netaud]# tuned-adm profile latency-performance
#重启生效
[root@netaud]# reboot