Research-Stack/4-Infrastructure/nano-kernel/nano-kernel.config

192 lines
3.6 KiB
Text

#
# Nano Kernel Configuration - Minimal Linux for Research Stack Appliance
# Target: RackNerd VPS (x86_64, VirtIO)
# Size: ~3-5MB compressed kernel + ~30MB initramfs
#
# Based on: Linux 6.12.x with embedded toolchain support
# Toolchain: musl libc, static linking preferred
#
# Essential config
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_SMP=y
CONFIG_SMP=y
CONFIG_NR_CPUS=8
CONFIG_SCHED_SMT=y
# Minimal kernel features
CONFIG_EXPERT=y
CONFIG_EMBEDDED=y
# Disable unnecessary subsystems
# (these save ~10MB+ of kernel size)
CONFIG_MODULES=n
CONFIG_MODULE_UNLOAD=n
CONFIG_KALLSYMS=n
CONFIG_KALLSYMS_ALL=n
CONFIG_SWAP=n
CONFIG_SYSVIPC=n
CONFIG_POSIX_MQUEUE=n
CONFIG_CROSS_MEMORY_ATTACH=n
CONFIG_USELIB=n
CONFIG_AUDIT=n
# Block layer - minimal
CONFIG_BLOCK=y
CONFIG_BLK_DEV=y
CONFIG_BLK_MQ_PCI=y
CONFIG_BLK_MQ_VIRTIO=y
# Filesystems - only ext4 and tmpfs
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_TMPFS=y
CONFIG_PROC_FS=y
CONFIG_SYSFS=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# Networking - minimal TCP/IP stack
CONFIG_NET=y
CONFIG_INET=y
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
CONFIG_NET_FOU=n
CONFIG_NET_FOU_IP_TUNNELS=n
# VirtIO drivers (for RackNerd VPS)
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_INPUT=y
# Block devices
CONFIG_BLK_MQ_PCI=y
CONFIG_VIRTIO_BLK_SCSI=n
# Console/TTY
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# kexec support (to go back to full kernel if needed)
CONFIG_KEXEC=y
CONFIG_KEXEC_FILE=y
CONFIG_CRASH_DUMP=n
# No graphics, no sound
CONFIG_FB=n
CONFIG_VGA_CONSOLE=n
CONFIG_VT_HW_CONSOLE_BINDING=n
CONFIG_DRM=n
CONFIG_SOUND=n
CONFIG_SND=n
# No wireless, minimal USB if any
CONFIG_WIRELESS=n
CONFIG_CFG80211=n
CONFIG_MAC80211=n
CONFIG_USB=n
CONFIG_USB_SUPPORT=n
CONFIG_USB_XHCI_HCD=n
# Minimal power management
CONFIG_PM=n
CONFIG_CPU_FREQ=n
CONFIG_CPU_IDLE=n
# Security - minimal
CONFIG_SECURITY=n
CONFIG_SECURITY_SELINUX=n
CONFIG_SECURITY_APPARMOR=n
CONFIG_SECURITY_SMACK=n
CONFIG_SECURITY_TOMOYO=n
# Crypto - only what's needed for networking
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_AES=y
# Debugging - none in production
CONFIG_DEBUG_KERNEL=n
CONFIG_DEBUG_FS=n
CONFIG_DYNAMIC_DEBUG=n
CONFIG_DEBUG_MISC=n
# Compression for kernel
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_ZSTD is not set
# Initramfs support
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=n
CONFIG_RD_LZMA=n
CONFIG_RD_XZ=n
CONFIG_RD_LZO=n
CONFIG_RD_LZ4=n
CONFIG_RD_ZSTD=n
# Shell options (for init)
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_SCRIPT=y
# No cgroups (minimal system)
CONFIG_CGROUPS=n
CONFIG_CGROUP_SCHED=n
CONFIG_CGROUP_PIDS=n
CONFIG_CGROUP_RDMA=n
CONFIG_CGROUP_FREEZER=n
CONFIG_CGROUP_DEVICE=n
CONFIG_CGROUP_CPUACCT=n
CONFIG_CGROUP_PERF=n
CONFIG_CGROUP_BPF=n
# No namespaces (single appliance)
CONFIG_NAMESPACES=n
CONFIG_UTS_NS=n
CONFIG_IPC_NS=n
CONFIG_USER_NS=n
CONFIG_PID_NS=n
CONFIG_NET_NS=n
# Memory - minimal
CONFIG_FLATMEM_MANUAL=y
CONFIG_SPARSEMEM_MANUAL=n
CONFIG_MEMORY_HOTPLUG=n
CONFIG_MEMORY_HOTREMOVE=n
# Disable huge pages (save memory)
CONFIG_TRANSPARENT_HUGEPAGE=n
CONFIG_HUGETLBFS=n
# Timer - minimal
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
# Performance monitoring - minimal
CONFIG_PERF_EVENTS=n
# Tracing - disabled
CONFIG_FTRACE=n
CONFIG_TRACING=n
CONFIG_PROBE_EVENTS=n
# Dynamic device management
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"