IoT Development: Going from prototyping to production with embedded Linux
With the advent of IoT and the proliferation of connected embedded devices across a variety of industry verticals, a large share of devices in development are based on Linux of one form or another due to their prevalence of low-cost boards with ready-made Linux distributions. Easily and cheaply acquiring hardware, building custom code, connecting the devices to other peripherals and the internet as well as accessing commercial cloud providers has enabled faster pace of development. A development team can quickly prototype a new application and get the devices in the hands of potential users for quick testing and user feedback.
However, depending on product goals and business objectives things may get more complex when planning for mass production and beyond just proof-of-concept (PoC). With ready-made Linux boards, in many cases, the initial pre-built binary operating system image used during PoC may not be the best choice and have the necessary requirements to satisfy production level requirements at large scales. Additionally, the approach of downloading a pre-built binary distribution image and applying changes to it manually will become a problem, as it does not scale well and is error-prone due to the amount of manual labor that can lead to inconsistent output. The optimization would be to find ways to automate this, generating distribution images that contain your applications and your configuration in a reproducible way. This is where build system tools such as Yocto/OpenEmbedded-Core, Buildroot and others will enable such a process. This is also where you decide either to stick with a binary distribution or move your idea and the result of the evaluation and prototyping phase to a tool that's able to generate custom distributions and images in a reproducible and automated way.
Learn more in this tutorial on how to create custom images using Yocto Project.