我需要在Ubuntu RT Linux上运行实时应用程序,并且正在阅读有关使Linux充当RT系统的方法,并且我学习了两种方法来实现
CONFIG_RT_GROUP_SCHED
标志。我已经尝试过第一种方法Install RT Linux patch for Ubuntu
但是,除了显示uname -r
的{{1}}之外,我没有其他证据证明它实际上是RT系统,因此想尝试第二种方法。在内核中启用#1 SMP PREEMPT RT
标志并查看其性能。
我读到我们可以通过以下命令确认内核是否已经有该标志:
CONFIG_RT_GROUP_SCHED
但是,我的系统甚至在proc中都没有config.gz文件,因此我相信我的内核没有启用此功能。 我对Linux内核比较陌生,所以这可能很幼稚,但是如何在内核中启用呢?
答案 0 :(得分:0)
第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
并启用通过.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 '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