Search notes:

Linux kernel CONFIG symbols

The CONFIG_* symbols are defined in the various Kconfig files spread within Linux' source tree.
The actual values are stored in the .config file.

CONFIG_DEBUG_INFO

Needed to compile the kernel with debug symbols.

CONFIG_DRM

Direct rendering manager.

CONFIG_DRM_I915

For Systems with Intel Grpahics Media Accelerator or HD Graphics.

CONFIG_FUSE_FS

CONFIG_FUSE_FS is apparently needed for the ntfs-3g kernel module because ntfs-3g runs in user space (and depends on fuse).

CONFIG_IKCONFIG_PROC

Required for /proc/config.gz

CONFIG_SND

Advanced Linux sound architecture
See also CONFIG_SOUND, CONFIG_SOUND_PRIME

CONFIG_SND_HDA_CODEC_REALTEK

I needed this to enable this driver for my sound card.

CONFIG_SOUND

Support for Linux sound cards, minimum setting for ALSA.
See also CONFIG_SND, CONFIG_SOUND_PRIME

CONFIG_SOUND_PRIME

Deprecated.
See also CONFIG_SND, CONFIG_SOUND

CONFIG_INPUT_UINPUT

User level driver support, apparently needed for LFS: libevdev

TODO

Setting the config option OPT to m results in #define CONFIG_OPT_MODULE 1 in include/generated/autoconf.h.
The macros IS_BUILTIN, IS_MODULE, IS_ENABLED and IS_REACHABLE defined in include/linux/kconfig.h.

Some config options

EFI_HANDOVER_PROTOCOL Support for the deprecated EFI handover protocol which defines alternative entry points into the EFI stub (which has not basis in the UEFI specification). Although the corresponding support is not present in upstream GRUB or other bootloaders, most distros build GRUB with downstream patches applied which rely on the handover protocol. See also EFI_MIXED.
EFI_MIXED allows a 64-bit kernel to be booted on a 32-bit firmware (if CPU supported 64-bit mode). A mixed-mode enalbed kernal cannot be booted via the EFI boot stub, though - a bootloader that supports the EFI handover protocol must be used. See also EFI_HANDOVER_PROTOCOL
EFI_STUB allows bzImage to be loaded directly be EFI firmware without a bootloader. See Documentation/admin-guide/efi-stub.rst.
FB Frame buffer device (see also /dev/fbN)
HYPERV Hyper-V client drivers
HZ, HZ_100 etc. include/asm-generic/param.h defines HZ to the value of CONFIG_HZ and has the comment Internal kernel timer frequency. See also kernel/Kconfig.hz
INPUT_EVDEV Required for input device events to be accessible in /dev/input/eventX (which seems to be necessary for X Server ?)
PACKET The packet protocol allows applications (such as tcpdump) to communicate directly with network devices withou an intermediate network protocol. Apparently, PACKET needs to be enabled for wpa_supplicant.
X86, X86_32, X86_64

Modification of CONFIG symbols

As the Kernel is developed, CONFIG symbols are deleted, added or renamed with the potential consequence that make oldconfig won't necessarily produce a working Kernel anymore.
A list of new config symbols can be produced with
$ cp /path/to/old.config .config
$ make listnewconfig
The alternative brute force method is:
$ make oldconfig
$ scripts/diffconfig old.config .config

See also

init/Kconfig
configuration database
CONFIG_DEBUG_MUTEXES CONFIG_DYNAMIC_FTRACE EFI_STUB CONFIG_KASAN CONFIG_KEYBOARD_ATKBD CONFIG_LOCALVERSION CONFIG_LOCALVERSION_AUTO CONFIG_LOG_BUF_SHIFT CONFIG_MAGIC_SYSRQ CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE CONFIG_PHYSICAL_ALIGN CONFIG_PHYSICAL_START CONFIG_PREEMPT CONFIG_PRINTK_TIME SECURITY_YAMA CONFIG_SMP CONFIG_STACKTRACE_SUPPORT CONFIG_SYSFS CONFIG_TRACE_IRQFLAGS_SUPPORT CONFIG_BIGSMP CONFIG_X86_UP_APIC CONFIG_X86_UP_IOAPIC
/proc/config.gz contains the config option values with which the Kernel was built.

Index