Fact-checked by Grok 2 weeks ago

menuconfig

Menuconfig is a text-based, ncurses-based for configuring the , invoked through the command make menuconfig, which enables users to interactively select and customize kernel options such as features, drivers, and modules to generate a .config file that dictates the kernel's compilation parameters. This tool is part of the broader Kconfig configuration system, which uses a declarative to define dependencies and hierarchical menus of options, allowing for tailored kernel builds that support specific hardware, performance needs, or embedded systems requirements. The interface organizes options into categorized menus—such as General setup, Device Drivers, and File systems—navigable via keyboard arrows, with the spacebar used to toggle selections between built-in (<*>, compiled directly into the ), modular (<M>, compiled as loadable modules), or disabled (< >). Additional functionalities include searching for options with the / key, viewing help text with ?, and saving or loading configurations to streamline iterative development. Upon completion, menuconfig processes the selections to produce the .config file, which is then used by the 's build system (Kbuild) to compile only the necessary components, optimizing for size and efficiency. Menuconfig plays a crucial role in Linux kernel development and customization, particularly in environments without graphical displays, such as servers or embedded devices, where it facilitates precise control over the monolithic kernel's vast array of over 32,000 configurable symbols as of version 6.16. While alternatives like the graphical xconfig (Qt-based) or gconfig (GTK+-based) exist for visual environments, and simpler text-based config for scripted use, menuconfig remains popular for its balance of usability and accessibility in terminal sessions. Its integration with Kconfig ensures dependency resolution, preventing invalid configurations and promoting modular kernel designs.

Introduction

Definition and Purpose

Menuconfig is a text-based, menu-driven used to configure the prior to compilation. It is invoked by running the command make menuconfig from the kernel source directory, providing an interactive way for users to navigate and select kernel options. The primary purpose of menuconfig is to allow developers and users to customize kernel features, drivers, and modules through a hierarchical menu system, enabling the selection of components to include in the build as built-in, modular, or excluded. This process generates a .config file that specifies the build parameters, which is then used by the kernel's Makefile to compile a tailored kernel image. As a frontend to the Kconfig configuration language, menuconfig streamlines the otherwise complex task of editing configuration files manually. Menuconfig is primarily employed in Linux kernel development and customization, where it supports efficient for various hardware platforms and use cases. Beyond the kernel, it has been adopted in other open-source projects for similar needs, including U-Boot via make menuconfig in its build system, for embedded Linux systems through its kernel-like tool, and for selecting applets in its multi-tool binary.

Historical Development

Prior to the development of menuconfig, Linux kernel configuration relied on simpler tools. The original method, introduced with the initial releases in 1991, was the command-line "make config" interface, which prompted users interactively with a series of yes/no questions to set kernel options in a linear fashion. This approach became cumbersome as the kernel evolved. In the mid-1990s, the Configuration Menu Language (CML) was introduced to provide a more structured menu-based system for handling dependencies among options, primarily in kernel versions up to 2.4.x. Menuconfig emerged as part of a major overhaul of the 's configuration system. Developed by Roman Zippel, it was first integrated into the Linux 2.5.45 development in late 2002, replacing the outdated CML with the new Kconfig language. This shift addressed scalability challenges arising from the rapid growth in kernel options; by 2002, the kernel featured over 2,900 configurable items, far exceeding the 1,000 mark from earlier years and straining the handling and of prior tools. Kconfig, paired with menuconfig's ncurses-based , improved support for complex dependencies and hierarchical menus, making configuration more efficient for the expanding codebase driven by new hardware support and features. Following its debut in the 2.5 development series, menuconfig was fully integrated into the stable mainline kernel with the 2.6 release in December 2003, becoming the default interactive frontend alongside alternatives like xconfig. Its adoption extended beyond the kernel to other open-source projects, beginning with in early 2003, where it facilitated configuration of the lightweight utility suite for systems. As the kernel matured through the 3.x series, menuconfig received incremental enhancements for better usability, allowing users to locate options more effectively amid thousands of entries. These updates were motivated by ongoing needs for improved dependency resolution and intuitive as the kernel's option count continued to grow linearly, reaching over 10,000 by the mid-2010s and exceeding 32,000 as of 6.11 in 2024.

Technical Overview

Kconfig Language Integration

