Книга: Fedora™ Unleashed, 2008 edition
Using xconfig to Configure the Kernel
Using xconfig
to Configure the Kernel
For simplicity's sake, during this brisk walkthrough, we assume that you are using make xconfig
. Prior to this point, we also assume that you have completed the first five steps in the kernel compilation checklist shown previously.
As you learned in the preceding section, you configure the kernel using make xconfig
by making choices in several configuration subsection windows. Each subsection window contains specific kernel options. With hundreds of choices, the kernel is daunting to configure. We cannot really offer you detailed descriptions of which options to choose because your configuration will not match our own system and setup.
Table 36.1 provides a brief description of each subsection's options so that you can get an idea of what you might encounter. We recommend that you copy your kernel's .config
file to /usr/src/kernels/linux-2.6
and run make xconfig
from there. Explore all the options. As long as you do not save the file, absolutely nothing will be changed on your system.
TABLE 36.1 Kernel Subsections for Configuration
Name | Description |
---|---|
Code maturity level options | Enables development code to be compiled into the kernel even if it has been marked as obsolete or as testing code only. This option should only be used by kernel developers or testers because of the possible unusable state of the code during development. |
General setup | Contains several different options covering how the kernel talks to the BIOS, whether it should support PCI or PCMCIA, whether it should use APM or ACPI, and what kind of Linux binary formats will be supported. Contains several options for supporting kernel structures necessary to run binaries compiled for other systems directly without recompiling the program. |
Loadable module support | Determines whether the kernel enables drivers and other nonessential code to be compiled as loadable modules that can be loaded and unloaded at runtime. This option keeps the basic kernel small so that it can run and respond more quickly; in that regard, choosing this option is generally a good idea. |
Processor type and features | Several options dealing with the architecture that will be running the kernel. |
Power management options | Options dealing with ACPI and APM power management features. |
Bus options | Configuration options for the PCMCIA bus found in laptops and PCI hotplug devices. |
Memory Technology Devices (MTDs) | Options for supporting flash memory devices, such as EEPROMS. Generally, these devices are used in embedded systems. |
Parallel port support | Several options for configuring how the kernel will support parallel port communications. |
Plug-and-play configuration | Options for supporting Plug and Play PCI, ISA, and plug-and-play BIOS support. Generally, it is a good idea to support plug-and-play for PCI and ISA devices. |
Block devices | Section dealing with devices that communicate with the kernel in blocks of characters instead of streams. This includes IDE and ATAPI devices connected via parallel ports, as well as enabling network devices to communicate as block devices. |
ATA/IDE/MFM/RLL support | Large collection of options to configure the kernel to communicate using different types of data communication protocols to talk to mass storage devices, such as hard drives. Note that this section does not cover SCSI. |
SCSI device support | Options for configuring the kernel to support Small Computer Systems Interface. This subsection covers drivers for specific cards, chipsets, and tunable parameters for the SCSI protocol. |
Old CD-ROM drivers | Configuration options to support obscure, older CD-ROM devices that do not conform to the SCSI or IDE standards. These are typically older CD-ROM drivers that are usually a proprietary type of SCSI (not SCSI, not IDE). |
Multi-device support | Options for enabling the kernel to support RAID devices in (RAID and LVM) software emulation and the different levels of RAID. Also contains options for support of a logical volume manager. |
Fusion MPT device support | Configures support for LSI's Logic Fusion Message Passing Technology. This technology is for high-performance SCSI and local area network interfaces. |
IEEE1394 (firewire) support I20 device support | Experimental support for FireWire devices. Options for supporting the Intelligent Input/Output architecture. This architecture enables the hardware driver to be split from the operating system driver, thus enabling a multitude of hardware devices to be compatible with an operating system in one implementation. |
Networking support | Several options for the configuration of networking in the kernel. The options are for the types of supported protocols and configurable options of those protocols. |
Amateur radio support | Options for configuring support of devices that support the AX25 protocol. |
IrDA (infrared) support | Options for configuring support of the Infrared Data Association suite of protocols and devices that use these protocols. |
Bluetooth support | Support for the Bluetooth wireless protocol. Includes options to support the Bluetooth protocols and hardware devices. |
ISDN subsystem | Options to support Integrated Services Digital Networks protocols and devices. ISDN is a method of connection to a large area network digitally over conditioned telephone lines, largely found to connect users to ISPs. |
Telephony support | Support for devices that enable the use of regular tele phone lines to support VOIP applications. This section does not handle the configuration of modems. |
Input device support | Options for configuring universal serial bus (USB) human interface devices (HIDs). These include keyboards, mice, and joysticks. |
Character devices | Configuration options for devices that communicate to the server in sequential characters. This is a large subsection containing the drivers for several motherboard chipsets. |
Multimedia devices | Drivers for hardware implementations of video and sound devices such as video capture boards, TV cards, and AM/FM radio adapter cards. |
Graphics support | Configures VGA text console, video mode selection, and support for frame buffer cards. |
Sound | Large subsection to configure supported sound card drivers and chipset support for the kernel. |
USB support | Universal Serial Bus configuration options. Includes configuration for USB devices, as well as vendor-specific versions of USB. |
File system | Configuration options for supported file system types. Refer to Chapter 34 for a description of the file systems supported by the kernel. |
Additional device driver support | Third-party patches. |
Profiling support | Profiling kernel behavior information to aid in debugging and development. |
Kernel hacking | Determines whether the kernel will contain advanced debugging options. Most users do not want to include this option in their production kernels because it increases the kernel size and slows performance by adding extra routines. |
Security options | Determines whether NSA Security Enhanced Linux (SELinux) is enabled. |
Cryptographic options | Support for cryptography hardware (Fedora patches not found in the vanilla kernel sources). |
Library routines | Contains zlib compression support. |
After you select all the options you want, you can save the configuration file and continue with step 7 in the kernel compiling checklist shown earlier.
- 4.4.4 The Dispatcher
- About the author
- Chapter 7. The state machine
- Appendix E. Other resources and links
- Caveats using NAT
- Example NAT machine in theory
- Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
- The final stage of our NAT machine
- Kernel setup
- Compiling the user-land applications
- The conntrack entries
- Untracked connections and the raw table