搭建实时linux环境的方法和步骤(-)-- preempt patch

最近公司开始了实时linux的项目,我开始做了一些前期的调研。

实时linux通常有两种方案,一个是preempt rt的patch,patch的主要内容是中断线程化,优先级继承以及spinlock的mutex化。还有一种方案是宏微内核,目前在国内做的比较好的公司是RT-THREAD。

我们采用了开源的xenomai方案,xenomai是一种开源的方案,提供两种模式,一种是dual kernel(cobalt)模式,使用cobalt作为微内核,使用ipipe做中断优先级管理。另一种是singal kernel(mercury)模式,基于打了preempt rt patch的宏内核,然后提供xenomai在user space的支持。

本篇先介绍一下preempt rt patch的操作。

  • 下载kernel代码:https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.189.tar.xz
  • 下载patch: https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.189-rt186.patch.gz
  • 安装patch:patch –p1 < ../ patch-4.4.189-rt186.patch
  • 配置:

               make localmodeconfig

  make menuconfig (确保选中CONFIG_PREEMPT_RT_FULL)

  • 编译和安装

make

make modules_install

make install

update-grub

  • 测试:

cyclictest -p 90 -m -c 0 -i 200 -n -h 100 -q -l 1000000

打preempt rt patch相对还算比较简单,系统可以正常启动,测试结果也明显好于通用的kernel.

参考:https://blog.csdn.net/x356982611/article/details/77370385/

 

 

 

你可能感兴趣的:(搭建实时linux环境的方法和步骤(-)-- preempt patch)