Training or consulting?
In partnership with Amarula Solutions, I was in discussion with an Italian company, Novavision. Moving to a new hardware platform, they wanted to take the opportunity to gain ownership of the tools that are used to build their products, here Yocto, instead of subcontracting this part of system development as they did previously.
Their first idea was to order our Yocto Project and OpenEmbedded training course. However, facing project deadline pressure, they also wondered whether consulting wouldn’t be a better choice to get their new project started in an efficient way. However, they didn’t want to fall back to subcontracting what they want to learn. That’s how the idea of a hybrid solution came up: consulting and training at the same time!
Consulting with knowledge sharing

On Monday morning, I was greeted by my customers by the best coffee on Earth and the warmest smile, and immediately got started showing them how to build a first image for their hardware.
A “nice” aspect of Yocto is that it leaves you some time to observe the first build, as there are lots of host and target tools to build. This was a great opportunity to start explaining what Yocto Project and OpenEmbedded are, and share the first technical details, all this with Root Commit’s standard lecture materials and my own training and project experience. Along the way, we were keeping an eye on the Yocto build so that we could switch back to project mode when the ongoing build was complete or required our attention.

After managing to have a kernel and image that boots on the hardware, we went on porting the previous version of the system to Scarthgap, the latest Long Term Support version of Yocto. Recipes had to be updated, some no longer necessary fixes had to be dropped, and needed changes started to be implemented. We also built an SDK for application developers, as Yocto was just going to be used to build the base operating system. This took many manipulations and iterations, interleaved with technical presentations and questions and answers.
I actually managed to go through all Root Commit’s lecture materials and explain the most important concepts to the customer developers.
Wrap-up from this experience


(rockchip 3566)
By the end of the week, a substantial portion of porting the system to a new version was completed. Because the hardware isn’t fully supported yet, we switched to a well supported one, the Raspberry Pi 3B board. After all, what Linux does is abstract the real hardware, and it’s very often possible to start developing your system and applications on a similar platform.
Of course, this approach is a compromise that is relevant when you’re facing project pressure. In this setting, you practice less than if you had the time to take our course and implemented all our challenging practical labs by yourself, with guidance from a trainer.
Anyway, that’s a nice way get started directly on your own hardware (or on a related one), and on your target software stack. You’re making progress laying the groundwork of your project, addressing your first issues with someone with more experience. In a nutshell, this solution allows to combine learning with progress in the implementation of your project.
I’m sure my customers didn’t remember everything I explained, as if they had practiced by themselves. However, understanding the concepts and knowing that constraints and solutions exist is an essential first step. When you know something exists, it’s much easier to look in the right direction and find it again.
All my gratitude to Novavision people for their exceptional hospitality. I really felt part of their team during this week spent with them.

