mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-30 18:56:16 +00:00
192 lines
3.6 KiB
Text
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"
|