如何启用CONFIG_RT_GROUP_SCHED在Ubuntu使其RT(How to enable

2019-09-30 02:50发布

我需要运行在Ubuntu Linux的RT实时应用,并阅读有关如何让Linux充当RT系统,我学到两种方法可以做到这一点

  1. preemptive_rt内核补丁
  2. 使CONFIG_RT_GROUP_SCHED内核标志。

我已经试过我的第一个方法手上安装Linux的RT补丁的Ubuntu

然而,除了uname -r显示#1 SMP PREEMPT RT我没有其他证据证明它实际上是一个实时系统,因此想尝试第二个方法。 启用CONFIG_RT_GROUP_SCHED内核标志,看看它的表现。

我看了我们可以确认,如果内核已经通过以下命令的标志:

# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y

然而,我的系统甚至没有在进程内的config.gz文件,所以我相信我的内核没有这个功能。 我是比较新的Linux内核所以这可能是幼稚,但我如何能够支持此内核?

Answer 1:

第1步
从下载Linux内核https://www.kernel.org/pub/linux/kernel/ 。 对于该PoC的目的,我们下载linux-4.16.18.tar.gz从上面的链接内核。

第2步解压缩内核

$ tar -xzvf linux-4.16.18.tar.gz

第3步

移动到内核源代码目录

$ cd linux-4.16.18

第四步

安装内核编译依赖

$ sudo apt install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache bison flex

第5步

运行内核配置

$make menuconfig

第6步

转到General setup ─> Control Group Support ─> CPU controller ─> Group scheduling for SCHED_RR/FIFO ,如下所示的配置:

转到General setup ─> Kernel .config support和允许访问.config通过/proc/config.gz

第7步

编译内核

$ make -j20

使模块和安装

$ sudo make modules_install -j20
$ sudo make install -j20

第8步

打开grub.cfg文件,以验证是否安装内核

$ vim /boot/grub/grub.cfg

寻找与menuentry menuentry 'Ubuntu, with Linux linux-4.16.18'

如果这不是你的默认内核则改变GRUB_DEFAULT=0值到你的内核

第9步

重新启动系统

sudo reboot

第10步

验证通过以下命令的系统:

# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y


文章来源: How to enable CONFIG_RT_GROUP_SCHED in Ubuntu to make it RT