Skip to content

daniel-thompson/vm-o-matic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vm-o-matic - Simple, semi-automatic QEMU recipes

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.

Example

cd debian-11-bullseye-amd64
make help
make install
make

Overriding default settings

vm-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 headless

A (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 to big or small, change defaults for VM_CPUS and VM_RAMSIZE_MB accordingly
  • VM_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 to 127.0.0.1 to prevent networked access to the port)

Bridged networking

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=br0

Note: 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.

Kernel hacking

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/Image

Note 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!

About

Simple, semi-automatic QEMU recipes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors