Why this blog

I agree with what they say on Reddit.

Yocto is the hardest tool I have ever tried to learn. It is absolutely gigantic, and the documentation is scattered all over the place. I followed hour long tutorials, advice, the official documentation, and bought dedicated books, but even after all this, I still couldn’t feel comfortable with it. I hated it. Like many who reach this point, I tried to break away from the Yocto environment and compile “by-hand” the source codes of what interested me. This included elements like U-Boot, the Linux kernel, and many others. The further I went, little by little, the more I felt I was wasting time. I managed to compile some executables and at least successfully flashed the bootloader of the board I was working on (stm32mp257-dk devboard). I manually created the partitions on an SD card, following the STM reference manual, and everything was fine. I was tempted to continue down this path, but I felt that by abandoning Yocto, I was leaving many useful things aside, and above all, as I better understood the manual process, I also better understood Yocto’s role. I picked it up again and banged my head against it. Fast forward a few months, and now I felt comfortable and extremely happy that I went this route. I developed a clear enough mental map of how to move between recipes and configurations, and a clean enough workflow for my taste. So, I decided to create this site to share my way of using Yocto and create an important resource for the entire community. Seeing how the market is evolving with its high-tech products and the geopolitical landscape with the data-sovereignty issues, I believe that knowledge of a tool like this can help many people, and help them greatly.

The goal is to provide a general overview of Yocto, to provide A-to-Z examples of how to use it by taking specific boards into consideration and building a hardware-abstraction layer for them from scratch, then creating a distro layer that can be generic and hardware-agnostic, then a custom applications layer, using various environments and runtimes, and finally, providing appendices in which to discuss some specific topics in more detail, for example, how to work with certain bootloaders, general concepts of the embedded world, and much more.

This last phase will probably see many drafts in progress.

The site will be available in various languages, but the main language I will use to move the work forward will be Italian. The articles will be hosted in Markdown format on GitHub, to allow anyone to suggest changes.

I plan to provide a section dedicated to Yocto training, where companies and individuals can contact me to organize in-person and/or remote training sessions.

Well, with this premise established, we can begin. Please fasten your belt, the one on your trousers, because we are going to see some great things here.