我需要在Ubuntu RT Linux上运行实时应用程序,并且正在阅读使linux充当RT系统的方法,我学到了两种方法。
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内核还比较陌生,所以这可能很幼稚,但是如何在内核中启用它呢?
发布于 2019-05-17 15:54:42
步骤1
从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步骤4
安装内核构建依赖项
$ 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并启用通过/proc/config.gz访问.config
步骤7
编译内核
$ 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 reboot
步骤10
通过以下命令验证系统:
# zcat /proc/config.gz | grep RT_GROUP
CONFIG_RT_GROUP_SCHED=yhttps://stackoverflow.com/questions/56189710
复制相似问题