AmnesiaOS uses Linux 6.16.1 compiled from source with a lean, targeted configuration. The two non-negotiable requirements are initramfs/initrd support — so the kernel can unpack the CPIO archive into memory at boot — and tmpfs, so the entire root filesystem lives in RAM without any persistent storage device. The steps below walk through applying the base config, enabling the required options, building, and installing the kernel image.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/damianiglesias/amnesiaOS/llms.txt
Use this file to discover all available pages before exploring further.
Apply the base config
Start from the standard x86_64 defaults to get a sensible baseline before making AmnesiaOS-specific adjustments:
Enable required options
Use the
scripts/config helper to flip the three required options on and one off, then let make olddefconfig automatically resolve any dependent symbols:make olddefconfig ensures that any Kconfig symbols that depend on the options you just changed are set to their correct defaults — run it every time you modify the config outside of menuconfig.Build the kernel
Compile the kernel. The build output you need is the compressed kernel image at Build time varies from a few minutes on a fast workstation to 30+ minutes on slower hardware. Watch for any errors in the final link stage — warnings earlier in the build are usually harmless.
arch/x86/boot/bzImage:Key config options
| Config Option | Purpose |
|---|---|
CONFIG_BLK_DEV_INITRD | Enables loading an initramfs/initrd archive at boot — required for RAM-only operation |
CONFIG_TMPFS | Provides the RAM-backed tmpfs filesystem used as the root mount |
CONFIG_SQUASHFS | Compressed read-only filesystem support; required for a future SquashFS pivot_root workflow |
CONFIG_MODULE_SIG (disabled) | Disables kernel module signing, simplifying the build by removing the need for signing keys |
The final
.config produced by this build is exported and stored in config/kernel.config in the AmnesiaOS repository for reference. If you need to reproduce the exact configuration used for a tagged release, copy that file over the kernel source’s .config and run make olddefconfig before building.