Setting up an Armbian build server with Multipass
In order to build an Armbian image from scratch, whether for development purposes or to apply user customizations on top of a base image, a build environment is required. Per the Armbian documentation, Ubuntu 20.04 is the officially supported build platform.
There is some support for Docker, though in my tests this has been a suboptimal experience. Even if you have access to Ubuntu 20.04 as your bare metal machine, the build process makes liberal use of
sudo throughout, so it's probably not a bad idea to isolate the build process with a VM in any case.
Since the build environment is designed for Ubuntu, the flexibility (and complication) of using Vagrant to provision a VM seems a bit much when there is Multipass available that is designed for quick and painless provisioning of Ubuntu VMs.
Creating a VM and preparing for build
I have tested these commands on both Windows 10 and Fedora and they've both worked seamlessly for the purposes of an Armbian build server.
Once you have multipass installed, a Focal (20.04) instance with 4 CPUs, 4GB of RAM and 25GB of space available can be provisioned with a single command:
multipass launch --cpus 4 --disk 25G --mem 4G --name armbian focal
You can run commands direct on the instance to clone the build repo:
multipass exec armbian -- bash -c "git clone --depth 1 https://github.com/armbian/build"
Then you can get a shell to the instance and run the build as needed:
C:\> multipass shell armbian Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-48-generic x86_64) Last login: Tue Oct 6 21:39:16 2020 from 172.22.112.1 ubuntu@armbian:~$ cd build ubuntu@armbian:~/build$ ./compile.sh BOARD=orangepilite ... etc
Multipass also offers out-of-the-box SSHFS mount support for easy copying of build artifacts in and out from the VM:
multipass mount /my/dir armbian:/home/ubuntu/mnt