I have successfully built Torizon 5.0 following the ‘Containerized TorizonCore Build’ instructions under Windows using the following command .
docker run --rm -it --name=crops -v \wsl$\Ubuntu\home\epatrizi\projects\linux\colibri_imx7:/workdir --workdir=/workdir -e MACHINE=colibri-imx7-emmc -e IMAGE=torizon-core-docker torizon/crops:dunfell-5.x.y startup-tdx.sh
How do I build a custom Linux image in this environment? I made changes to …/arch/arm/mach-imx/platsmp.c, but when I execute the command above it did not detect any source code changes and did not build anything.
First of all may I ask for what purpose you are trying to build TorizonCore?
It’s okay to build it, but usually not many people have to. So I’m just curious about your use case.
As for your question:
I made changes to …/arch/arm/mach-imx/platsmp.c, but when I execute the command above it did not detect any source code changes and did not build anything.
It seems like you made a change to a file in the Linux kernel, correct?
You need to make a patch of your changes and then incorporate it into the build of the image. That way your changes are taken into account. Did you do this, or some other method to incorporate your changes?
I am porting Green Hills Software INTEGRITY OS to this board. I am having problems with atomic operations between the two A7 cores and wanted to instrument Linux to see how it is setting up and releasing the second A7 core and configuring the snoop control unit.
This is my first time using docker so am unsure if it requires a different approach from just using Yocto natively. If you mean creating a Yocto patch via the normal mechanism, I believe I can figure that out. I have done that once before. Seems like I used devtool in the past instead of creating a patch, but I do not have devtool available in this container.
Ah I understand now, this is more for investigative purposes then.
Anyways, yeah we don’t have devtool in our container by default since we don’t commonly use it in-house. But you should be able to just create a patch file of your changes and then add it to the respective kernel recipe in the meta-layers.
When running the command omit the
-e IMAGE=torizon-core-docker argument. Doing so will setup the build environment and drop you into a shell inside the container. This will let you do the necessary customization. Then you can just run
bitbake manually inside the container when ready.
If you need a reference on how to patch a Yocto recipe there’s quick guide on the Yocto manual here: Yocto Project Linux Kernel Development Manual