Hi @cheesi
Did you follow this article?
If so, you could create a separate machine for each OEM customer. In the kernel recipe (or better the bbappend) you may then do something like:
You can then add your machine specific patch into a folder with the machine name. e.g. linux-toradex-4.9-1.0.x/colibri-imx6-oem1
If you only want to hide the userspace boot (systemd) you can also think about using something like dietsplash. You could create a specific dietsplash recipe for each oem customer and include it in the oemN-image. This has the advantage that you don’t have to recompile the kernel for each customer but only dietsplash. You also don’t have to add a new machine which is maybe easier to maintain. The disadvantage is that it takes until the kernel has loaded to you see the splash screen.
Thanks for the quick response, that is really helpful. I’m not sure, but as far as I can remember, changing the $MACHINE var in local.conf results into rebuilding everything? Because that would be quite annoying and increasing the build time radically. Please correct me, if I am wrong.
Normally only changing the MACHINE in local.conf shouldn’t rebuild everything. Only the machine specific parts under tmp-glibc/work/colibri_imx6–angstrom-linux-gnueabi should be rebuild (e.g. kernel, u-boot). If it rebuilds everything something is wrong somewhere. Please come back to me if that should be the case.
Okay thanks. Just another question: isn’t it risky to introduce new machine names? For example, if I take a look into the toradex-layer, there are many machine specific additions for colibri-imx6. Are these additions also applied for colibri-imx-*?
It don’t think it’s risky it depends on how you implement it. I would recommend you that you include the colibri-imx6.conf in your own machine config. This has the advantage that you get updates if Toradex changes something. Please check meta-freescale-3rdparty/conf/machine/imx6qsabrelite.con for an example. They include nitrogen6x.conf there.
Yes, that will work for the configuration in the machine files, but our image includes the /meta-toradex-demos/recipes-images/images/console-tdx-image.bb, so we use the toradex console image as a base.
And tdx-extra.inc for example has the following appends:
Currently, I’m trying to implement this, but this solution breaks the tar ball generation and the update.sh script.
I was able to fix the tar ball generation by overriding the BURNFLASH var, the update.sh script, however, cannot find certain files because of the changed machine name.
So for now, this is not a suitable solution for us. Are there any other ways to implement this?
Unfortunately you are right and it needs some modifications for the tarball generation as well. Are you okay with your current solution? I don’t think there is a super simple way.
My current solution is to manually copy the corresponding patch file. I have both patch files in the my layer repo, so, yes I am okay with that.
However, if you do a refactoring some day, you should think about addressing this issue (if it’s even possible). I don’t know, if it’s only us, but I think it would be a common usage for companies to sell its products as OEM. And some of the reseller would like to have some customization.