I’m looking to build a custom OS for the Raspberry Pi 4 but am facing several issues.
Building the OS
I have tried several VM’s with Ubuntu installed but can never get past the stage of Docker Engine starting in Docker Desktop. Hence, I have locally installed Ubuntu 20.04 and run a build from there. Only later on did I realise that Ubuntu 18.04 LTS seems to be the supported OS - not 20.04. No documentation here - some guidance on what the typical steps to getting this up and running are would be very helpful.
Custom OS and support to BalenaCloud features
However, my main question is this: if I build a custom OS for my Pi 4, are all other Balena features still supported? E.g. - what is the difference in experience between flashing my own custom .img file and any one of the supported .img files directly provided by Balena?
May I ask what is the purpose of the custom build? Custom builds are used for hardware bringup and OS development, but there is no mechanism to surface custom builds in balenaCloud. The balenaCloud pipeline has its own build servers and OS automation tests that are required to run before new OS releases are deployed.
About the balenaCloud features, a custom build will be able to use all of the balenaCloud features - however as I said before there is no mechanism to import that custom build into balenaCloud itself so devices cannot perform a hostOS update to them - you need to program them manually or go through custom update processes. Also, custom builds are obviously not supported by us.
If you have some special hardware you want to support, you can work with us to integrate the changes into future balenaOS releases, and use custom builds while developing and testing.