9p-vm-example/GNUmakefile

59 lines
1.9 KiB
Makefile

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