首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用 PREEMPT_RT 在 Ubuntu 中构建实时 Linux 内核

使用 PREEMPT_RT 在 Ubuntu 中构建实时 Linux 内核

原创
作者头像
用户11645759
发布2025-06-09 14:08:47
发布2025-06-09 14:08:47
6800
举报

如果需要在Linux 中实现实时计算性能,进而有效地将 Linux 转变为 RTOS,那么大多数发行版都可以打上名为 PREEMPT_RT 的实时内核补丁来完成。

图片
图片

简介

我们曾介绍过在 Ubuntu 22.04 中启用实时 Linux 内核有多简单,因为 Canonical 已将该内核列为一个选项。但要为默认 Linux 内核打上补丁,以便在自己的发行版中构建自己的实时 Linux 内核,也并不困难。基本步骤是下载内核源代码和 PREEMPT_RT 补丁、打补丁、构建内核、重启系统并选择新的实时内核。有关实时 Linux 项目的更多信息,包括 RT_PREEMPT 补丁的最新稳定版本,请查看 Linux 基金会的项目页面。

01 前提条件

Ubuntu 22.04 LTS 桌面--安装说明请参阅:

https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview

需要:

1、足够的可用磁盘空间(约 40GB,取决于内核配置)

2、互联网连接

3、关于构建 Linux 内核的一些基本知识:

安装说明

我们从 Ubuntu 22.04 默认的 Linux 内核(5.15.0-43-generic 版本)开始。 1.创建工作目录

mkdir ~/kernel cd ~/kernel

图片
图片

2.从 kernel.org 下载特定 Linux 内核版本的内核源文件和实时补丁文件。

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.15.96.tar.gz

wget https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.15/patch-5.15.96-rt61.patch.xz

3.解压源文件

tar -xzf linux-5.15.96.tar.gz

xz -d patch-5.15.96-rt61.patch.xz

cd linux-5.15.96

patch -p1 <../patch-5.15.96-rt61.patch

4.配置内核编译选项并安装依赖软件包。

cp /boot/config-5.15.0-43-generic .config

sudo apt update

sudo apt install make gcc libncurses-dev libssl-dev flex libelf-dev bison

make menuconfig

5.从 "常规设置"/"抢占模式 "中激活 "完全抢占内核(实时)"选项,然后保存并退出。

图片
图片

6.构建内核(注意:这可能需要一些时间)。在编译过程中,可能有几个依赖项必须安装(其中一些在上一步中涉及),因此当遇到编译错误时,请检查您系统中可能需要的其他软件包。

sudo make

7.安装内核模块:

sudo make modules_install

8.安装内核:

sudo make install

9.重新启动并选择新构建的 PREEMPT_RT 内核,而不是默认内核。您可能需要编辑 Grub 配置,才能进入引导加载器屏幕选择新的实时内核。有关 Grub 2 引导加载器的更多信息和帮助,请参阅 https://help.ubuntu.com/community/Grub2。

图片
图片

10.检查以确认新的实时内核正在使用中。你应该在内核名称中看到"-rt"。

图片
图片

结论

按照上面的步骤修补、构建并在 Ubuntu 中安装实时 Linux 内核并不困难。这个过程对于其他 Linux 发行版也是一样的。为了获得更好的实时性能,我们强烈建议根据开发者中心的建议设置固件和 BIOS:

https://developer.acontis.com/rt-faq/items/FAQ1013.html 和 https://developer.acontis.com/pcob.html。

现在,您就可以在 Linux 中开发实时应用程序了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档