vm-o-matic isn't clever, complete or scaleable. However it is useful if you want to spin up a throwaway VM to test out something about a specific distro.
cd debian-11-bullseye-amd64
make help
make install
makevm-o-matic is just a Makefile system. Most of the settings can be overridden from the command line (and most of the important ones use ?= so the can also be set from the environment).
Try something like:
make VM_CPUS=16 VM_RAMSIZE_MB=16384 headlessA (non-exhaustive) collection of useful variables is:
VM_CPUS: number of SMP cores (default:4)VM_RAMSIZE_MB: quantity of RAM in MiB (default:8192)VM_SIZE: if set tobigorsmall, change defaults forVM_CPUSandVM_RAMSIZE_MBaccordinglyVM_SSH: set the host port that the VMs SSH port will be forwarded from (default:2222)VM_HOST_ADDRESS: if set, constrain the host address of the forwarded SSH port (set this to127.0.0.1to prevent networked access to the port)
vm-o-matic contains logic to automatically allocate a local MAC address (by hashing the hostname, the bridge name and the directory name) for bridged networking.
Providing the bridge is listed in /etc/qemu/bridge.conf (e.g.
allow br0) then everything should work automatically:
make BRIDGE=br0Note: This feature may not work on all architectures since it relies on PCIe to attached the network device. It has been tested in AArch64 and x86-64.
An defconfig kernel usually has enough compiled built in to do a minimal boot (an arm64 one certainly does). For some recipes we can bypass grub and load a kernel directly.
cd debian-11-bullseye-amd64
# Let's assume `make install` has already been run!
make KERNEL=/path/to/linux/source/arch/arm64/boot/ImageNote that recipes that don't support this out-of-the-box will give you a helpful error message and some clues on how to fix it!