The Linux menuconfig system is a way to select which parts of the Linux kernel will be built using a graphical interface with search capabilities. It can be started by running ‘make menuconfig’ from the root of the Linux source code tree. This brings up an ncurses-based graphical interface that looks like the following:
The menuconfig system generates the menus by reading Kconfig files in the Linux source tree. Each Kconfig file may define any number of menu options, the type for each option, and any help information to explain the option. It may also include other Kconfig files, usually from sub-folders. The configuration defined by running menuconfig is usually saved to a file called ‘.config’ in the root of the Linux source tree. This file can be used by makefiles to control which source files in the Linux source tree will be built, and where the resulting object files will end up. In general, options with the value ‘y’ will have their object files in the main Linux kernel image, and options with the value ‘m’ will have their object files in a kernel module. Options with the value ‘n’ will not be built at all.