Kconfig serves as a (DSL) for defining the kernel's configuration options, enabling the specification of build-time choices that determine which features and drivers are included in the compiled kernel. It utilizes files such as Kconfig for primary definitions and Kconfig.defconfig for default configurations, where options are declared using constructs like config, menuconfig, choice, and menu to organize a hierarchical structure of prompts, types, and dependencies. Configuration options support types including bool for binary yes/no selections, tristate for modular (y/m/n) choices allowing built-in, modular, or disabled states, and string for text-based values, each accompanied by a prompt string that provides a user-facing description. Dependencies are enforced through statements like depends on <expr> to conditionally hide or require options based on other selections, and select <symbol> to automatically enable dependent symbols, ensuring logical consistency across the configuration. Menuconfig interfaces with Kconfig by parsing these files from the source tree to construct a navigable menu hierarchy that mirrors the of the codebase. It begins at the top-level Kconfig in the source root and recursively processes source statements to include subdirectory files, such as those in drivers/ for device drivers or fs/ for filesystems, thereby organizing options into thematic menus that reflect the 's modular architecture. This parsing builds an internal representation of the configuration tree, evaluating expressions to determine option visibility and default values at runtime. During operation, menuconfig resolves dependencies dynamically to prevent invalid configurations by enabling or disabling options based on user selections and Kconfig rules. For instance, an option like CONFIG_USB might include depends on USB_SUPPORT, which hides it unless CONFIG_USB_SUPPORT is enabled, while a select could force inclusion of related symbols like storage drivers when USB is chosen. This resolution propagates through the , updating the menu in real-time to maintain configuration validity without allowing contradictory choices. Upon completion, menuconfig generates a .config file containing the selected options in a simple KEY=VALUE format, such as CONFIG_USB=y or CONFIG_FOO="bar", which serves as input for the 's Makefiles during the build process to conditionally compile code paths. This output ensures that only enabled features are incorporated, optimizing the resulting for the target system.

User Interface and Features

Menuconfig provides a text-based (TUI) built on the library, enabling users to navigate and configure options in a terminal environment without requiring a graphical display. The interface organizes configuration options into a hierarchical menu structure, with top-level categories such as "General setup," "Device Drivers," and "File systems" leading to nested submenus that reflect kernel subsystems. This tree-like layout allows users to drill down into specific areas, with each menu displaying selectable items marked by symbols like [*] for enabled built-in options, for modules, or [ ] for disabled choices. Core interaction relies on keyboard navigation, using to highlight options, Enter to enter submenus or confirm selections, and the Space bar or hotkeys (e.g., Y for built-in, M for , N to disable) to toggle choices. A search function, activated by the / , scans menu entries for keywords, while F8 invokes a symbol search supporting regular expressions to locate specific config symbols across the hierarchy. Help information, drawn from Kconfig descriptions, is accessible via the ? or H , displaying detailed explanations in a scrollable text navigable with or VI-style bindings (h, j, k, l). Advanced features include dependency management, where unmet dependencies cause options to appear grayed out or invisible until prerequisites are satisfied, ensuring consistency. Users can load existing configurations from files like .config or custom paths via the main menu, and save changes using F6 or the S hotkey, with prompts to confirm modifications before exiting. Symbol jumping from search results directly navigates to the relevant menu location, and limited customization is available through environment variables, such as MENUCONFIG_COLOR for color themes, though the interface remains primarily keyboard-driven with fixed bindings like for backtracking or exiting dialogs.

Usage and Operation

Invoking and Basic Commands

