Downgrading kernel version in TorizonCore Upstream 5.7.1

Hi

We are using Yocto to build our own image which is based on TorizonCore Upstream 5.7.1. We are able to generate an image with our own device tree /modifications so everything is fine so far. However, we have few pre-compiled kernel modules that we need to add to the image but these modules were compiled for kernel version 4.14 and BSP v 3.0b4 so we are kinda restricted to use kernel v 4.14 and my question: would it be possible to downgrade the kernel version from 5.4 to 4.14? in case it is possible, could you please direct me to the correct way of doing it?

Our setup:
Apalis iMX6Q 2GB V1.1C
Ixora Carrier Board V1.0
Linux BSP 5.2.0
Kernel Version 5.4.193

Thanks in advance!

Greetings @Mansour,

If you want to make a major change like this the correct way to go about it would be to do a custom Yocto build and implement this change there: Build TorizonCore from Source With Yocto Project/OpenEmbedded | Toradex Developer Center

That said, changing something like the kernel version can have unforeseen consequences on the the OS. For example somethings might not work right or just be broken in this untested kernel version. Though this is something you’ve probably already taken into consideration.

We haven’t really ever tested our TorizonCore distribution on this older kernel version. That is to say we don’t really know what will happen if you attempt this.

Best Regards,
Jeremias

Hallo @jeremias.tx

Thanks for you quick reply! Yes we are aware of what you said that we might have unforeseen consequences on the the OS. However we would like to try it out and in case we don’t succeed, we get to learn something. The question is : what is the best way to do it? ist only something like configuring few parameters, for example PREFFERED_VERSION_linux-toradex = “4.14” or shall we follow this tutorial Build U-Boot and Linux Kernel from Source Code ?

Another question, our main goal for moving from older distribution to TorizonCore distribution was to have the feature of SOTA updates. In case we don’t succeed in rolling back to kernel 4.14 on TorizonCore distribution, would it be possible for us to implement SOTA updates on older distribution? is that something pretty difficult?

Best Regards,
Mansour

ist only something like configuring few parameters, for example PREFFERED_VERSION_linux-toradex = “4.14”

Well the issue here is you need to actually provide a recipe in Yocto that supplies the 4.14 kernel. In our dunfell layers this no longer exists. We had one back in Yocto thud, that might be useful as a reference, or you can try modifying the existing linux-toradex recipe to point to the 4.14 kernel source branch.

or shall we follow this tutorial Build U-Boot and Linux Kernel from Source Code ?

That article is for building the Linux kernel standalone, it won’t get you an entire OS image with everything integrated.

would it be possible for us to implement SOTA updates on older distribution? is that something pretty difficult?

I don’t see why it would be impossible. That said it’s not a trivial task, what exactly is needed on an older distribution I can’t say for sure.

Best Regards,
Jeremias

Hi @Mansour ,

A quick question from my side.

Would it be somehow possible to rebuild these modules for the new kernel?
If you’re using a setup with a downgraded kernel, it will be hard for Toradex to properly support you, if you face issues in the future.

Addtionally, if you want to use OTA updates in the future. I assume you will be only using application updates right?

Best Regards
Kevin

Hi @jeremias.tx and @kevin.tx

thanks for your reply.

@kevin.tx unfortunately it is not possible to rebuild the modules and that is the problem. Otherwise things would have been easier.

Regarding OTA updates, we would like to update the full image, not only the application.

Greetings,
Mansour

Hi @Mansour ,

Thank you for your answer.

I see, can I ask why that’s the case? It would really be the preferred solution to be able to find these modules built for the newer kernel.

Okay, would you then build the image always with kernel 4.14 and update your OS like this? Because if you perform an OS update with an image from Toradex the kernel will be updated as well. Which will again break your kernel modules.

Would you maybe be interested to set up a call to talk about your use-case?

Have a great day!

Best Regards
Kevin