# Minimal Linux 6.18 guest configuration for Firecracker micro-VMs running # Docker (ermite-runner). This is a configuration *fragment*: scripts/build-kernel.sh # merges it over `make tinyconfig` and resolves dependencies with olddefconfig, # then fails if an option listed here did not survive. Per-architecture options # are in config-6.18.x86_64 and config-6.18.arm64, merged after this file. # --- Core --- CONFIG_64BIT=y CONFIG_SMP=y CONFIG_NR_CPUS=64 CONFIG_EXPERT=y CONFIG_PRINTK=y CONFIG_PRINTK_TIME=y CONFIG_KALLSYMS=y CONFIG_BUG=y CONFIG_TTY=y CONFIG_UNIX98_PTYS=y CONFIG_MULTIUSER=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_EVENTFD=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_AIO=y CONFIG_FHANDLE=y CONFIG_FILE_LOCKING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_POSIX_TIMERS=y CONFIG_HIGH_RES_TIMERS=y CONFIG_NO_HZ_IDLE=y CONFIG_BINFMT_ELF=y CONFIG_BINFMT_SCRIPT=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_KEYS=y CONFIG_SECCOMP=y CONFIG_SECCOMP_FILTER=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y CONFIG_SHMEM=y CONFIG_MODULES=n # --- Guest basics (x86-64 only options live in config-6.18.x86_64) --- CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_VIRTIO=y # --- virtio (Firecracker uses virtio-mmio) --- CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO=y CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y CONFIG_VIRTIO_BLK=y CONFIG_VIRTIO_NET=y CONFIG_VSOCKETS=y CONFIG_VIRTIO_VSOCKETS=y # --- Block, filesystems --- CONFIG_BLOCK=y CONFIG_BLK_DEV=y CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_SYSCTL=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_OVERLAY_FS=y CONFIG_FUSE_FS=y CONFIG_CRYPTO=y CONFIG_CRYPTO_CRC32C=y # --- Namespaces and cgroups v2 (Docker, runc) --- CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_TIME_NS=y CONFIG_CGROUPS=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y CONFIG_CPUSETS=y CONFIG_MEMCG=y CONFIG_BLK_CGROUP=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_BPF=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CGROUP_HUGETLB=y # --- Network --- CONFIG_NET=y CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_INET=y CONFIG_IP_PNP=y CONFIG_IPV6=y CONFIG_UNIX=y CONFIG_PACKET=y CONFIG_TUN=y CONFIG_VETH=y CONFIG_BRIDGE=y CONFIG_BRIDGE_NETFILTER=y CONFIG_VLAN_8021Q=y CONFIG_INET_DIAG=y CONFIG_INET_UDP_DIAG=y CONFIG_UNIX_DIAG=y CONFIG_NETLINK_DIAG=y CONFIG_SYN_COOKIES=y # --- netfilter: nftables, iptables compatibility, NAT --- CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y CONFIG_NETFILTER_NETLINK=y CONFIG_NF_CONNTRACK=y CONFIG_NF_NAT=y CONFIG_NF_TABLES=y CONFIG_NF_TABLES_INET=y CONFIG_NF_TABLES_IPV4=y CONFIG_NFT_CT=y CONFIG_NFT_NAT=y CONFIG_NFT_MASQ=y CONFIG_NFT_REJECT=y CONFIG_NFT_LIMIT=y CONFIG_NFT_LOG=y CONFIG_NFT_COMPAT=y CONFIG_NETFILTER_XTABLES=y CONFIG_NETFILTER_XTABLES_LEGACY=y CONFIG_NETFILTER_XT_NAT=y CONFIG_NETFILTER_XT_MARK=y CONFIG_NETFILTER_XT_CONNMARK=y CONFIG_NETFILTER_XT_TARGET_MASQUERADE=y CONFIG_NETFILTER_XT_TARGET_MARK=y CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y CONFIG_NETFILTER_XT_TARGET_CONNMARK=y CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y CONFIG_NETFILTER_XT_MATCH_COMMENT=y CONFIG_NETFILTER_XT_MATCH_MARK=y CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y CONFIG_IP_NF_IPTABLES_LEGACY=y CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_FILTER=y CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_RAW=y CONFIG_IP_NF_NAT=y CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_IP_NF_TARGET_REJECT=y