How to enable CONFIG_RT_GROUP_SCHED in Ubuntu to make it RT
Asked Answered
H

1

5

I need to run real time applications on Ubuntu RT Linux and was reading about ways to make linux act as RT system and I learned two ways to do it

  1. preemptive_rt kernel patching
  2. enabling CONFIG_RT_GROUP_SCHED flag in the kernel.

I've already tried my hands on 1st method Install RT Linux patch for Ubuntu

However, apart from uname -r showing #1 SMP PREEMPT RT I've no other proof that it is actually a RT system and hence want to try the 2nd method. Enable CONFIG_RT_GROUP_SCHED flag in the kernel and see its performance.

I read we can confirm if the kernel already has the flag by following command:

# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y

However, my system doesn't even have the config.gz file in proc, so I believe my kernel does not have this enabled. I'm relatively new to linux kernels so this might be naive but how can I enable this in the kernel?

Hospitalet answered 17/5, 2019 at 15:44 Comment(0)
H
6

Step 1
Download linux kernel from https://www.kernel.org/pub/linux/kernel/. For the purpose of this PoC we downloaded linux-4.16.18.tar.gz kernel from above link.

Step 2 Unzip the kernel

$ tar -xzvf linux-4.16.18.tar.gz

Step 3

Move to kernel source directory

$ cd linux-4.16.18

Step 4

Install kernel build dependencies

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

Step 5

Run kernel configuration

$make menuconfig

Step 6

Go to General setup ─> Control Group Support ─> CPU controller ─> Group scheduling for SCHED_RR/FIFO configuration as shown below:

enter image description here

Go to General setup ─> Kernel .config support and enable access to .config through /proc/config.gz

Step 7

Compile the kernel

$ make -j20

Make modules & install

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

Step 8

Open the grub.cfg file to verify if kernel is installed

$ vim /boot/grub/grub.cfg

Look for the menuentry with menuentry 'Ubuntu, with Linux linux-4.16.18'

If it's not your default kernel then change the GRUB_DEFAULT=0 value to your kernel

Step 9

Reboot your system

sudo reboot

Step 10

Verify the system by the following command:

# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y
Hospitalet answered 17/5, 2019 at 15:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.