Install RT Linux patch for Ubuntu

Abhay Nayak picture Abhay Nayak · Aug 3, 2018 · Viewed 20.9k times · Source

Trying to make my generic Ubuntu to real time Ubuntu by modifying the kernel by patching / installing RT Linux but couldn't find a straight setup. Can someone help with the steps?

Answer

Abhay Nayak picture Abhay Nayak · Aug 6, 2018

Step 0 - Make a working directory

Make a working directory

#Move to working directory
mkdir ~/kernel && cd ~/kernel

Step 1 - Download kernel and patch

Go to https://www.kernel.org/pub/linux/kernel/ and download a desired version of kernel to ~/kernel. Similarly, go to https://www.kernel.org/pub/linux/kernel/projects/rt/ and download the RT patch with same version as the downloaded kernel version. The kernel and patch I used were linux-4.9.115.tar.gz and patch-4.9.155-rt93.patch.gz.

Step 2 - Unzip the kernel

tar -xzvf linux-4.9.115.tar.gz

Step 3 - Patch the kernel

#Move to kernel source directory
cd linux-4.9.115
gzip -cd ../patch-4.9.115-rt93.patch.gz | patch -p1 --verbose

Step 4 - Enable realtime processing This step requires libncurses-dev

sudo apt-get install libncurses-dev libssl-dev

The next command launches a graphical menu in the terminal to generate the config file.

make menuconfig

Go to the location and make the changes accordingly

##Graphical Menu##

Processor type and features ---> [Enter]
Preemption Model (Voluntary Kernel Preemption (Desktop)) [Enter]
Fully Preemptible Kernel (RT) [Enter] #Select

[Esc][Esc]

Kernel hacking --> [Enter]
Memory Debugging [Enter]
Check for stack overflows #Already deselected - do not select


[Esc][Esc]


[Right Arrow][Right Arrow]

<Save> [Enter]

.config

<Okay> [Enter]

<Exit> [Enter]


[Esc][Esc]


[Right Arrow]
<Exit> [Enter]

Step 5 - Compile the kernel

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

Step 6 - Verify and update Verify that initrd.img-4.9.115-rt93, vmlinuz-4.9.115-rt93, and config-4.9.115-rt93 are generated in /boot directory and update the grub.

cd /boot
ls
sudo update-grub

Verify that there is a menuentry containing the text "menuentry 'Ubuntu, with Linux 4.9.115-rt93'" in /boot/grub/grub.cfg file

To change default kernel in grub, edit the GRUB_DEFAULT value in /etc/default/grub to your desired kernel.

NOTE: 0 is the 1st menuentry

7 - Reboot and verify

sudo reboot

Once the system reboots, open the terminal and use uname -a to check the kernel version, it should look like the following

Linux abhay-home 4.9.115-rt93 #1 SMP PREEMPT RT Mon May 13 03:32:57 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux

Note: "SMP PREEMPT RT" validates that your system is running real time kernel.