How to configure the Linux kernel

This Howto shows you what each Linux kernel option is used for. The Linux kernel has hundreds of options and setting, this howto attempts to describe them. To learn howto compile the kernel see Howto compile the Linux Kernel.

=Know your hardware= There are thousands of configuration options, so its a good idea to start with what you know you need and what you know you don't need.

A good way to find what you have is to use the lspci, and lsusb commands. This will show you the name and model of your components. The Kernel configuration names are not always obvious, so these commands help you decipher the names.

For instance:
 * Creative Labs Sound Blaster PCI 128 is called
 * (Creative) Ensoniq AudioPCI 1370


 * Things you usually need
 * Second extended fs support
 * Ext3 journaling file system support


 * Things you usually don't need
 * I2O support
 * ISDN support
 * Dallas's 1-wire support
 * Memory Technology Device (MTD) support
 * Support for Large Block Devices
 * Instrumentation Support
 * Kernel hacking
 * Amateur Radio support
 * InfiniBand support
 * and any hardware that you obviously don't have

=Config Methods=
 * 1) console based: make menuconfig
 * 2) (GUI) Qt Based: make xconfig
 * 3) (GUI) GTK Based: make gconfig
 * Other
 * 1) keep old Kernels settings: make oldconfig
 * less screen Clutter: make silentoldconfig
 * 1) edit the /usr/src/Linux/.config file manually

Configurations
This section explains all the configuration options. The are many. The Linux tree structure is organized and the extracted Linux source directory structure. The Menuconfig tree structure is as you would see using make menuconfig

=Menuconfig=


 * Code maturity level options
 * General setup
 * Loadable module support
 * Block layer
 * Processor type and features
 * Power management options (ACPI, APM)
 * Bus options (PCI, PCMCIA, EISA, MCA, ISA)
 * Executable file formats
 * Networking integrated kernel support for ppp, slip, vpn, etc.)
 * Device Drivers (drivers for sound, video, usb, disk drive, ...)
 * File systems ext2, ext3, fat, ntfs, ...)
 * Howto configure the Linux kernel/Instrumentation Support?
 * Howto configure the Linux kernel/kernel hacking?
 * Security Options
 * Cryptography options
 * Library routines

Menuconfig Full Tree

 * Code maturity level options
 * General setup
 * Configure standard kernel features (for small systems)
 * Loadable module support
 * Block layer
 * IO Schedulers
 * Processor type and features
 * Power management options (ACPI, APM)
 * Bus options (PCI, PCMCIA, EISA, MCA, ISA)
 * Executable file formats
 * Networking
 * Networking options
 * Amateur Radio support
 * IrDA (infrared) subsystem support
 * Bluetooth subsystem support
 * Device drivers
 * Generic driver options
 * Connector - unified userspace &lt;-&gt; kernelspace linker
 * Memory Technology Devices (MTD)
 * RAM-ROM-Flash chip drivers
 * Mapping drivers for chip access
 * Self-contained MTD device drivers
 * NAND Flash Device Drivers
 * OneNAND Flash Device Drivers
 * Parallel port support
 * Plug and Play support
 * Block devices
 * Misc devices
 * ATA-ATAPI-MFM-RLL support
 * SCSI device support
 * SCSI Transports
 * SCSI low-level drivers
 * Serial ATA and Parallel ATA drivers


 * Instrumentation Support
 * Support and Maintenance


 * Processor type and features
 * Power management options (ACPI, APM)
 * Bus options (PCI, PCMCIA, EISA, MCA, ISA)
 * Executable file formats
 * Networking integrated kernel support for ppp, slip, vpn, etc)
 * Device Drivers (drivers for sound, video, usb, disk drive, ...)
 * File systems ext2, ext3, fat, ntfs, ...)
 * Howto configure the Linux kernel/Instrumentation Support?
 * Howto configure the Linux kernel/kernel hacking?
 * Security Options
 * Cryptography options
 * Library routines

Other Organization Structures

 * All kernel option pages
 * All kernel options on a single page (very long)

Other Stuff

 * 1) Guide to configuring the linux kernel/block
 * 2) Guide to configuring the linux kernel/crypto
 * 3) Howto configure the linux kernel/Full tree
 * 4) Howto configure the linux kernel/Howto Edit this page
 * 5) Howto configure the linux kernel/Script
 * 6) Howto upgrade linux kernel

List of devices
http://kernel.org/pub/linux/docs/device-list/devices-2.6+.txt

From HowTo Wiki, a Wikia wiki.