Linux实时补PREEMPT_RT(Real-Time)的主要作用是对标准Linux内核进行修改,使其具备硬实时(Hard Real-Time)能力,从而满足对时间确定性要求极高的应用场景。
传统Linux内核的抢占点有限,部分代码路径(如持有锁、中断处理)无法被抢占,导致任务调度延迟不可预测。
PREEMPT_RT使几乎所有内核代码(包括中断、锁机制)均可被高优先级任务抢占,显著降低任务响应延迟(微秒级)。
标准Linux的中断处理(IRQ)运行在不可抢占的上下文,可能阻塞高优先级任务。
PREEMPT_RT将大部分中断处理转为可调度的内核线程,允许优先级管理,避免中断延迟影响实时任务
下载地址 https://wiki.linuxfoundation.org/realtime/preempt_rt_versions
注意这个实时补丁版本要和linux内核版本相对应
查询linux版本命令
uname -r
根据linux内核版本选择实时补丁版本
具体可以参考这篇文章:https://blog.csdn.net/qq_46387453/article/details/143108869
由于我装的这个是Ubuntu 22.04版本,我发现有更简单的方式安装Linux实时补丁
首先介绍一个Ubuntu Pro,Ubuntu Pro 是Ubuntu提供的一个订阅服务,最多可在 5 台设备上为个人和小规模商业用途免费订阅
详情请见:https://ubuntu.com/pro
点进去后就可以注册个Ubuntu账号并免费订阅Ubuntu Pro
Ubuntu 22.04 LTS 集成了 x86 和 Arm 架构的树外PREEMPT_RT补丁。PREEMPT_RT补丁集可减少最严格工作负载所需的内核延迟,有助于确保时间可预测的任务执行。满足严格的确定性要求和上限执行时间,具有PREEMPT_RT的 Ubuntu 使内核比主线 Linux 更具抢占性
注册并订阅好Ubuntu Pro后,就会给你提供一个Token,然后在Ubuntu上绑定这个Token就可以了
sudo pro attach [token]
注意命令里的[token]换成你订阅的Token
绑定后看蓝色框,就有realtime-kernel补丁的内容了,不过默认没有启动
输入命令启动
sudo pro enable realtime-kernel
启动成功后,输入
sudo apt-get install linux-realtime
然后重启一下电脑
然后可以输入下面命令确认是否安装上实时补丁
uname -a
我的按照成功后的结果为
Linux ddaq-System-Product-Name 5.15.0-1084-realtime #93-Ubuntu SMP PREEMPT_RT Mon May 5 20:37:35 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
可以看到有preemt_rt字眼,说明已经安装上实时补丁了
本文章使用limfx的vscode插件快速发布