使用 PREEMPT_RT 在 Ubuntu 中构建实时 Linux 内核 ubuntu create bond
如果希望在 linux 系统中实现的实时计算能力,从而高效地将 linux 转变为 rtos(实时操作系统),大多数发行版都可以通过应用名为 preempt_rt 的实时内核补丁来实现这一目标。
图片简介
反过来我们曾提到过,在 Ubuntu 22.04 中启用实时 Linux 内核其实非常非常简单,因为 Canonical已经将作为可选项提供之一。不过,如果你希望为默认的 Linux 内核手动打上补丁,以在自己的发行版本中定制属于自己的内核,这项工作也不复杂。步骤包括:下载内核源码和 PREEMPT_RT 补丁、应用程序补丁、编译编译、重启系统并选择新生成的实时内核。如需了解更多关于实时 Linux 项目的信息,包括获取 RT_PREEMPT 其补丁的主要最新稳定版本,请访问 Linux基金会的官方项目页面。
01 准备条件
Ubuntu 22.04 LTS 桌面版——安装方法参见:
https://www.php.cn/link/d99f37116c32298b4a726d5a2134e1e7
所需内容:
1、充足的磁盘空间(建议约40GB,具体视资源配置而定)
2、稳定的互联网连接
3、Linux对内核构建流程的基本安装流程
本教程基于 Ubuntu 22.04 默认装载的 Linux 内核版本(即 5.15.0-43-generic)进行操作。第一步是了解创建一个工作目录:
mkdir ~/kernelcd ~/kernel
连接 kernel.org 下载对应版本的 Linux 内核源代码包以及 PREEMPT_RT实时补丁文件:
wget https://www.php.cn/link/26324d8e2cc1957b8e581568a089a51cwget https://www.php.cn/link/ea8cd589f6cde4edf01ef2ad6b2d67d9
后续解压源码包及文件文件:
tar -xzf linux-5.15.96.tar.gzxz -d patch-5.15.96-rt61.patch.xz
进入解压后的源码目录,并开始打补丁:
cd linux-5.15.96patch -p1
然后配置编译参数并安装必要的依赖组件:
cp /boot/config-5.15.0-43-generic .configsudo apt updatesudo apt install make gcc libncurses-dev libssl-dev flex libelf-dev bison
运行配置选择编译选项:
make menuconfig
在“General setup”-gt;“Preemption Model”菜单中,选择“Fully Preemptible Kernel (Real-Time)”选项,保存后退出。
开始构建内核(此过程可能会重启)。
编译期间可能会提示缺少某些依赖项,可以按照提示安装相关组件。
sudo make
完成编译后,安装内核模块:
sudo makemodules_install
然后安装新内核:
sudo make install
重启系统后,在GRUB引导界面选择刚刚构建好的PREEMPT_RT内核启动。你可能需要调整GRUB配置以显示引导菜单。有关GRUB2的更多帮助信息,请参见:
https://www.php.cn/link/471f23c944fc170279354fb74ece7ce4
最后确认当前使用的确实是实时内核,查看输出结果中的内核名称是否包含“-rt”。
总结
按照上述步骤,在Ubuntu上修复、编译并安装实时Linux内核并不是什么难事。这个流程同样适用于其他主流 Linux发行版。为了建议进一步优化系统的实时表现,请参考开发者中心的相关推荐设置固件和BIOS参数:
https://www.php.cn/link/ba16fd41fab7b93931b2e628c6e62441和https://www.php.cn/link/b42642e0e25d857ec10edd4bae859d1b
至此,您的Linux系统文章已具备运行实时应用程序的能力。
以上就是在Ubuntu中使用PREEMPT_RT构建实时Linux内核的详细信息,内容更多请关注乐哥常识网其他相关!