# Menuconfig

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Menuconfig
> Markdown URL: https://mediated.wiki/source/Menuconfig.md
> Source: https://en.wikipedia.org/wiki/Menuconfig
> Source revision: 1353523293
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Tool for compiling Linux source code

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages) This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: "Menuconfig" – news · newspapers · books · scholar · JSTOR (October 2009) (Learn how and when to remove this message) This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (March 2014) (Learn how and when to remove this message) (Learn how and when to remove this message)

menuconfig menuconfig for Linux version 4.4.2 Written in C Operating system Linux Type Build automation tool License GNU General Public License Website www.kernel.org

**make menuconfig** is one of five similar tools that can assist a user in configuring the [Linux](/source/Linux_kernel) kernel before building, a necessary step needed to [compile](/source/Compiler) the [source code](/source/Source_code). make menuconfig, with a menu-driven [user interface](/source/User_interface), allows the user to choose which features and modules to compile. It is normally invoked using the command make menuconfig; menuconfig is a target in the Linux [Makefile](/source/Makefile).

## Overview

make menuconfig was not in the first version of [Linux](/source/Linux_kernel). Prior to 2.5.45, the predecessor tool used [Configuration Menu Language](/source/Configuration_Menu_Language) (CML) and was a question-and-answer-based utility (make config, make oldconfig).

Variations of the tool for Linux configuration include:

- make xconfig, which requires [Qt](/source/Qt_(framework))

- make gconfig, which uses [GTK+](/source/GTK%2B)

- make nconfig, which is similar to make menuconfig.

All these tools use the **Kconfig** language internally. Kconfig is also used in other projects, such as [Das U-Boot](/source/Das_U-Boot), a bootloader for embedded devices, [Buildroot](/source/Buildroot), a tool for generating embedded Linux systems, and [BusyBox](/source/BusyBox), a single-executable shell utility toolbox for embedded systems.

make menuconfig is generally more user-friendly compared to the question-and-answer-based configuration tool make config, and has a basic search system.

If the user is satisfied with a previous .config file, using make oldconfig uses this previous file to answer all questions that it can, only interactively presenting the new features.

## Dependencies

To use make menuconfig, [Linux](/source/Linux_kernel) source is a requirement, a [make](/source/Make_(software)) tool, a [C](/source/C_Programming_Language) compiler, and the [ncurses](/source/Ncurses) library.

## See also

- [GNU Compiler Collection](/source/GNU_Compiler_Collection)

- [TUI](/source/Text-based_user_interface)

## References

- The make menuconfig tool itself.

- [Linux From Scratch](https://www.linuxfromscratch.org/lfs/view/stable/chapter10/kernel.html)

- [How to Build a Minimal Linux System](http://axiom.anu.edu.au/~okeefe/p2b/buildMin/buildMin-4.html) [Archived](https://web.archive.org/web/20091023234431/http://axiom.anu.edu.au/~okeefe/p2b/buildMin/buildMin-4.html) 2009-10-23 at the [Wayback Machine](/source/Wayback_Machine)

- [Creating custom kernels with Debian's kernel-package system](https://newbiedoc.sourceforge.net/tutorials/kernel-pkg/config-kernel-pkg.html.en)

- [Cross compiling Linux on IBM System z](http://www.ibm.com/developerworks/linux/linux390/howto.html#how_to_3)

- [How to roll your own Linux](http://www.freeos.com/articles/4258/)

- [Building A Kernel The Traditional Way](https://web.archive.org/web/20081011021914/http://www.howtoforge.org/kernel_compilation_fedora_p2)

- [The Linux Kernel HOWTO](http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO-4.html)

- [Kconfig language](https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt)

## External links

Wikibooks has a book on the topic of: ***[Linux kernel](https://en.wikibooks.org/wiki/Linux_kernel)***

Wikimedia Commons has media related to [Menuconfig](https://commons.wikimedia.org/wiki/Category:Menuconfig).

- [The Linux Kernel Archives](http://www.kernel.org)

v t e Linux kernel Organization Kernel Linux Foundation Linux Mark Institute Linus's law Tanenbaum–Torvalds debate Tux SCO disputes Linaro GNU GPL v2 menuconfig Supported computer architectures Version history Criticism Support Developers The Linux Programming Interface kernel.org LKML Linux conferences Users Linux User Group (LUG) People Werner Almesberger H. Peter Anvin Jens Axboe Moshe Bar Suparna Bhattacharya Andries Brouwer Rémy Card Alan Cox Matthew Garrett Avi Kivity Con Kolivas Greg Kroah-Hartman Robert Love David S. Miller Ingo Molnár Andrew Morton Hans Reiser Rusty Russell Shuah Khan Linus Torvalds Theodore Ts'o Stephen Tweedie Harald Welte Chris Wright Technical Debugging CRIU ftrace kdump Linux kernel oops SystemTap BPF eBPF Startup vmlinux System.map dracut initrd initramfs ABIs Linux Standard Base x32 ABI APIs Kernel System Call Interface POSIX ioctl select open read close sync … Linux-only futex epoll splice dnotify inotify readahead … In-kernel ALSA Crypto API io_uring DRM kernfs Memory barrier New API RCU Video4Linux IIO Userspace Daemons, File systems bpffs configfs devfs devpts debugfs FUSE hugetlbfs pipefs procfs securityfs sockfs sysfs tmpfs systemd udev Kmscon binfmt_misc Wrapper libraries C standard library glibc uClibc Bionic libhybris dietlibc EGLIBC klibc musl Newlib libcgroup libdrm libalsa libevdev libusb liburing Components Kernel modules BlueZ cgroups Console bcache Device mapper dm-cache dm-crypt DRM EDAC evdev Kernel same-page merging (KSM) LIO Framebuffer LVM KMS driver Netfilter Netlink nftables Network scheduler perf SLUB zram zswap Process and I/O schedulers: Brain Fuck Scheduler Completely Fair Scheduler (CFS) Earliest eligible virtual deadline first (EEVDF) Noop scheduler O(n) scheduler O(1) scheduler SCHED_DEADLINE SCHED_FIFO SCHED_RR Security Modules: AppArmor Exec Shield seccomp SELinux Smack Tomoyo Linux Linux PAM Device drivers 802.11 graphics Raw device initramfs KernelCare kexec kGraft kpatch Ksplice Variants Mainline Linux kernel Linux-libre High-performance computing INK Compute Node Linux SLURM Real-time computing RTLinux RTAI Xenomai PREEMPT_RT MMU-less μClinux PSXLinux Virtualization Hypervisor KVM Xen OS-level virtualization Linux-VServer Lguest LXC OpenVZ Other L4Linux User-mode Linux MkLinux coLinux Adoption Range of use Desktop Embedded Gaming Thin client: LTSP Server: LAMP LYME-LYCE Devices Adopters List of Linux adopters Linux portal Free and open-source software portal Category

---
Adapted from the Wikipedia article [Menuconfig](https://en.wikipedia.org/wiki/Menuconfig) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Menuconfig?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