To invoke menuconfig, first obtain the source tree by cloning the official repository from or by downloading and extracting a release tarball. From the root directory of this prepared source tree, execute the command make menuconfig, which launches the -based textual for kernel configuration and generates or updates the .config file based on user selections. This invocation assumes a clean source environment without conflicting build artifacts, and it requires the ncurses development libraries for proper terminal rendering. It is standard practice to prepare a baseline configuration before running menuconfig by executing make defconfig, which populates the .config file with architecture-specific default values from files such as arch/$ARCH/configs/defconfig or arch/$ARCH/configs/${[PLATFORM](/page/Platform)}_defconfig. This step ensures a sensible starting point for customization, particularly when targeting a specific or . Several command-line options enhance flexibility during invocation. To target a specific , prefix the command with ARCH=<architecture>, for example, make ARCH=arm menuconfig; the default is the host if unspecified. For cross-compilation, set the toolchain prefix via CROSS_COMPILE=<prefix>-, such as make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig. Verbose output can be enabled with V=1 to display detailed processing information, and an output directory separate from the source can be specified using O=<directory>, like make O=out menuconfig. Exiting menuconfig is handled by selecting the option or pressing the 'Q' key at the top-level menu, which prompts the user to confirm whether to save changes to .config. Responding 'Yes' saves the configuration, 'No' discards any modifications and exits, while 'Abort' returns to the menu without saving or exiting. Menuconfig provides a text-based interface for navigating the hierarchical structure of kernel configuration options, which are organized into menus and submenus based on the Kconfig language. Users primarily rely on keyboard input to interact with the interface, as it operates within a terminal environment using the ncurses library. Arrow keys (up/down) are used to highlight options or submenus, while the Enter key selects a highlighted item to enter a submenu or confirm a choice. The left/right arrow keys or Tab cycle through bottom menu tabs for actions like Select, Exit, and Help. Page Up and Page Down keys scroll through long lists of options. Pressing the highlighted hotkey letter (e.g., the first letter of an option name) provides a shortcut to jump to that item, and repeating the hotkey cycles through multiple instances. To search for specific symbols, users press the forward slash (/) key, which opens a dialog to query and locate options along with their dependencies and locations. For help on an option, the question mark (?) key displays detailed information, including rationale and dependencies. Editing configurations involves toggling options, which are typically tristate (yes, module, or no) to support built-in kernel features, loadable modules, or exclusions. The Space bar cycles through these states for a highlighted option: 'y' enables it as built-in (integrated into the kernel image), 'm' builds it as a loadable module, and 'n' disables it. Numeric or string values are edited by highlighting the option and pressing Enter, then inputting the value and confirming with Enter. When an option is enabled (set to 'y' or 'm'), menuconfig automatically propagates changes to dependent options, selecting prerequisites to matching states (e.g., enabling a driver module may auto-select its required subsystem as 'm') to ensure consistency and avoid build errors. Mutually exclusive options, defined via Kconfig constraints, are handled by visibility rules; attempting to enable a conflicting option may hide or disable the other, with prompts appearing if manual resolution is needed. Tristate options facilitate modular builds by allowing selective loading at runtime, reducing kernel size while maintaining flexibility. Saving configurations updates the .config file in the source root, which serves as the persistent record of selections for subsequent builds. Upon exiting menuconfig (by pressing repeatedly until prompted), users are asked whether to save changes; confirming overwrites .config and creates a as .config.old for . Menuconfig also offers options at the main menu to "Save an Alternate ," allowing export to a custom filename for versioning or portability. To load an existing configuration, users can invoke menuconfig on a pre-existing .config (it loads automatically if present) or select "Load an Alternate " from the main menu to import from another path. For incremental updates from a prior version, the make oldconfig command can be used outside menuconfig to load .config and interactively resolve new options before entering menuconfig for further edits. Common workflows include starting from scratch (defaulting to all 'n' for a minimal ) versus incremental changes (loading an existing .config and toggling only necessary options), with dependency propagation minimizing manual conflict resolution in most cases.

Comparisons and Alternatives

Graphical Alternatives

The Linux kernel offers graphical frontends for interacting with the Kconfig system, providing visual representations of configuration options that differ from menuconfig's text-based menu structure. The make xconfig tool, a Qt-based interface, enables mouse-driven navigation and displays options in hierarchical tree views, facilitating easier exploration of dependencies and categories compared to menuconfig's linear menus. Introduced during the transition to the modern Kconfig system in the early , xconfig requires a graphical environment and Qt libraries for operation. Similarly, make gconfig serves as a GTK-based graphical frontend, introduced around and offering comparable tree-based and mouse support to xconfig but with a potentially lighter resource footprint due to GTK's design. It is particularly suited for systems with GTK libraries installed, allowing users to toggle options via point-and-click interactions in a windowed . Like xconfig, gconfig emphasizes over menuconfig's keyboard-centric approach, making it ideal for workflows.

Text-Based Alternatives

Text-based frontends provide alternatives to menuconfig within terminal environments, maintaining compatibility with low-resource systems while varying in layout and interaction. The make nconfig command, utilizing the library and introduced in Linux kernel 2.6.35 (2010), presents a similar menu-driven interface to menuconfig but with a redesigned layout featuring bottom-mounted prompts for actions like search and help. This allows for more efficient keyboard navigation in full-screen mode, differing from menuconfig's top-heavy design. The make config target represents a text , operational since before the widespread adoption of Kconfig in 2002, where it prompts users sequentially with yes/no questions for each option in a linear, non-hierarchical fashion. This Q&A style lacks the symbolic menu structure of menuconfig, making it simpler but less intuitive for complex configurations. Additionally, make oldconfig updates an existing .config file non-interactively by defaulting known options and prompting only for new symbols introduced in the current kernel version, streamlining upgrades without full reconfiguration.

