如果需要在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
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 发行版也是一样的。
现在,您就可以在 Linux 中开发实时应用程序了。
北京盟通科技有限公司成立于2013年,是工业自动化领域的高新技术企业。公司专注于实时现场总线技术及工业通讯技术的研发、推广及技术支持服务。依托于核心团队多年的海外和行业经验,盟通科技与欧洲多家自动化领域的佼佼者达成战略合作关系,为客户提供EtherCAT主站协议栈、OPC UA SDK软件开发包、CANopen协议栈、FSoE协议软件、CAN总线硬件、DINA安全模块、艾默生Connext软件等工业协议的标准和定制化产品。
全部0条评论
快来发表一下你的评论吧 !