Hello,
In my work to find a more up-to-date version of the Linux i.MX kernel, which adapts to our platform (based on the i.MX6 Solo board) and is capable of working in Real-Time (low latency, PREEMPT_RT settings, etc.) mode, I have come across the old OpenIL platform. Said platform, I know, is not updated as of today; since NXP's support for Real-Time OS is now provided by means of the Real Time Edge software, but this is NOT A VALID ALTERNATIVE for our i.MX6 Solo based platform, given the lack of compatibility with the i.MX6 family. Instead, OpenIL included the i.MX6 family among the options in its catalogue.
OpenIL is based on Buildroot, which is NOT COMPATIBLE with our current build system; since we work with Freescale's "L3.14.28_1.0.0-ga" BSP, based on Yocto Project. We would like to keep working with Yocto, even if we have to switch to a more up-to-date version of NXP's i.MX Yocto Project. So, the 1st question arises: Has OpenIL been migrated to a layer in the Yocto Project at some point? Is there some way to work, in Yocto, with equivalent recipes to those OpenIL used to generate the same versions of the Linux kernel?
I think the GitHub repositories that store the OpenIL's versions of u-Boot, the Linux kernel, etc. are still active, so I know there might be a way to use them in a custom Yocto recipe... but I would like to know if there is any way to apply this concept oficially, according to NXP.
After all, this brings us to my second question: What is the latest version of the Linux kernel that NXP offers to i.MX6 users that is capable of working in Real-Time, based on an official support from the company? What platform should be used to generate it?
I know there are multiple ways (such as applying Linux Foundation's RT patches) to try to convert any Linux kernel to a PREEMPT_RT kernel. In this case, I want to know which is the last version of the Linux kernel NXP oficially offers for i.MX6 users, with Real-Time support.
Thanks, in advance, for your cooperation.
Best regards,
Daniel.
Hello @daniel_lopez_p
I hope you are doing well.
the latest version of the Linux kernel that NXP offers to i.MX6 users, based on official support, are the 6.1.1 kernel.
To use the 6.1.1 kernel with Yocto, you will need to use the latest version of the NXP i.MX6 BSP, which is available from the NXP website. Once one has installed the BSP, one can build the 6.1.1 kernel by running the following command
$ bitbake linux-imx
To use the 6.1.1 kernel with Buildroot, you will need to add the following line to your configs.mk file:
Please refer to this link for more details.
https://www.nxp.com/design/
Please share the observation.
Thanks & Regards,
Sanket Parekh
Hello, Sanket.
First of all, thanks for your answer.
The point was to know the last Linux kernel NXP supports, today, with official settings
and support for a "Real-Time" behaviour in the i.MX6 board family. I have already generated
multiple "linux-imx" kernel images (5.15.52, 5.15.71, 6.1.1) via i.MX Yocto Project, as you mention,
but the application of Linux Foundation's RT patches did not work as expected; resulting in too high
latencies, as reported by the "cyclictest" tool. Thus, "linux-imx" 5.15.x / 6.1.x do not seem to work for us.
It might be useful for you to answer, if you wish, to read one of my other posts regarding this question:
Best regards,
Daniel.
Hi @daniel_lopez_p ,
The successor of OpenIL is Real-Time Edge Software, of which latest version is Real Time Edge Software v2.5 that seems still support IMX6ULL boards. And the realtime kernel found in the document is lf-5.15.71-rt-2.2.0.
Hope you will find this useful!
Best Regards,
Khang
Hello, Khang.
First of all, thank you so much for your answer.
I might be missing some important information about the compatibility of i.MX6 boards
and NXP's "Real Time Edge" software, but I'll try to develop a lf-5.15.71-rt-2.2.0 kernel image for
our i.MX6 Solo based board... I'll post the results in this topic, in case anyone has a similar problem.
Thank you!
Best regards,
Daniel.