0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

盟通科技 2024-04-12 08:36 次阅读

如果需要在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 内核的一些基本知识:

https://www.linux.com/topic/desktop/how-compile-linux-kernel-0

Motrotech

安装说明

我们从 Ubuntu 22.04 默认的 Linux 内核(5.15.0-43-generic 版本)开始。

1.创建工作目录

mkdir ~/kernel

cd ~/kernel

b8762a0e-f864-11ee-9118-92fbcf53809c.png

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.从 "常规设置"/"抢占模式 "中激活 "完全抢占内核(实时)"选项,然后保存并退出。


b88738c6-f864-11ee-9118-92fbcf53809c.png

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

sudo make

7.安装内核模块:

sudo make modules_install

8.安装内核:

sudo make install

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


b88b28a0-f864-11ee-9118-92fbcf53809c.png

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


b88ed874-f864-11ee-9118-92fbcf53809c.png

结论

按照上面的步骤修补、构建并在 Ubuntu 中安装实时 Linux 内核并不困难。这个过程对于其他 Linux 发行版也是一样的。

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

北京盟通科技有限公司成立于2013年,是工业自动化领域的高新技术企业。公司专注于实时现场总线技术及工业通讯技术的研发、推广及技术支持服务。依托于核心团队多年的海外和行业经验,盟通科技与欧洲多家自动化领域的佼佼者达成战略合作关系,为客户提供EtherCAT主站协议栈、OPC UA SDK软件开发包、CANopen协议栈、FSoE协议软件、CAN总线硬件、DINA安全模块、艾默生Connext软件等工业协议的标准和定制化产品

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Ubuntu
    +关注

    关注

    5

    文章

    563

    浏览量

    29744
  • LINUX内核
    +关注

    关注

    1

    文章

    316

    浏览量

    21646
  • preempt-rt
    +关注

    关注

    0

    文章

    4

    浏览量

    1706
收藏 人收藏

    评论

    相关推荐

    飞凌推出实时操作系统,Linux RT-Preempt

    范围内确定性地满足调度期限的能力。我们可以通过内核调度领域的专家英葛•莫尔纳(Ingo Molnar)发布的REEMPT_RT Patch来实现Linux系统的硬实时
    发表于 08-16 11:19

    高效轻型线程对Linux实时性能有什么影响

    简介上个世纪,研发人员投入了大量精力提高Linux实时性能和行为,最著名的是PREEMPT_RT Linux实时扩展。最近,研发人员致力于研
    发表于 05-16 10:45

    高效轻型线程怎么提高Linux实时性能?

    上个世纪,研发人员投入了大量精力提高Linux实时性能和行为,最著名的是PREEMPT_RT Linux实时扩展。最近,研发人员致力于研究适
    发表于 04-02 07:16

    多核设备Linux实时性能怎么提高?

    上个世纪,研发人员投入了大量精力提高 Linux 实时性能和行为,最著名的是 PREEMPT_RT Linux 实时扩展。最近,研发人员致力
    发表于 04-06 08:17

    基于全志A40i开发板——Linux-RT内核应用开发教程(1)

    完整的内核重写。Linux-RT内核增加PREEMPT_RT补丁后,增加了系统响应的确定性和实时性,但是代价是CPU性能降低。
    发表于 04-19 15:17

    全志A40i开发板——Linux-RT内核应用开发教程(2)

    补丁利用Linux内核的SMP功能来添加这种额外的抢占性,而不需要完整的内核重写。Linux-RT内核增加
    发表于 04-19 15:22

    基于全志A40i开发板——Linux-RT内核应用开发教程(3)

    Linux-RT内核增加PREEMPT_RT补丁后,增加了系统响应的确定性和实时性,但是代价是CPU性能降低。rt_input案例案例说明
    发表于 04-19 15:33

    如何实现一种基于Ubuntu Linux环境通过USB方式烧录rt-smart内核的设计呢

    无误,会生成 rtthread.elf、rtthread.bin、rtthread.imx 内核的固件文件VSCode上进行用户应用程序Ubuntu下正常安装Vscode Vsco
    发表于 06-27 11:42

    实时系统Preempt RT与Xenomai之争!谁更主流,谁更实时

    Preempt RT之间。Xenomai是Linux Kernel外增加独立的微内核的双内核
    发表于 06-15 16:42

    如何部署并测试PREEMPT_RT补丁

      本文就基于Toradex Colilbri iMX6 ARM计算机模块系统着重介绍如何部署并测试PREEMPT_RT补丁。
    发表于 09-18 16:00 14次下载

    轻型线程提高多核设备Linux实时性能的方案分析

    上个世纪,研发人员投入了大量精力提高 Linux 实时性能和行为,最著名的是 PREEMPT_RT Linux 实时扩展。最近,研发人员致力
    发表于 10-23 10:48 0次下载

    通过轻型线程提高多核设备Linux实时性能

    PREEMPT_RT 也许是 Linux 实时扩展取得的最显著的成就,PREEMPT_RT 数据包解决了多核设备 Linux
    发表于 05-16 14:42 1157次阅读
    通过轻型线程提高多核设备<b class='flag-5'>中</b>的<b class='flag-5'>Linux</b><b class='flag-5'>实时</b>性能

    openEuler Embedded软实时系统的特性说明

    Preempt_RT 补丁(以下简称 RT 补丁)可直接打在内核源码上,并通过内核配置选项 CONFIG_PREEMPT_RT=y 使能软
    的头像 发表于 05-10 15:22 1647次阅读

    Ubuntu实时内核 (Real-Time Kernel) 即将GA

    Linux 实时补丁 (PREEMPT_RT) 已经推出多年,并已进入内核主线。去年英特尔收购 Linutronix 后成为 PREEMPT_RT
    的头像 发表于 01-13 15:22 872次阅读

    Linux实时内核准备支持RISC-V

    目前,Linux RT补丁集允许为ARM64(AArch64)、ARM、PowerPC和x86/x86_64架构启用PREEMPT_RT。最近正在处理的一组补丁也将扩展对RISC-V的支持。
    的头像 发表于 10-31 16:29 607次阅读