Debian operating system and software platform for your Raspberry Pi
You must decide how to start out and which operating system and software platform to build your IoT product on. A key consideration will be to start with some version of Debian (Raspberry Pi OS or Raspbian) or go straight for a custom Linux distribution such as Yocto or Buildroot?
Debian on a Raspberry Pi
Bear in mind, if you start with a version of Debian for your Raspberry Pi then this comes with a lot of extra software which you might not want, and your software stack is, as a result, very malleable. Some might call it bloatware. This means that the image size could be anywhere from 500Mbytes to 3GBytes. Therefore, some users choose to slim down the images and go down the embedded Linux route, with stacks such as custom Linux builds through the Yocto project, or Buildroot, or similar projects.
On the upside, there are several good reasons to select Debian (Raspberry Pi OS or Raspbian) for your Raspberry Pi project:
- It is free to download and use, and highly stable and reliable
- It is has extensive hardware support from the Linux kernel
- It is known for frictionless and easy upgrades
- There is a strong global developer community in 60 countries to support you
- Software bugs are fully transparent and can be monitored through the Debian Bug Tracking System
Debian for a Raspberry Pi as a great starter
Debian (Raspberry Pi OS or Raspbian) for your Raspberry Pi is a great starting point as everything you need is in the software stack already. It is easy to get started with, and as you get more comfortable and specialised you can move on to a more specialised stack - the customised Linux distribution such as Yocto and Buildroot. The more specialised work can be done later if you have OTA software updates supported on the device, you can easily move your software stack. You should ship your device while still developing and evolving.
Consider Debian Raspberry Pi first and then moving to Yocto or Buildroot later
In Debian (Raspberry Pi OS or Raspbian) for your Raspberry Pi you will have a lot more moving parts and software that may not necessarily be needed. With Yocto and Buildroot, you will have smaller images, so your costs will be less for bandwidth. There is a 10x difference in image size between Debian and Yocto or Buildroot. By using a custom Linux distribution, you can save network cost and bandwidth usage. You will save on resources over time, reducing the image size so you only transfer the software you need and not the parts which you are not going to use. You will only have to ship the difference in image you need - the so-called delta update. Once you have a minimal image set up, you can think about only updating applications, only updating the container you have running, or even turning off the connection to the device for certain periods of time to save on battery and system resources.
Consider reading these articles on Raspberry Pi: