Kernel Configuration Option Reference
Total Page:16
File Type:pdf, Size:1020Kb
,ch11.12684 Page 122 Friday, December 1, 2006 10:07 AM Chapter 11Configuration Reference 11 Kernel Configuration Option Reference This chapter lists the most important configuration options offered when you run make config or one of its graphical interfaces. The majority of the chapter is based on the in-kernel documentation for the different kernel configuration options, which were written by the kernel developers and released under the GPL. EXPERIMENTAL Prompt for development and/or incomplete code/drivers Some of the many things that Linux supports (such as network drivers, filesystems, network protocols, etc.) can be in a state of development where the functionality, stability, or the level of testing is not yet high enough for general use. This is usually known as the “alpha-test” phase among developers. If a feature is currently in alpha-test, the developers usually discourage unin- formed widespread use of this feature by the general public to avoid “Why doesn’t this work?” mail messages. However, active testing and use of these systems is welcomed. Just be aware that it may not meet the normal level of reliability or may fail to work in some special cases. Detailed bug reports from people familiar with the kernel internals are usually welcomed by the developers. (But before submitting bug reports, please read the documents README, MAINTAINERS, REPORTING-BUGS, Documentation/ BUG-HUNTING, and Documentation/oops-tracing.txt in the kernel source.) This option also makes obsolete drivers available. These are drivers that have been replaced by something else and/or are scheduled to be removed in a future kernel release. Unless you intend to help test and develop a feature or driver that falls into this category, or you have a situation that requires using these features, you should probably say no here, which will cause the configurator to present you with fewer choices. If you say yes 122 ,ch11.12684 Page 123 Friday, December 1, 2006 10:07 AM here, you will be offered the choice of using features or drivers that are currently considered to be in the alpha-test phase. On its own, this option does not do anything except allow you to select other options. LOCALVERSION Local version—append to kernel release Configuration Reference This allows you to append an extra string to the end of your kernel version. This will show up when you enter a uname command, for example. The string you set here will be appended after the contents of any files with a filename beginning with localversion in your object and source tree, in that order. The string can be a maximum of 64 characters. AUDIT Auditing support Enable an auditing infrastructure that can be used with another kernel subsystem, such as SELinux (which requires this for logging of avc messages output). IKCONFIG Kernel .config support This option enables the complete Linux kernel .config file contents to be saved in the kernel. It documents which kernel options are used in a running kernel or an on-disk kernel. This information can be extracted from the kernel image file with the script scripts/ extract-ikconfig and used as input to rebuild the current kernel or to build another kernel. It can also be extracted from a running kernel by reading the file /proc/config.gz. EMBEDDED Configure standard kernel features (for small systems) This option allows certain base kernel options and settings to be disabled or tweaked. This is for specialized environments that can tolerate a “nonstandard” kernel. This is recommend only for experts, as it is very easy to change the options to create a kernel that will not even boot properly. On its own, this option does not do anything except allow you to select other options. MODULES Enable loadable module support Kernel modules are small pieces of compiled code that can be inserted in the running kernel, rather than being permanently built into the kernel. If you select this option, many parts of the kernel can be built as modules (by answering M instead of yes where indi- cated): this is most useful for infrequently used options that are not required for booting. For more information, see Chapter 4 and the manpages for modprobe, lsmod, modinfo, insmod, and rmmod. MODULES | 123 ,ch11.12684 Page 124 Friday, December 1, 2006 10:07 AM If you say yes here, you will need to run make modules_install to put the modules under /lib/modules where the module tools can find them. IOSCHED_NOOP No-op I/O scheduler The no-op I/O scheduler is a minimal scheduler that does basic merging and sorting. Its main uses include nondisk-based block devices such as memory devices and specialized software or hard- ware environments that do their own scheduling and require only minimal assistance from the kernel. IOSCHED_AS Anticipatory I/O scheduler The anticipatory I/O scheduler is the default disk scheduler. It is generally a good choice for most environments, but is quite large and complex compared to the deadline I/O scheduler. It can also be slower in some cases, especially under some database loads. IOSCHED_ Deadline I/O scheduler DEADLINE The deadline I/O scheduler is simple and compact. It is often as good as the anticipatory I/O scheduler, and under some database work- loads, even better. In the case of a single process performing I/O to a disk at any one time, its behavior is almost identical to the anticipa- tory I/O scheduler and so is a good choice. IOSCHED_CFQ CFQ I/O scheduler The CFQ I/O scheduler tries to distribute bandwidth equally among all processes in the system. It should provide a fair working environment, suitable for desktop systems. SMP Symmetric multiprocessing support This enables support for systems with more than one CPU. If you have a system with only one CPU, like most personal computers, say no. If you have a system with more than one CPU, say yes. If you say no here, the kernel will run on single and multiprocessor machines, but will use only one CPU of a multiprocessor machine. If you say yes here, the kernel will run on many, but not all, single- processor machines. On a single-processor machine, the kernel will run faster if you say no here. Note that if you say yes here and choose architecture 586 or Pentium under Processor family, the kernel will not work on 486 architectures. Similarly, multiprocessor kernels for the PPro archi- tecture may not work on all Pentium-based boards. 124 | Chapter 11: Kernel Configuration Option Reference ,ch11.12684 Page 125 Friday, December 1, 2006 10:07 AM See also Documentation/smp.txt, Documentation/i386/IO-APIC.txt, Documentation/nmi_watchdog.txt, and the SMP-HOWTO avail- able at http://www.tldp.org/docs.html#howto. M386 386 Configuration This is the processor type of your CPU. This information is used Reference for optimization. In order to compile a kernel that can run on all x86 CPU types (albeit not optimally fast), you can specify 386 here. The kernel will not necessarily run on earlier architectures than the one you have chosen; e.g., a Pentium-optimized kernel will run on a PPro, but not necessarily on a i486. Here are the settings recommended for greatest speed: 386 Choose this if you have an AMD/Cyrix/Intel 386DX/DXL/SL/ SLC/SX, Cyrix/TI 486DLC/DLC2, UMC 486SX-S, or NexGen Nx586 processor. Only 386 kernels will run on a 386 class machine. 486 Choose this if you have an AMD/Cyrix/IBM/Intel 486DX/ DX2/DX4, SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D, or U5S processor. 586 Choose this if you have a generic Pentium processor lacking the TSC (timestamp counter) register. Pentium-Classic Choose this if you have an Intel Pentium processor. Pentium-MMX Choose this if you have an Intel Pentium MMX processor. Pentium-Pro Choose this if you have an Intel Pentium Pro processor. Pentium-II Choose this if you have an Intel Pentium II or pre-Copper- mine Celeron processor. Pentium-III Choose this if you have an Intel Pentium III or Coppermine Celeron processor. Pentium-4 Choose this if you have an Intel Pentium 4 or P4-based Celeron processor. K6 Choose this if you have an AMD K6, K6-II or K6-III (aka K6- 3D) processor. Athlon Choose this if you have an AMD K7 family (Athlon/Duron/ Thunderbird) processor. M386 | 125 ,ch11.12684 Page 126 Friday, December 1, 2006 10:07 AM Crusoe Choose this if you have a Transmeta Crusoe series processor. Efficeon Choose this if you have a Transmeta Efficeon series processor. Winchip-C6 Choose this if you have an original IDT Winchip processor. Winchip-2 Choose this if you have an IDT Winchip 2 processor. Winchip-2 Choose this if you have an IDT Winchip processor with 3DNow! capabilities. GeodeGX1 Choose this if you have a Geode GX1 (Cyrix MediaGX) processor. Geode GX/LX Choose this if you have an AMD Geode GX or LX processor. CyrixIII/VIA C3 Choose this if you have a VIA Cyrix III or VIA C3 processor. VIA C3-2 Choose this if you have a VIA C3-2 “Nehemiah” (model 9 and above) processor. If you don’t know what to do, choose 386. X86_GENERIC Generic x86 support Instead of just including optimizations for the selected x86 variant (e.g., PII, Crusoe, or Athlon), include some more generic optimiza- tions as well. This will make the kernel perform better on x86 CPUs other than the one selected. This is really intended for distributors who need more generic optimizations.