I'm running an embedded Linux build on the TI Sitara AM335x module, and using their Processor SDK to build a custom u-boot, kernel, and root filesystem.
Their latest version of the SDK is 06.03 and is pinned against Yocto Thud distributions (which are a bit old now). I've got everything I need setup, have my new BSP, can build everything I need to, but there is exactly one thing I need that I can't get working. The SDK comes with Python 3.5, and I need Python 3.6+ to run a certain tool.
Strictly as an experiment, I've built Docker into the system, and I can run newer containers in there - but that comes with a non-trivial size and performance impact, as well as some additional deployment and upgrade considerations.
I'm trying to figure out if there is a way for me to upgrade only the Python distribution, but I can't seem to find much information about that. There are some notes around about sequentially applying all the patches from later distributions, and trying to compile, debug, etc, but there are a lot of patches and it would be easy to miss something.
I do know one option is to throw away the SDK and go straight Yocto Dunfell, but the Processor SDK comes with a lot of kernel and u-boot tweaks baked in - so I'd like to stick with that in the short term (long, long term plan is to move to straight Yocto and get the latest/greatest).
TLDR; Is there any simple/streamlined mechanism to upgrade Yocto Thud to Python3.6+ without too much risk in finding and applying kernel and rfs patches, or using Docker inside of the rootfs, or moving away from the Processor SDK?
I was in the same position and was able to upgrade python 3.5.6 (thud) to python 3.7.7 (warrior).
To do this I did the following steps:
meta/recipes-devtools/python
path with the one in the warrior branchmeta/classes/
with warrior version:meta/recipes-graphics/mesa/files/0004-Use-Python-3-to-execute-the-scripts.patch b/meta/recipes-graphics/mesa/files/0004-Use-Python-3-to-execute-the-scripts.patch
This worked on my image with the packages that I was using. Other packages still might need some patches.