MICROVM revision 1.1
11.1Simil# $NetBSD: MICROVM,v 1.1 2025/02/18 10:16:03 imil Exp $ 21.1Simil# 31.1Simil# MICROVM kernel configuration, for use with Qemu microvm machine type 41.1Simil# or Firecracker. 51.1Simil# Stripped-down configuration with no PCI, use VirtIO over MMIO virtual 61.1Simil# bus instead. ACPI is disabled as Firecracker doesn't support it, 71.1Simil# use legacy MP tables instead. 81.1Simil# 91.1Simil# Exemple qemu usage on a Linux host to boot a NetBSD guest: 101.1Simil# 111.1Simil# qemu-system-x86_64 \ 121.1Simil# -M microvm,x-option-roms=off,rtc=on,acpi=off,pic=off,accel=kvm \ 131.1Simil# -m 256 -cpu host -kernel ${KERNEL} \ 141.1Simil# -append "root=ld0a console=com rw -z" \ 151.1Simil# -display none -device virtio-blk-device,drive=hd0 \ 161.1Simil# -drive file=${IMG},format=raw,id=hd0 \ 171.1Simil# -device virtio-net-device,netdev=net0 \ 181.1Simil# -netdev user,id=net0,ipv6=off,hostfwd=::2200-:22 \ 191.1Simil# -global virtio-mmio.force-legacy=false -serial stdio 201.1Simil 211.1Similmachine i386 x86 xen 221.1Similinclude "conf/std" # MI standard options 231.1Similinclude "arch/xen/conf/std.xenversion" 241.1Simil 251.1Similoptions CPU_IN_CKSUM 261.1Similoptions EXEC_ELF32 # exec ELF binaries 271.1Similoptions EXEC_SCRIPT # exec #! scripts 281.1Similoptions MTRR 291.1Similoptions MULTIPROCESSOR 301.1Simil 311.1Similoptions CHILD_MAX=1024 # 160 is too few 321.1Similoptions OPEN_MAX=1024 # 128 is too few 331.1Simil 341.1Similmainbus0 at root 351.1Similcpu* at mainbus? 361.1Similioapic* at mainbus? apid ? 371.1Simil 381.1Similoptions INCLUDE_CONFIG_FILE # embed config file in kernel binary 391.1Similmaxusers 8 # estimated number of users 401.1Simil 411.1Similoptions INSECURE # disable kernel security levels - X needs this 421.1Simil 431.1Similoptions RTC_OFFSET=0 # hardware clock is this many mins. west of GMT 441.1Simil 451.1Similoptions PIPE_SOCKETPAIR # smaller, but slower pipe(2) 461.1Simil 471.1Simil# Xen PV support for PVH and HVM guests, needed for PVH boot 481.1Similoptions XENPVHVM 491.1Similoptions XEN 501.1Similhypervisor* at mainbus? # Xen hypervisor 511.1Similxenbus* at hypervisor? # Xen virtual bus 521.1Similxencons* at hypervisor? # Xen virtual console 531.1Simil 541.1Simil# Include NetBSD 10 compatibility 551.1Similoptions COMPAT_100 561.1Simil# 571.1Simil# Because gcc omits the frame pointer for any -O level, the line below 581.1Simil# is needed to make backtraces in DDB work. 591.1Simil# 601.1Similmakeoptions COPTS="-O2 -fno-omit-frame-pointer" 611.1Simil 621.1Simil# File systems 631.1Simil#include "conf/filesystems.config" 641.1Similfile-system FFS 651.1Similfile-system EXT2FS 661.1Similfile-system KERNFS 671.1Similfile-system MFS 681.1Similfile-system TMPFS 691.1Similfile-system PTYFS 701.1Similfile-system MSDOSFS 711.1Similfile-system PROCFS 721.1Simil 731.1Similoptions DKWEDGE_AUTODISCOVER 741.1Similoptions DKWEDGE_METHOD_GPT 751.1Simil# File system options 761.1Simil# ffs 771.1Similoptions FFS_NO_SNAPSHOT # No FFS snapshot support 781.1Similoptions WAPBL # File system journaling support 791.1Simil 801.1Simil# Networking options 811.1Simil#options GATEWAY # packet forwarding 821.1Similoptions INET # IP + ICMP + TCP + UDP 831.1Similoptions INET6 # IPV6 841.1Simil 851.1Simil# Kernel root file system and dump configuration. 861.1Similconfig netbsd root on ? type ? 871.1Simil 881.1Simil# 891.1Simil# Device configuration 901.1Simil# 911.1Simil 921.1Simil# ACPI will be used if present. If not it will fall back to MPBIOS 931.1Similoptions MPBIOS # configure CPUs and APICs using MPBIOS 941.1Simil# Provide bug-for-bug compatibility with Linux in MP Table searching 951.1Simil# and parsing. Firecracker relies on these bugs. 961.1Similoptions MPTABLE_LINUX_BUG_COMPAT 971.1Simil 981.1Simil#pci* at mainbus? bus ? 991.1Simil#acpi0 at mainbus0 1001.1Simil 1011.1Simil# ISA bus support 1021.1Similisa0 at mainbus? 1031.1Simil 1041.1Simil# ISA serial interfaces 1051.1Similcom0 at isa? port 0x3f8 irq 4 # Standard PC serial ports 1061.1Simil 1071.1Simil# Virtual bus for non-PCI devices 1081.1Similpv* at pvbus? 1091.1Simil 1101.1Simil## Virtio devices 1111.1Simil# Use MMIO by default 1121.1Similvirtio* at pv? 1131.1Simil#virtio* at acpi? 1141.1Simil#virtio* at pci? dev ? function ? # Virtio PCI device 1151.1Simil#viomb* at virtio? # Virtio memory balloon device 1161.1Simil 1171.1Similld* at virtio? # Virtio disk device 1181.1Similvioif* at virtio? # Virtio network device 1191.1Similviornd* at virtio? # Virtio entropy device 1201.1Similviocon* at virtio? 1211.1Simil 1221.1Similvio9p* at virtio? # Virtio 9P device 1231.1Simil#vioscsi* at virtio? 1241.1Simil#scsibus* at vioscsi? 1251.1Simil 1261.1Similpseudo-device md # memory disk device (ramdisk) 1271.1Simil#options MEMORY_DISK_HOOKS # enable md specific hooks 1281.1Simil#options MEMORY_DISK_DYNAMIC # enable dynamic resizing 1291.1Simil# 1301.1Similpseudo-device vnd # disk-like interface to files 1311.1Simil#options VND_COMPRESSION # compressed vnd(4) 1321.1Simil 1331.1Simil## network pseudo-devices 1341.1Similpseudo-device bpfilter # Berkeley packet filter 1351.1Similpseudo-device loop # network loopback 1361.1Simil 1371.1Simil## miscellaneous pseudo-devices 1381.1Similpseudo-device pty # pseudo-terminals 1391.1Simil# userland interface to drivers, including autoconf and properties retrieval 1401.1Similpseudo-device drvctl 1411.1Simil 1421.1Similfile-system PUFFS 1431.1Similpseudo-device putter 144