Automated and Other Tools

Beyond interactive frontends, the build system includes automated targets for generating configurations without user input, useful for scripting and testing. The make allyesconfig command creates a .config file by enabling all possible options (set to 'y'), while make allnoconfig disables as many as possible (set to 'n'), both respecting dependencies to produce valid setups for broad or minimal builds. These tools bypass visual or menu interfaces entirely, focusing on batch generation. Web-based configurators represent a modern evolution, enabling remote or collaborative configuration via browsers. Tools like kconfig-webconf, developed post-2015, integrate Kconfig parsing into web interfaces with added capabilities such as performance impact visualization, allowing users to experiment with options without local kernel sources. These differ from menuconfig by leveraging for dynamic trees and simulations, suitable for distributed development environments.

Use Cases

Graphical frontends such as xconfig and gconfig excel in GUI-equipped desktops where visual trees and mouse input accelerate option selection for developers unfamiliar with keyboard shortcuts, contrasting menuconfig's efficiency in resource-constrained terminals. Text alternatives like nconfig suit embedded or server setups requiring support, offering layout variations for prolonged sessions without graphical overhead. Automated tools like allyesconfig and allnoconfig support pipelines for exhaustive testing, while web-based options like kconfig-webconf aid team-based prototyping in or remote scenarios.

Advantages and Limitations

Menuconfig provides an efficient configuration interface for users operating in terminal-based environments, avoiding the overhead associated with graphical user interfaces and thus requiring minimal additional or CPU resources. Its text-based design makes it particularly suitable for remote sessions over SSH or systems with limited graphical capabilities, such as servers and embedded devices. For instance, it remains a common choice in builds for custom embedded images, where lightweight tools are preferred. The tool excels in handling the extensive set of configuration options in modern kernels, which number in the thousands and enable precise without overwhelming the through structured menus and search functionality. Navigation is streamlined with keyboard-driven menus, radiolists, and dialogs that allow quick jumping between categories and searching for specific symbols (via F8 or / key), facilitating efficient exploration of large option sets. Compared to the linear "make config" method, menuconfig permits skipping irrelevant questions by enabling non-sequential browsing, reducing the time needed for iterative adjustments. Despite these strengths, menuconfig has notable limitations, particularly in user-friendliness and visual aids. It lacks mouse support and graphical elements like dependency diagrams, which are available in alternatives such as xconfig, making it less intuitive for visualizing complex inter-option relationships. Beginners may face a steep due to its reliance on keyboard shortcuts and ncurses-based , without built-in tutorials beyond embedded help text. Additionally, it imposes terminal size constraints, requiring at least 19 lines by 80 columns to function properly, which can hinder use on small displays or serial consoles. While menuconfig supports basic search and help features, it offers limited modern enhancements like integrated views for comparing configurations, though some rudimentary comparison capabilities have been available since earlier versions. In GUI-heavy workflows, it can feel outdated, as graphical frontends provide better accessibility for dependency mapping and visual editing. Overall, menuconfig strikes a balance between interactivity and simplicity, prioritizing terminal efficiency over advanced visualization, which suits server and embedded use cases but may not ideal for all scenarios.

Dependencies and Requirements

Software Prerequisites

To run menuconfig, the terminal-based configuration interface for the kernel's Kconfig system, several core software dependencies are required, primarily centered on libraries for rendering and build tools for support. The library is essential for the text-based , providing the necessary functions for menu navigation and display in a terminal environment; it can be installed on Debian-based systems via package managers such as sudo apt install libncurses-dev. Build tools form another critical set of prerequisites, including GNU Make version 4.0 or higher for orchestrating the configuration process, a C compiler such as version 8.1 or later, or version 15.0 or later, and kernel source headers to ensure compatibility during invocation. Additionally, (required since 4.18) is needed to detect installed Kconfig tools. If rebuilding the Kconfig parsing scripts is necessary, tools like version 2.0 or later and Flex version 2.5.35 or later are required to generate the necessary lexical analyzers and parsers. Menuconfig operates on Unix-like systems, particularly distributions, where these dependencies are readily available through standard repositories; for cross-compilation to non-native architectures, a target-specific such as arm-linux-gnueabihf-gcc must be installed to handle architecture-dependent configurations. On or systems, a comprehensive installation of prerequisites can be achieved with sudo apt-get install build-essential libncurses-dev [bison](/page/Bison) flex [pkg-config](/page/Pkg-config), which bundles the core tools including Make, , and ncurses development headers; successful setup is verified by running make menuconfig in the source directory without errors related to missing libraries.

