首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ubuntu中启用CONFIG_RT_GROUP_SCHED使其成为RT

问如何在Ubuntu中启用CONFIG_RT_GROUP_SCHED使其成为RT
EN

Stack Overflow用户
提问于 2019-05-17 15:44:15
回答 1查看 5.8K关注 0票数 3

我需要在Ubuntu RT Linux上运行实时应用程序,并且正在阅读使linux充当RT系统的方法,我学到了两种方法。

  1. preemptive_rt内核修补
  2. 在内核中启用CONFIG_RT_GROUP_SCHED标志。

我已经试过第一种方法Install RT Linux patch for Ubuntu了

但是,除了uname -r显示#1 SMP PREEMPT RT之外,我没有其他证据证明它实际上是一个RT系统,因此我想尝试第二个方法。在内核中启用CONFIG_RT_GROUP_SCHED标志并查看其性能。

我看到,我们可以通过以下命令来确认内核是否已经有标志:

代码语言:javascript
复制
# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y

但是,我的系统在proc中甚至没有config.gz文件,所以我认为内核没有启用这个文件。我对linux内核还比较陌生,所以这可能很幼稚,但是如何在内核中启用它呢?

EN

回答 1

Stack Overflow用户

发布于 2019-05-17 15:54:42

步骤1

从https://www.kernel.org/pub/linux/kernel/下载linux内核。为了实现这个PoC,我们从上面的链接下载了linux-4.16.18.tar.gz内核。

步骤2解压缩内核

代码语言:javascript
复制
$ tar -xzvf linux-4.16.18.tar.gz

步骤3

移到内核源目录

代码语言:javascript
复制
$ cd linux-4.16.18

步骤4

安装内核构建依赖项

代码语言:javascript
复制
$ sudo apt install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache bison flex

步骤5

运行内核配置

代码语言:javascript
复制
$make menuconfig

步骤6

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

​

​

转到General setup─> Kernel .config support并启用通过/proc/config.gz访问.config

步骤7

编译内核

代码语言:javascript
复制
$ make -j20

制作模块&安装

代码语言:javascript
复制
$ sudo make modules_install -j20
$ sudo make install -j20

步骤8

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

代码语言:javascript
复制
$ vim /boot/grub/grub.cfg

使用menuentry 'Ubuntu, with Linux linux-4.16.18'查找菜单条目

如果它不是默认内核,那么将GRUB_DEFAULT=0值更改为内核

步骤9

重新启动系统

sudo reboot

步骤10

通过以下命令验证系统:

代码语言:javascript
复制
# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56189710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档