That seems to be a good way for compiling the code as a first step in the pipeline.
Even-though I am looking more for a way to automatically package everything into an img file, that can be distributed to new devices afterwards.
Do you have any best practices or suggestions regarding this?
Maybe you have some feedback on my ideas:
cross compile the code for the different platforms.
Get some kind of image and modify it (device tree modifications, install dependencies, ā¦).
Place the code into the modified image and save it to some kind of storage registry.
At D3 we have had good luck cross compiling into .deb packages. We have a relatively powerful build server running Jenkins. We package our kernel and applications as debs. If you use autotools itās very easy to cross compile. You could then place the debs in a repository and use apt to pull them down. We also bundle our DTB files into our kernel image. Itās not difficult to detect which platform (Nano, Tx2, Xavier) you are running on to install the correct DTB. You can install signed kernels and DTB files using dd from the target.
The above works well for users that wish to use a mostly āstandardā nano/tx2/xavier image. Most D3 customers fall into that category.
Iām personally very interested in seeing a more embedded deployment style that you seem to be pursuing (a minimal single image with a small bootloader). Please share your results!
You can see how we bundle the kernel and dtb into a .deb at the link below. In a future release weāll be moving away from make-kpkg and using the .deb facilities that are already present in the Linux kernel build system.
Hi @Frederic-Tausch-
We have an open-source project for Edge AI and ML. We are hosting a series of webinar and our first session is āEdge DevOpsā. We are going to cover CI and how it can improve the edge AI application development. Please click the below link to register for the webinar.