Update
After further investigation it appears that Yocto is not applying the real-time patches. It downloads the patch file and unpacks it but never actually applies it. How do I fix this?
Original Post Below
I want to add full real time preemption to the Yocto Warrior i.MX8MM build by adding the CONFIG_PREEMPT_RT_FULL configuration. The problem I am facing is that this option does not appear in menuconfig even after applying the 4.19.37-rt20 patch to the 4.19.35 kernel. The patch and compile work but when looking at the final .config file the CONFIG_PREEMPT_RT_FULL is still missing. I've also added the CONFIG_EMBEDDED configuration as well but it still doesn't allow ...RT_FULL to be applied.
I've created the file linux-smarcimx8mm-4.19.35.bbappend with the following content:
SRC_URI += "https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt20.tar.gz;..."
SRC_URI[sha256sum] = "9833df70f26a99d45c18a2eee3702e5b02daa9647b09ae51a6b1b2e7ddf7dcf9"
do_configure_append() {
for entry in "${THISDIR}/files"/*.cfg
do
${S}/scripts/kconfig/merge_config.sh -m ${B}/.config "$entry"
done
}
In my fragment file I have, rt.cfg:
#
# Timers subsystem
#
CONFIG_PREEMPT_RT_FULL=y
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
The two settings for _GOV_ from my fragment file are set correctly in my final .config file, but CONFIG_PREEMPT_RT_FULL is still missing.
How do I force Yocto to include CONFIG_PREEMPT_RT_FULL?