Довольно сложно сделать выводы после проведённого голосования. Интерес к системе реального времени есть, т.к. около трети проголосовавших на данный момент хотели бы использовать ядро реального времени. При этом половина проголосовавших вообще не знает как оно себя поведёт. Так давайте развеим этот миф и попробуем установить у себя Linux ядро реального времени прямо сейчас!
Что нам для этого понадобится?
# Исходники ядра из портежей: http://www.calculate-linux.ru/packages/sys-kernel/vanilla-sources
# Патч ядра реального времени: https://www.kernel.org/pub/linux/kernel/projects/rt/
# Ну и для ликбеза разные доки: https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO
Ванильное ядро было выбрано по причине отсутствия патчей, для избежания возможных косяков.
На момент написания статьи версия патча немного запаздывает от версии ванильного ядра. Но это не проблема. Для достижения цели я немного подправлю портежи. К счастью это не так страшно, потому что cl-update их после этого сможет всё восстановить.
Итак, установим исходники ядра 3.18.7:
cd /usr/portage/sys-kernel/vanilla-sources/
mv vanilla-sources-3.18.8.ebuild vanilla-sources-3.18.7.ebuild
ebuild vanilla-sources-3.18.7.ebuild digest
echo =sys-kernel/vanilla-sources-3.18.7 >> /etc/portage/package.keywords/custom
emerge =sys-kernel/vanilla-sources-3.18.7
Теперь скачаем патч и пропатчим наше ядро:
cd /usr/src/linux-3.18.7
wget https://www.kernel.org/pub/linux/kernel/projects/rt/3.18/patch-3.18.7-rt2.patch.gz
gunzip patch-3.18.7-rt2.patch.gz
patch -p1 < patch-3.18.7-rt2.patch
Всё без ошибок? Отлично, нам осталось позаимствовать настройки ядра и по образу и подобию сконфигурировать наше:
cp /usr/src/linux/.config /usr/src/linux-3.18.7
cl-kernel --convert --kver=3.18.7
На момент написания статьи, версия ядра Calculate Linux - 3.18.8. Менять почти ничего не потребуется, останется только настроить изменения внесённые патчем.
Первым делом cl-kernel выполнит ‘make oldconfig’, который вам покажет явные отличия вашего пропатченного ядра и предложит их настроить:
Preemption Model
1. No Forced Preemption (Server) (PREEMPT_NONE)
2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)
3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT__LL) (NEW)
4. Preemptible Kernel (Basic RT) (PREEMPT_RTB) (NEW)
> 5. Fully Preemptible Kernel (RT) (PREEMPT_RT_FULL) (NEW)
Попробуем пятёрочку?
Затем будет запущен редактор настроек ‘make menuconfig’. Выйдите из него с сохранением результата.
Обратите внимание на надпись:
* Создание шаблона 10-vanilla-x86_64-3.18
Этот шаблончик нам может ещё пригодиться! После этого будет запущена сборка ядра.
По завершению перезагрузим компьютер и выберем при загрузке наше новое ядро.
После загрузки выполните:
$ uname -v
#1 SMP PREEMPT RT Wed Mar 4 02:22:32 MSK 2015
“PREEMPT RT” хладнокровно укажет вам на реалтаймовское ядро!