Как включить CONFIG_RT_GROUP_SCHED в Ubuntu, чтобы сделать его RT - PullRequest
1 голос
/ 17 мая 2019

Мне нужно запускать приложения реального времени на Ubuntu RT Linux, и я читал о том, как заставить Linux действовать как систему RT, и я узнал два способа сделать это

  1. preemptive_rt исправление ядра
  2. включение CONFIG_RT_GROUP_SCHED флага в ядре.

Я уже попробовал свои силы на первом методе Установите RT Linux patch для Ubuntu

Однако,кроме uname -r, показывающего #1 SMP PREEMPT RT У меня нет других доказательств того, что это на самом деле система RT, и поэтому я хочу попробовать второй метод.Включите флаг CONFIG_RT_GROUP_SCHED в ядре и посмотрите на его производительность.

Я прочитал, что мы можем подтвердить, что у ядра уже есть флаг, с помощью следующей команды:

# zcat /proc/config.gz | grep RT_GROUP

CONFIG_RT_GROUP_SCHED=y

Однако моя система не 't в файле proc.gif есть файл config.gz, поэтому я считаю, что в моем ядре эта функция не включена.Я относительно новичок в ядрах Linux, так что это может быть наивно, но как я могу включить это в ядре?

1 Ответ

1 голос
/ 17 мая 2019

Шаг 1
Загрузите ядро ​​linux с https://www.kernel.org/pub/linux/kernel/. Для целей данного 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, как показано ниже:

enter image description here

Перейдите к 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
...