Preempt RT Kernel

Flash the SD card with the latest Raspbian Lite image using Etcher or your favorite way.

Connect a monitor and a keyboard and boot up the RPi4. It may or may not show the log in prompt. Whenever it stops print text to the monitor you should be able to login with the username pi and the password raspberry.

Next we’ll setup a few things in Raspbian, the space bar selects or deselects items in a list with [ ]. The tab key moves around in the menu. If you’re in another country make adjustments as needed.

sudo raspi-config

Advanced Options > Expand Filesystem

Localisation Options > Change Locale

Select en.US.UTF-8 UTF8

Make sure you deselect en.GB.UTF-8 UTF8 or you will have a British accent

Default locale for the system environment: en.US.UTF-8 UTF8

Localisation Options > Change Timezone
US > your timezone
Localisation Options > Change Wi-fi Country
US
Network Options > WiFi
Enter your SSID and Password if you have WiFi.

Interfacing Options > SSH Enable

Select Finish and Reboot

You have the option at this point to SSH into the RPi4 from another PC.

To find out the IP address log in and issue this command

sudo ifconfig

If you have WiFi enabled and setup use that inet address to SSH into the Rpi4.

From another Linux PC on your LAN you can open a terminal and issue

ssh pi@192.168.x.x (use the inet address you found from above)

Now we’ll download and build the preempt rt kernel

sudo apt update
apt list --upgradable
sudo apt dist-upgrade
sudo apt autoremove
sudo apt install git
git clone --depth=1 https://github.com/raspberrypi/linux -b rpi-4.19.y-rt
sudo apt install bison flex libncurses5-dev libssl-dev bc mc
cd linux
KERNEL=kernel7l
make bcm2711_defconfig
make menuconfig
# save and exit
make -j4 zImage
make -j4 modules
make -j4 dtbs
sudo make modules_install
# should report back DEPMOD  4.19.59-rt23-v7l+

Install the RT PREEMPT Kernel

sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

Fix some boot options for best latency

sudo nano /boot/cmdline.txt

Add the following to the current line to make one long line

quiet splash lapic noxsave acpi_osi= isolcpus=1,2,3 idle=poll acpi_irq_nobalance noirqbalance vmalloc=32MB clocksource=acpi_pm net.ifnames=0

Ctrl x to exit, save y, enter to write to the file

To get rid of old deb files in apt cache and reboot

sudo apt clean
sudo reboot -n

Log back into the RPi4 after it boots up and check that you have the preempt rt kernel installed.

uname -a
Linux raspberrypi 4.19.59-rt23-v7l+ #1 SMP PREEMPT RT  armv7l GNU/Linux

Updated Aug 23, 2019