Я несколько раз пытался настроить RT на Ubuntu (и Petalinux), следуя инструкциям здесь: https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/preemptrt_setup
и взывает сюда:
https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
и тут:
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
для общих указаний.
Я выбрал версию ядра 5.6.19, так как она недавняя и имеет соответствующие патчи RT. Я могу скачать, исправить и собрать без проблем. Теперь Uname сообщает:
Linux developer-XPS-15-9550 5.6.19-rt12-custom #1 SMP PREEMPT_RT Tue Sep 29 10:13:17 BST 2020 x86_64 x86_64 x86_64 GNU/Linux
Однако у меня все еще нет неуловимой настройки CONFIG_RT_GROUP_SCHED в config.gz или каких-либо признаков настроек RT в /sys/fs/cgroups/cpu.
Здесь кто-то задавал тот же вопрос:
Как включить CONFIG_RT_GROUP_SCHED в Ubuntu сделать это RT
И ответ кажется довольно ясным, ЗА ИСКЛЮЧЕНИЕМ того, что у меня просто нет описанной настройки в menuconfig. Шаг 6 из приведенных выше состояний: Перейдите в Общие настройки ─› Поддержка группы управления ─› Контроллер ЦП ─› Групповое планирование для конфигурации SCHED_RR/FIFO...
Вот как выглядит мое меню:
У меня проблема в том, что пункт меню, описанный для групп управления (групповое планирование для SCHED_RR/FIFO), просто отсутствует.
Я заметил, что init/Kconfig выглядит следующим образом. Опция, которую я хочу, специально отключена, когда я выбираю PREEMPT_RT, поэтому кажется, что у меня может быть планировщик RT или группы управления RT, но не оба!
config RT_GROUP_SCHED
bool "Group scheduling for SCHED_RR/FIFO"
depends on CGROUP_SCHED
depends on !PREEMPT_RT
Как обойти эту головоломку и включить как планировщик RT, так и группы управления RT?