Environment and Compatibility Considerations

Menuconfig operates as a text-based reliant on the library, necessitating a capable such as or that supports features like 256-color rendering and dynamic resizing to ensure proper display and navigation. In contrast, minimal console environments, including serial terminals, may exhibit input handling issues with applications. The tool is natively supported on operating systems as part of the kernel build process. On Windows, menuconfig can be emulated using environments like or MSYS2, which provide compatibility for tools, though performance may vary due to layer overhead; alternatively, (WSL), available since its initial release in 2016, offers a more direct environment for seamless operation. In embedded systems, menuconfig integrates with build frameworks such as Yocto and , where it is typically invoked via bitbake commands like bitbake -c menuconfig virtual/kernel to configure kernel options without disrupting the overall project workflow. Menuconfig has been compatible with Linux kernel versions since 2.6, providing consistent configuration capabilities across releases. For kernels 5.15 and later (starting from 2021), compatibility with newer versions is essential to leverage enhanced interface features, while cross-architecture support is enabled through the ARCH= during invocation, allowing configurations for non-host architectures like or x86 without modification. Common runtime issues include failure to launch if ncurses libraries are absent, in which case the build system prompts fallback to the simpler "make config" target for text-based prompting without graphical elements. Additionally, large configuration files may experience slower loading times in resource-constrained environments.

