Linux IoT development: adjusting from a binary OS to the Yocto Project workflow
In embedded Linux development, there are two approaches when it comes to what operating system to run on your device. Either build your own distribution (with tools such as Yocto/OpenEmbedded-Core, Buildroot etc.) or you use a binary distribution where Debian and derivatives are common.
It is common to start out with a binary distribution. This is a natural approach as this is a familiar environment for most people who have used Linux on a PC. All the commodities are in place and someone else has created the distribution image for you to download. There are normally custom vendor images for specific hardware which contain optimizations that make it easy to get started to fully utilize your hardware. This of course makes it suitable for prototyping and evaluation, giving you a head start in developing your application and your product. However, as we will soon publish an article in Linux Journal, you will learn downloading a prebuilt-distribution image and make manual changes to it is not the most efficient, reproducible and scalable approach. Switching to a tool that is able to automate your builds and specifically with the Yocto Project can come with benefits in the long-term.