Menuconfig

Revision as of 19:29, 5 March 2025 by imported>AnomieBOT (Dating maintenance tags: {{Promotional}})
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:Multiple issues

Template:Lowercase {{#invoke:Infobox|infobox}}Template:Template other{{#invoke:Check for unknown parameters | check | showblankpositional=1 | unknown = Template:Main other | preview = Page using Template:Infobox software with unknown parameter "_VALUE_"|ignoreblank=y | AsOf | author | background | bodystyle | caption | collapsetext | collapsible | developer | discontinued | engine | engines | genre | included with | language | language count | language footnote | latest preview date | latest preview version | latest release date | latest release version | latest_preview_date | latest_preview_version | latest_release_date | latest_release_version | licence | license | logo | logo alt | logo caption | logo upright | logo size | logo title | logo_alt | logo_caption | logo_upright | logo_size | logo_title | middleware | module | name | operating system | operating_system | other_names | platform | programming language | programming_language | released | replaced_by | replaces | repo | screenshot | screenshot alt | screenshot upright | screenshot size | screenshot title | screenshot_alt | screenshot_upright | screenshot_size | screenshot_title | service_name | size | standard | title | ver layout | website | qid }}Template:Main other 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.

OverviewEdit

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 Qt
  • make gconfig, which uses GTK+
  • 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, 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 versionsEdit

Template:Promotional 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 Template:Keypress 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.

Template:Anchor

DependenciesEdit

To use make menuconfig, Linux source is a requirement, a make tool, a C compiler, and the ncurses library.

See alsoEdit

ReferencesEdit

Template:Reflist Template:Refbegin

Template:Refend

External linksEdit

Template:Sister project Template:Sister project

Template:Linux kernel