menuconfig
{{Short description|Tool for compiling Linux source code}}
{{Multiple issues|{{primary sources |date= October 2009}}
{{no footnotes|date=March 2014}}}}
{{Lowercase|menuconfig}}
{{Infobox software
| name = menuconfig
| title =
| logo =
| logo caption =
| screenshot = Linux 4.4.2 ncurses configuration.png
| caption = menuconfig for Linux version 4.4.2
| collapsible =
| author =
| developer =
| released =
| discontinued =
| latest release version =
| latest release date =
| latest preview version =
| latest preview date =
| frequently updated =
| programming language = C
| operating system = Linux
| platform =
| size =
| language =
| status =
| genre = Build automation tool
| license = GNU General Public License
| alexa =
| website = {{URL|www.kernel.org}}
}}
make menuconfig
is one of five similar tools that can assist a user in configuring the Linux kernel before building, a necessary step needed to compile the source code. make menuconfig
, with a menu-driven 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.
Overview
make menuconfig
was not in the first version of Linux. The predecessor tool is a question-and-answer-based utility (make config
, make oldconfig
).
Variations of the tool for Linux configuration include:
make xconfig
, which requires Qtmake gconfig
, which uses GTK+make nconfig
, which is similar tomake menuconfig
.
All these tools use the Kconfig language internally. Kconfig is also used in other projects, such as Das U-Boot, a bootloader for embedded devices, Buildroot, a tool for generating embedded Linux systems, and BusyBox, a single-executable shell utility toolbox for embedded systems.
Advantages over earlier versions
{{Promotional|date=March 2025}}
Despite being a simple design, make menuconfig
offers considerable advantages to the question-and-answer-based configuration tool make config
, the most notable being a basic search system and the ability to load and save files with filenames different from ".config
". make menuconfig
allows navigation forwards or backwards directly between features, rather than make config
's approach of listing every single option one by one, which requires pressing the {{keypress|enter}} key repeatedly to view all options.
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. This is intended for a version upgrade, but may be appropriate at other times.
make menuconfig
is a light load on system resources unlike make xconfig
(uses Qt as of version 2.6.31.1, formerly Tk) or make gconfig
, which utilizes GTK+. Instead of editing the .config
by hand, make menuconfig
shows the descriptions of each feature (by pressing the "Help" button while on a menu option), and adds some (primitive in version 2.6.31.1) dependency checking.
The help information is distributed throughout the kernel source tree in the various files called Kconfig.
{{anchor|Requisites/Dependencies}}
Dependencies
See also
References
{{Reflist|2}}
{{Refbegin|2}}
- The
make menuconfig
tool itself. - [https://www.linuxfromscratch.org/lfs/view/stable/chapter10/kernel.html Linux From Scratch]
- [http://axiom.anu.edu.au/~okeefe/p2b/buildMin/buildMin-4.html How to Build a Minimal Linux System] {{Webarchive|url=https://web.archive.org/web/20091023234431/http://axiom.anu.edu.au/~okeefe/p2b/buildMin/buildMin-4.html |date=2009-10-23 }}
- [http://newbiedoc.sourceforge.net/tutorials/kernel-pkg/config-kernel-pkg.html.en Creating custom kernels with Debian's kernel-package system]
- [http://www.ibm.com/developerworks/linux/linux390/howto.html#how_to_3 Cross compiling Linux on IBM System z]
- [http://www.freeos.com/articles/4258/ How to roll your own Linux]
- [https://web.archive.org/web/20081011021914/http://www.howtoforge.org/kernel_compilation_fedora_p2 Building A Kernel The Traditional Way]
- [http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO-4.html The Linux Kernel HOWTO]
- [https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt Kconfig language]
{{Refend}}
External links
{{Wikibooks|Linux kernel}}
{{Commons}}
- [http://www.kernel.org The Linux Kernel Archives]
{{Linux kernel}}
Category:Linux configuration utilities