References

  1. [1]
    Configuration targets and editors — The Linux Kernel documentation
    ### Role of menuconfig in Kconfig System for Linux Kernel Configuration
  2. [2]
    Menuconfig or how to configure kernel - stm32mpu - ST wiki
    The Linux® kernel configuration is found in the generated file: .config. .config is the result of configuring task which is processing platform defconfig and ...
  3. [3]
    Building and Installing Custom Linux Kernels - Documentation
    The menuconfig kernel config editor is a simple and popular text-based configuration utility that consists of menus, radio button lists, and dialogs. It has a ...<|control11|><|separator|>
  4. [4]
    Modifying the configuration - Linux Kernel in a Nutshell [Book]
    There are three different interactive kernel configuration tools: a terminal-based one called menuconfig , a GTK+-based graphical one called gconfig , and a QT- ...
  5. [5]
    Configuration targets and editors - The Linux Kernel documentation
    MENUCONFIG_COLOR. It is possible to select different color themes using the variable MENUCONFIG_COLOR. To select a theme use: make MENUCONFIG_COLOR=<theme> ...
  6. [6]
    [PDF] Kernel configuration and building in Linux 2.5
    The first part of this paper will give an overview of the user-visible changes which oc- cured in Linux 2.5, on the one hand for users which build kernels ...
  7. [7]
    Makefiles — Das U-Boot unknown version documentation
    These people type commands such as “make menuconfig” or “make”. They usually do not read or edit any kernel Makefiles (or any other source files). Normal ...
  8. [8]
    The Buildroot user manual
    Buildroot has a nice configuration tool similar to the one you can find in the Linux kernel or in BusyBox. From the buildroot directory, run $ make menuconfig.
  9. [9]
    BusyBox
    Now the usual "make defconfig", "make menuconfig", "make" work. Some parts won't compile (not all kernel headers are present, libc API different or incomplete, ...FAQ · About · Command Help · Of /downloads/binaries
  10. [10]
    ChangeLog-2.5.46 - The Linux Kernel Archives
    Recent kbuild changes means that make clean fails on ARM because we try to decend into "arch/arm/mach-" which doesn't exist. This cset fixes this by excluding ...
  11. [11]
    The Kernel Configuration and Build Process - Linux Journal
    May 1, 2003 · This article describes the format of the makefile and configuration files in the 2.5 kernel and shows how to add a new driver to the build process.Missing: 2.5.46
  12. [12]
    The CML2 Language - catb. Org
    This paper describes CML2, the Configuration Menu Language designed to support Linux kernel configuration. It is written as a historical narrative because that ...
  13. [13]
    New Linux Kernel Configuration System - OSnews
    Sep 7, 2002 · Roman Zippel recently released version 0.4 of his new configuration system for the 2.5 Linux kernel, a replacement for the aging CML ...Missing: Kconfig | Show results with:Kconfig
  14. [14]
    How Configurable is the Linux Kernel? Analyzing Two Decades of ...
    A comprehensive, empirical study of the Linux kernel's configurability, which spans its feature model's entire history from 2002 to 2024.
  15. [15]
    [BusyBox] New feature for menuconfig
    [BusyBox] New feature for menuconfig · Previous message: [BusyBox] Re: Busybox- tutorial needed for installing · Next message: [BusyBox] mkfs.
  16. [16]
    Linux_3.7 - Linux Kernel Newbies
    Linux 3.7 has been released on 10 Dec 2012. Summary: This Linux release includes support for the ARM 64-bit architecture, ARM support to boot into different ...
  17. [17]
    Kconfig Language - The Linux Kernel documentation
    The configuration file describes a series of menu entries, where every line starts with a keyword (except help texts). The following keywords end a menu entry:.
  18. [18]
    None
    ### Key Bindings and Features of Menuconfig Interface
  19. [19]
    HOWTO do Linux kernel development — The Linux Kernel documentation
    ### Summary: Obtaining and Preparing Linux Kernel Source Tree for Building
  20. [20]
    Linux Kernel Makefiles
    Linux kernel Makefiles have five parts: top Makefile, .config, arch Makefile, common rules, and kbuild Makefiles. The top Makefile builds vmlinux and modules.
  21. [21]
    How to quickly build a trimmed Linux kernel
    You at this point can use a command like make menuconfig to enable or disable certain features using a text-based user interface; to use a graphical ...
  22. [22]
  23. [23]
    The Linux kernel - Raspberry Pi Documentation
    The official documentation for Raspberry Pi computers and microcontrollers. ... For more information about menuconfig , see the kernel configuration instructions.
  24. [24]
    Configure Kernel with make menuconfig - PHB Crystal Ball
    Aug 12, 2025 · Get started with kernel configuration - use make menuconfig to navigate through options and customize your Linux system with ease.
  25. [25]
    How to save or export a custom Linux kernel configuration?
    Jun 20, 2012 · You can either save the config file to a custom location directly in menuconfig and load a custom one there as well or you can save the .config file from the ...Why does building a Linux kernel erase the configuration changes ...find kernel config option in menuconfig - linux - Super UserMore results from superuser.comMissing: navigation | Show results with:navigation
  26. [26]
    Linux kernel release 4.x <http://kernel.org/> — The Linux Kernel ...
    "make menuconfig" Text based color menus, radiolists & dialogs. "make nconfig" Enhanced text based color menus. "make xconfig" Qt based configuration tool. " ...
  27. [27]
    [PDF] Retrofitting Performance Models onto Kconfig-Based Software ...
    With such a performance model, kconfig- webconf can serve as a performance-aware drop-in replacement for existing Kconfig frontends. We evaluate its usage in ...
  28. [28]
    Custom Linux Image for Raspberry Pi 5: A Guide with Buildroot
    Apr 1, 2025 · Buildroot is a powerful tool that simplifies and automates the process of creating embedded Linux images, including the bootloader, Linux kernel, and root ...
  29. [29]
    [PDF] Learning Very Large Configuration Spaces: What Matters for Linux ...
    We used TuxML, a tool to build the Linux kernel in the large i.e., what- ever options are combined. ... • 67% of remaining options are beyond the rank 2000. We ...Missing: early | Show results with:early
  30. [30]
  31. [31]
    Make menuconfig fails on small display in 2.5.50
    I just tried to run make menuconfig on 2.5.50, on a serial terminal, Your display is too small to run Menuconfig! It must be at least 19 lines by 80 columns.
  32. [32]
    Minimal requirements to compile the Kernel — The Linux Kernel documentation
    ### Minimum Software Requirements for Building the Linux Kernel
  33. [33]
    Kernel/BuildYourOwnKernel - Ubuntu Wiki
    Jun 16, 2025 · Building the kernel is quite easy. Change your working directory to the root of the kernel source tree and then type the following commands:.
  34. [34]
    View topic - Backspace failing in make menuconfig started in console
    Feb 23, 2010 · I have a small problem in as I can not delete current characters in data input fields. I can only insert new characters.
  35. [35]
    Yocto Project Linux Kernel Development Manual
    Generating Configuration Files. You can manipulate the .config file used to build a linux-yocto recipe with the menuconfig command as follows ...