In this tutorial, I will present how to make a RT Preempt Linux with Ubuntu 18.04.02
1. install Ubuntu 18.04.02 in your computer. Let me skip the details since there are so many other tutorials for this.
2. Once the install is finished. Download Linux kernel and RT Patch
- Linux Kernel Download at
https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/
- RT patch download at https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/4.4/
3. Prepare to compile the kernel
cd Downloads/ xz -cd linux-4.4.208.tar.xz | tar xvf - cd linux-4.4.208/ xzcat ../patch-4.4.208-rt191.patch.xz | patch -p1 sudo apt install libncurses5-dev build-essential cmake libssl-dev git flex bison make menuconfig
4. Compile and install the kernel ( WARNING: It takes very long time)
make -j20 sudo make modules_install -j20 sudo make install -j20
Here -jx is to specify the number of CPU cores, if you just choose a high number, it go with your all CPU cores.
5. Grub setting
sudo gedit /etc/default/grub
Then, edit the text as below:
To select the booting option in GRUB
GRUB_TIMEOUT_STYLE=hidden -> GRUB_TIMEOUT_STYLE=menu
To increase the time out for selecting a menu
GRUB_TIMEOUT=0 -> GRUB_TIMEOUT=3
To reduce the visual effect
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” -> GRUB_CMDLINE_LINUX_DEFAULT=”quiet”
If you want to boot without graphical desktop (terminal mode)
GRUB_CMDLINE_LINUX=”” -> GRUB_CMDLINE_LINUX=”3″
5. Rebooting
sudo update-grub sudo reboot
6. Select RT-preempt kernel in GRUB
select Advanced and RT-Linux
(Optional) If you want to customize GRUB more, then use grub-customizer (grub editor with GUI)
sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt update sudo apt install grub-customizer
Other readings
Now you are ready to develop or run an RT application on RT Preempt Linux. If you need to know how to write a RT thread running with a periodic cycle, read another article of mine.
- C++ Class for Loop Time Histogram Statistics
- Parallel RT Processes with Same Periodic Cycles
- RT Periodic Thread Code and Scheduler Policy and Priority