260 lines
5.7 KiB
Plaintext
260 lines
5.7 KiB
Plaintext
#
|
|
# Linux 6.6 LTS minimal config for UTSM dual-kernel guest
|
|
#
|
|
# Build: make utsm_x86_64_defconfig && make -j$(nproc) bzImage
|
|
#
|
|
# Key design choices:
|
|
# - 64-bit only (CONFIG_64BIT=y)
|
|
# - Serial console (8250/16550 at 0x3F8)
|
|
# - virtio: console, block, net, fs (for UTSM host backends)
|
|
# - EFI stub disabled (UTSM uses custom VMX boot, not EFI)
|
|
# - Built-in drivers (no module loading needed for Phase 1)
|
|
# - No SMP (single CPU for Phase 1 simplicity)
|
|
# - printk to serial for debugging
|
|
|
|
CONFIG_64BIT=y
|
|
CONFIG_X86_64=y
|
|
CONFIG_X86=y
|
|
CONFIG_INSTRUCTION_DECODER=y
|
|
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
|
|
CONFIG_ARCH_MMAP_RND_BITS_MIN=28
|
|
CONFIG_ARCH_MMAP_RND_BITS_MAX=32
|
|
CONFIG_GENERIC_ISA_DMA=y
|
|
CONFIG_GENERIC_BUG=y
|
|
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
|
|
CONFIG_GENERIC_HWEIGHT=y
|
|
CONFIG_ARCH_MMAP_RND_BITS=28
|
|
CONFIG_SMP=y
|
|
CONFIG_NR_CPUS=4
|
|
CONFIG_X86_64_SMP=y
|
|
CONFIG_SCHED_MC=y
|
|
CONFIG_SCHED_SMT=y
|
|
|
|
# Processor type
|
|
CONFIG_MK8=y
|
|
CONFIG_X86_CPU=y
|
|
CONFIG_X86_L1_CACHE_SHIFT=6
|
|
CONFIG_X86_TSC=y
|
|
CONFIG_X86_CMPXCHG64=y
|
|
CONFIG_X86_CMOV=y
|
|
CONFIG_X86_MINIMUM_CPU_FAMILY=64
|
|
CONFIG_PROCESSOR_SELECT=y
|
|
CONFIG_CPU_SUP_INTEL=y
|
|
CONFIG_CPU_SUP_AMD=y
|
|
CONFIG_CPU_SUP_CENTAUR=y
|
|
CONFIG_HPET_TIMER=y
|
|
CONFIG_HPET_EMULATE_RTC=y
|
|
CONFIG_DMI=y
|
|
|
|
# Memory
|
|
CONFIG_PHYS_ADDR_T_64BIT=y
|
|
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
|
|
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
|
CONFIG_DIRECT_GBPAGES=y
|
|
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
|
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
|
|
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
|
|
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
|
CONFIG_X86_PMEM_LEGACY=y
|
|
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
|
|
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
|
CONFIG_X86_RESERVE_LOW=64
|
|
CONFIG_MTRR=y
|
|
CONFIG_MTRR_SANITIZER=y
|
|
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
|
|
CONFIG_X86_PAT=y
|
|
CONFIG_ARCH_USES_PG_UNCACHED=y
|
|
CONFIG_ARCH_RANDOM=y
|
|
CONFIG_X86_SMAP=y
|
|
CONFIG_X86_INTEL_UMIP=y
|
|
CONFIG_X86_UMIP=y
|
|
|
|
# Power management (minimal)
|
|
CONFIG_PM=y
|
|
CONFIG_PM_CLK=y
|
|
|
|
# Bus options
|
|
CONFIG_PCI=y
|
|
CONFIG_PCI_DIRECT=y
|
|
CONFIG_PCI_MMCONFIG=y
|
|
CONFIG_PCI_DOMAINS=y
|
|
CONFIG_PCI_MSI=y
|
|
CONFIG_PCI_MSI_IRQ_DOMAIN=y
|
|
CONFIG_PCI_LABEL=y
|
|
CONFIG_ISA_DMA_API=y
|
|
CONFIG_AMD_NB=y
|
|
|
|
#Executable file formats
|
|
CONFIG_BINFMT_ELF=y
|
|
CONFIG_BINFMT_SCRIPT=y
|
|
CONFIG_BINFMT_MISC=y
|
|
|
|
# Networking
|
|
CONFIG_NET=y
|
|
CONFIG_PACKET=y
|
|
CONFIG_UNIX=y
|
|
CONFIG_INET=y
|
|
CONFIG_IP_MULTICAST=y
|
|
CONFIG_IP_ADVANCED_ROUTER=y
|
|
CONFIG_IP_PNP=y
|
|
CONFIG_IP_PNP_DHCP=y
|
|
CONFIG_SYN_COOKIES=y
|
|
CONFIG_TCP_CONG_CUBIC=y
|
|
|
|
# Device Drivers
|
|
# Serial console (critical: UTSM captures serial output)
|
|
CONFIG_SERIAL_8250=y
|
|
CONFIG_SERIAL_8250_CONSOLE=y
|
|
CONFIG_SERIAL_8250_PCI=y
|
|
CONFIG_SERIAL_8250_NR_UARTS=4
|
|
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
|
|
CONFIG_SERIAL_CORE=y
|
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
|
CONFIG_EARLY_PRINTK=y
|
|
CONFIG_EARLY_PRINTK_SERIAL=y
|
|
|
|
# PCI host bridge
|
|
CONFIG_PCI_HOST_GENERIC=y
|
|
|
|
# virtio (critical: UTSM provides virtio backends)
|
|
CONFIG_VIRTIO=y
|
|
CONFIG_VIRTIO_PCI=y
|
|
CONFIG_VIRTIO_PCI_LEGACY=y
|
|
CONFIG_VIRTIO_BALLOON=y
|
|
CONFIG_VIRTIO_INPUT=y
|
|
CONFIG_VIRTIO_MMIO=y
|
|
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
|
|
|
# virtio console (Phase 1.4: UTSM↔Linux console)
|
|
CONFIG_VIRTIO_CONSOLE=y
|
|
CONFIG_HW_RANDOM=y
|
|
CONFIG_HW_RANDOM_VIRTIO=y
|
|
|
|
# DRM + virtio-gpu (VSCode integration Phase 3: guest graphical output)
|
|
# Provides /dev/dri/card0 for Xorg modesetting + scanout to host framebuffer
|
|
CONFIG_DRM=y
|
|
CONFIG_DRM_VIRTIO_GPU=y
|
|
CONFIG_DRM_FBDEV_EMULATION=y
|
|
CONFIG_FB=y
|
|
CONFIG_FB_DEFERRED_IO=y
|
|
CONFIG_FRAMEBUFFER_CONSOLE=y
|
|
CONFIG_FB_TILEBLITTING=y
|
|
|
|
# VT + console (X server needs /dev/tty0 + VT_SWITCH)
|
|
CONFIG_VT=y
|
|
CONFIG_VT_CONSOLE=y
|
|
CONFIG_HW_CONSOLE=y
|
|
CONFIG_VT_HW_CONSOLE_BINDING=y
|
|
|
|
# Input evdev (VSCode integration Phase 2: virtio-input event devices)
|
|
# Required for /dev/input/eventX — X server evdev driver reads these
|
|
CONFIG_INPUT_EVDEV=y
|
|
|
|
# OverlayFS (VSCode integration Phase 4: rw layer over read-only rootfs)
|
|
# /sbin/init mounts overlay -o lowerdir=/,upperdir=/tmp/rw/upper,workdir=/tmp/rw/work /
|
|
CONFIG_OVERLAY_FS=y
|
|
|
|
# tmpfs xattr (overlayfs workdir needs xattr support)
|
|
CONFIG_TMPFS_XATTR=y
|
|
CONFIG_TMPFS_POSIX_ACL=y
|
|
|
|
# UTSM dual-kernel hypercall and IPC driver (Phase 1.3)
|
|
CONFIG_UTSM_HCALL=y
|
|
|
|
# virtio block (Phase 2: block device)
|
|
CONFIG_VIRTIO_BLK=y
|
|
CONFIG_VIRTIO_BLK_SCSI=y
|
|
|
|
# virtio net (Phase 2: network)
|
|
CONFIG_VIRTIO_NET=y
|
|
|
|
# virtio-fs (Phase 1.5: shared filesystem)
|
|
CONFIG_VIRTIO_FS=y
|
|
CONFIG_FUSE_FS=y
|
|
|
|
# Filesystems
|
|
CONFIG_EXT4_FS=y
|
|
CONFIG_EXT4_USE_FOR_EXT2=y
|
|
CONFIG_FAT_FS=y
|
|
CONFIG_VFAT_FS=y
|
|
CONFIG_FAT_DEFAULT_CODEPAGE=437
|
|
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
|
|
CONFIG_TMPFS=y
|
|
CONFIG_PROC_FS=y
|
|
CONFIG_PROC_SYSCTL=y
|
|
CONFIG_SYSFS=y
|
|
CONFIG_DEVTMPFS=y
|
|
CONFIG_DEVTMPFS_MOUNT=y
|
|
|
|
# Block devices
|
|
CONFIG_BLK_DEV=y
|
|
CONFIG_BLK_DEV_LOOP=y
|
|
|
|
# Input (minimal)
|
|
CONFIG_INPUT=y
|
|
CONFIG_INPUT_KEYBOARD=y
|
|
|
|
# RTC
|
|
CONFIG_RTC_LIB=y
|
|
CONFIG_RTC_CLASS=y
|
|
CONFIG_RTC_HCTOSYS=y
|
|
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
|
|
|
|
# PNP/ACPI (minimal for QEMU)
|
|
CONFIG_ACPI=y
|
|
CONFIG_ACPI_AC=y
|
|
CONFIG_ACPI_BUTTON=y
|
|
CONFIG_ACPI_FAN=y
|
|
CONFIG_ACPI_PROCESSOR=y
|
|
CONFIG_ACPI_THERMAL=y
|
|
|
|
# File systems
|
|
CONFIG_FHANDLE=y
|
|
|
|
# Kernel hacking
|
|
CONFIG_PRINTK=y
|
|
CONFIG_PRINTK_TIME=y
|
|
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
|
|
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
|
|
CONFIG_DEBUG_INFO=y
|
|
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
|
|
CONFIG_FRAME_WARN=2048
|
|
CONFIG_MAGIC_SYSRQ=y
|
|
CONFIG_DEBUG_KERNEL=y
|
|
CONFIG_DEBUG_RODATA=y
|
|
CONFIG_DEBUG_SET_MODULE_RONX=y
|
|
CONFIG_DEBUG_WX=y
|
|
|
|
# Security (minimal)
|
|
CONFIG_SECURITY=y
|
|
CONFIG_SECURITYFS=y
|
|
|
|
# Crypto (minimal)
|
|
CONFIG_CRYPTO=y
|
|
CONFIG_CRYPTO_CRC32C=y
|
|
CONFIG_CRYPTO_SHA256=y
|
|
|
|
# Library routines
|
|
CONFIG_CRC16=y
|
|
CONFIG_CRC32=y
|
|
CONFIG_ZLIB_INFLATE=y
|
|
CONFIG_ZLIB_DEFLATE=y
|
|
CONFIG_LZO_COMPRESS=y
|
|
CONFIG_LZO_DECOMPRESS=y
|
|
CONFIG_XZ_DEC=y
|
|
CONFIG_XZ_DEC_X86=y
|
|
|
|
# Initramfs
|
|
CONFIG_BLK_DEV_INITRD=y
|
|
CONFIG_INITRAMFS_SOURCE=""
|
|
|
|
# No module support (build everything in for Phase 1)
|
|
# CONFIG_MODULES is not set
|
|
|
|
# No EFI stub (UTSM uses custom VMX boot)
|
|
# CONFIG_EFI_STUB is not set
|
|
# CONFIG_EFI is not set
|
|
|
|
# Boot protocol
|
|
CONFIG_EARLY_PRINTK_SERIAL=y
|