在 x86 架构的 Ubuntu 系统上应用 preempt-rt 补丁的步骤:
环境预检与准备
-
确认内核版本:执行
uname -r
命令,确认当前内核版本,如 5.15.0-76-generic
-
。
-
系统备份:使用
timeshift
或完整磁盘克隆工具备份系统,防止操作失误导致系统崩溃
-
。
源码与补丁处理
-
获取内核源码:执行
apt source linux-source-$(uname -r | cut -d'-' -f1)
命令下载内核源码,并解压tar xf linux-source-*.tar.xz
-
。
-
下载补丁:访问kernel.org网站,根据内核主版本号下载对应的 preempt-rt 补丁,如补丁 5.15.83-rt53 需对应 5.15.x 内核
-
。
-
应用补丁:进入内核源码目录
cd linux-5.15.0
,使用patch -p1 --dry-run < ../patch-5.15.83-rt53.patch
命令预检补丁,确认无误后执行patch -p1 < ../patch-5.15.83-rt53.patch
正式应用 - 。若出现
.rej
文件,需手动处理代码冲突-
。
内核配置
-
启动配置界面:在内核源码目录中执行
make oldconfig
继承现有配置,然后运行make menuconfig
进入图形化配置界面
-
-
。
-
核心参数调整:
-
在
General Setup
→Preemption Model
中选择Fully Preemptible Kernel (RT)
-
-
。
-
启用
CPU/Task Time and Stats
→High-Resolution Timer Support
-
。
-
禁用
Kernel Features
→Thread Softirqs
,避免中断延迟
-
-
。
-
编译优化
-
并行编译控制:执行
make -j$(($(nproc)-1))
命令进行并行编译,保留 1 线程防止内存耗尽
-
。
-
常见报错处理:
-
若出现 gcc 版本不兼容问题,可安装指定版本编译器,如
gcc-12
-
-
。
-
缺少依赖时,执行
apt build-dep linux-image-$(uname -r)
命令
-
-
。
-
安装与验证
-
模块与内核安装:执行
sudo make modules_install
和sudo make install
命令
注意事项
如果你的系统是 Ubuntu 22.04 LTS,以上步骤应该可以帮助你安装官方预编译的实时内核。如果你使用的是其他版本的 Ubuntu 或有其他特殊需求,可能需要采取不同的方法
-
。
-
启动项更新:运行
sudo update-initramfs -c -k 5.15.83-rt53
和sudo update-grub
命令 -
。
-
启动验证:重启系统后,执行
uname -v | grep PREEMPT_RT
命令,应显示 RT 字样 - ;使用
cyclictest -l1000 -m -n -p99
命令测试延迟,理想值应小于 50μs-
。
替代方案
Ubuntu 22.04 LTS 用户可直接安装官方预编译的实时内核,执行
sudo apt install linux-rt-5.15-x86_64
命令,然后重启系统 -
-
在 Ubuntu 上安装官方预编译的实时内核的指导
:
安装步骤
-
更新系统包:首先,确保你的系统包是最新的。运行以下命令来更新系统包:
-
sudo apt update sudo apt upgrade
-
安装实时内核:对于 Ubuntu 22.04 LTS,你可以直接安装官方预编译的实时内核。运行以下命令:
-
sudo apt install linux-realtime
这将安装与你的系统匹配的实时内核版本。
-
重启系统:安装完成后,重启系统以应用新的实时内核:
-
sudo reboot
-
uname -r
你应该会看到内核版本中包含
-realtime
或类似的标识,表明你正在使用实时内核。 -
备份系统:在进行任何内核更改之前,建议备份你的系统,以防出现问题。
-
检查兼容性:确保你的硬件和软件与实时内核兼容。
-
监控系统:安装实时内核后,持续监控系统的性能和稳定性,确保一切正常运行。