I have seen quite some post about that topic. The solution so far was to add my-machine to the compatible list of the recipe.
That indeed works but it required to modify ALL suffered recipes. That are quite a lot for enabling ML for my-machine. As example
tensorflow-lite-vx-delegate:
COMPATIBLE_MACHINE = "(^$)"
COMPATIBLE_MACHINE:imxgpu3d = "(mx8-nxp-bsp)"
COMPATIBLE_MACHINE:mx8mm-nxp-bsp = "(^$)"
or imx-gpu-viv:
COMPATIBLE_MACHINE = "(mx8-nxp-bsp)"
It works if would change my-machine to be "imx8mp-lpddr4-evk". But can't I simply declare my-machine to be compatible and so to be treated as the EVK board? What do I miss?
What is the magic behind that machine imx8mp-lpddr4-evk gets accepted by the above COMPATIBLE_MACHINE test?
Well, but either I don't get it or you misunderstood me. Sorry in both cases.
The recipes are written by freescale/nxp and contains the above mentioned lines. I understand that they should help speed up and not work for compatible machines.
If my machine has the name "my-machine" : what can I exactly do (in my layer, I won't change that from freescale) to let the recipes work for "my-machine" too. Simply speaking I thought I can declare "my-machine" to be compatible with (as for instance) "imx8mp-lpddr4-evk" - as it works for this one. Howto do so?
Hi @arno_0
These descriptions from Yocto Project Reference Manual might bring helps.
A regular expression that resolves to one or more target machines with which a recipe is compatible. The regular expression is matched against MACHINEOVERRIDES
. You can use the variable to stop recipes from being built for machines with which the recipes are not compatible. Stopping these builds is particularly useful with kernels. The variable also helps to increase parsing speed since the build system skips parsing recipes not compatible with the current machine.
Best regards
Harvey