linux - 如何在 Ubuntu 中启用 CONFIG_RT_GROUP_SCHED 使其成为 RT

标签 linux ubuntu real-time cgroups

我需要在 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 标志并查看其性能。

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

# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y

但是,我的系统在 proc 中甚至没有 config.gz 文件,所以我相信我的内核没有启用它。 我对 Linux 内核比较陌生,所以这可能很天真,但我如何在内核中启用它?

最佳答案

第一步
https://www.kernel.org/pub/linux/kernel/ 下载 linux 内核.出于此 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配置如下图:

enter image description here

转到常规设置 ─> Kernel .config support 并通过/proc/config.gz 启用对.config 的访问

第七步

编译内核

$ make -j20

制作模块并安装

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

第 8 步

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

$ vim /boot/grub/grub.cfg

使用 menuentry 'Ubuntu, with Linux linux-4.16.18' 寻找菜单项

如果它不是您的默认内核,则将 GRUB_DEFAULT=0 值更改为您的内核

第 9 步

重启系统

sudo 重启

第 10 步

通过以下命令验证系统:

# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y

关于linux - 如何在 Ubuntu 中启用 CONFIG_RT_GROUP_SCHED 使其成为 RT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56189710/

相关文章:

linux - "curl: (48) An unknown option was passed in to libcurl"

android - Ubuntu 14.04-Android Studio : The following classes could not be instantiated

javascript - d3.js zoom.translate 向量的单位是什么?

c++ - boost C++ 库 : Unit Test Assertion on % Processor Usage

linux - 为什么不建议将 THP(透明大页面)用于 Oracle 和 MongoDB 等数据库?

java - 执行Linux命令的方法失败

python - 在python中检测程序

Java在ubuntu上找不到文件

python-3.x - 无法打开扩展控制文件 citext.control

linux - 用于 beagle bone 的实时 Linux (RTOS)