ARCH ?= $(shell uname -m) QEMU ?= qemu-system-$(ARCH) UBUNTU_ROOT ?= roots/ubuntu_wiredemo-admin.targetdisk.local SSH_PORT ?= 2222 ifeq ($(ARCH),x86_64) OVMF_ARCH := x64 else ifeq ($(ARCH),x86) OVMF_ARCH := ia32 else ifneq (,$(findstring arm,$(ARCH))) OVMF_ARCH := arm else OVMF_ARCH := $(ARCH) endif QEMU_OVMF ?= /usr/share/ovmf/$(OVMF_ARCH)/OVMF.*fd QEMUOPTS ?= -cpu max -enable-kvm -smp $(shell nproc) \ -nodefaults -no-user-config -nographic \ -chardev stdio,id=virtcons0 \ -device virtio-serial-pci \ -device virtconsole,chardev=virtcons0 \ -m 62G \ -net user,hostfwd=tcp::$(SSH_PORT)-:22 \ -net nic \ -device virtio-9p-pci,id=fs0,fsdev=fsdev-fs0,mount_tag=fs0 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ # -bios $(QEMU_OVMF) \ # -bios /usr/share/qemu/qboot.rom # -machine microvm,accel=kvm,rtc=on \ UBUNTU_ISO ?= iso/ubuntu/ubuntu-24.04.2-live-server-amd64.iso UBUNTU_ISO_ARGS ?= -drive file=$(UBUNTU_ISO),media=cdrom,id=virtiso1 \ # -device virtio-blk-pci,drive=virtiso1 \ # -kernel mnt/casper/vmlinuz \ # -append "earlyprintk=ttyS0" UBUNTU_FAT_ARGS ?= -drive file=fat:rw:$(UBUNTU_ROOT)/boot,id=virtiso1 \ $(UBUNTU_ROOT): mkdir -p $@ root1: $(UBUNTU_ROOT) roots/ubuntu_wiredemo-admin.wiredemo.local: mkdir -p $@ run1-installer: $(UBUNTU_ROOT) $(QEMU) $(QEMUOPTS) $(UBUNTU_ISO_ARGS) \ -fsdev local,security_model=mapped,id=fsdev-fs0,multidevs=remap,path=$< run1: $(UBUNTU_ROOT) $(QEMU) $(QEMUOPTS) \ -kernel $(UBUNTU_ROOT)/boot/$(shell cat $(UBUNTU_ROOT)/boot/vmlinuz) \ -append "earlyprintk=ttyS0 root=fs0 rw rootfstype=9p rootflags=trans=virtio,version=9p2000.L,msize=5000000,cache=mmap,posixacl console=ttyS0" \ -initrd $(UBUNTU_ROOT)/boot/$(shell cat $(UBUNTU_ROOT)/boot/initrd.img) \ -fsdev local,security_model=mapped,id=fsdev-fs0,multidevs=remap,path=$< .PHONY: root1 run1 run1-installer