Fedora Core 2 - 1.492
[linux-2.6.git] / init / Kconfig
1
2 menu "Code maturity level options"
3
4 config EXPERIMENTAL
5         bool "Prompt for development and/or incomplete code/drivers"
6         ---help---
7           Some of the various things that Linux supports (such as network
8           drivers, file systems, network protocols, etc.) can be in a state
9           of development where the functionality, stability, or the level of
10           testing is not yet high enough for general use. This is usually
11           known as the "alpha-test" phase among developers. If a feature is
12           currently in alpha-test, then the developers usually discourage
13           uninformed widespread use of this feature by the general public to
14           avoid "Why doesn't this work?" type mail messages. However, active
15           testing and use of these systems is welcomed. Just be aware that it
16           may not meet the normal level of reliability or it may fail to work
17           in some special cases. Detailed bug reports from people familiar
18           with the kernel internals are usually welcomed by the developers
19           (before submitting bug reports, please read the documents
20           <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>,
21           <file:Documentation/BUG-HUNTING>, and
22           <file:Documentation/oops-tracing.txt> in the kernel source).
23
24           This option will also make obsoleted drivers available. These are
25           drivers that have been replaced by something else, and/or are
26           scheduled to be removed in a future kernel release.
27
28           Unless you intend to help test and develop a feature or driver that
29           falls into this category, or you have a situation that requires
30           using these features, you should probably say N here, which will
31           cause the configurator to present you with fewer choices. If
32           you say Y here, you will be offered the choice of using features or
33           drivers that are currently considered to be in the alpha-test phase.
34
35 config CLEAN_COMPILE
36         bool "Select only drivers expected to compile cleanly" if EXPERIMENTAL
37         default y
38         help
39           Select this option if you don't even want to see the option
40           to configure known-broken drivers.
41
42           If unsure, say Y
43
44 config STANDALONE
45         bool "Select only drivers that don't need compile-time external firmware" if EXPERIMENTAL
46         default y
47         help
48           Select this option if you don't have magic firmware for drivers that
49           need it.
50
51           If unsure, say Y.
52
53 config BROKEN
54         bool
55         depends on !CLEAN_COMPILE
56         default y
57
58 config BROKEN_ON_SMP
59         bool
60         depends on BROKEN || !SMP
61         default y
62
63 endmenu
64
65
66 menu "General setup"
67
68 config SWAP
69         bool "Support for paging of anonymous memory (swap)"
70         depends on MMU
71         default y
72         help
73           This option allows you to choose whether you want to have support
74           for socalled swap devices or swap files in your kernel that are
75           used to provide more virtual memory than the actual RAM present
76           in your computer.  If unsure say Y.
77
78 config SYSVIPC
79         bool "System V IPC"
80         depends on MMU
81         ---help---
82           Inter Process Communication is a suite of library functions and
83           system calls which let processes (running programs) synchronize and
84           exchange information. It is generally considered to be a good thing,
85           and some programs won't run unless you say Y here. In particular, if
86           you want to run the DOS emulator dosemu under Linux (read the
87           DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
88           you'll need to say Y here.
89
90           You can find documentation about IPC with "info ipc" and also in
91           section 6.4 of the Linux Programmer's Guide, available from
92           <http://www.tldp.org/guides.html>.
93
94 config POSIX_MQUEUE
95         bool "POSIX Message Queues"
96         depends on NET && EXPERIMENTAL
97         ---help---
98           POSIX variant of message queues is a part of IPC. In POSIX message
99           queues every message has a priority which decides about succession
100           of receiving it by a process. If you want to compile and run
101           programs written e.g. for Solaris with use of its POSIX message
102           queues (functions mq_*) say Y here. To use this feature you will
103           also need mqueue library, available from
104           <http://www.mat.uni.torun.pl/~wrona/posix_ipc/>
105
106           POSIX message queues are visible as a filesystem called 'mqueue'
107           and can be mounted somewhere if you want to do filesystem
108           operations on message queues.
109
110           If unsure, say Y.
111
112 config BSD_PROCESS_ACCT
113         bool "BSD Process Accounting"
114         help
115           If you say Y here, a user level program will be able to instruct the
116           kernel (via a special system call) to write process accounting
117           information to a file: whenever a process exits, information about
118           that process will be appended to the file by the kernel.  The
119           information includes things such as creation time, owning user,
120           command name, memory usage, controlling terminal etc. (the complete
121           list is in the struct acct in <file:include/linux/acct.h>).  It is
122           up to the user level program to do useful things with this
123           information.  This is generally a good idea, so say Y.
124
125 config BSD_PROCESS_ACCT_V3
126         bool "BSD Process Accounting version 3 file format"
127         depends on BSD_PROCESS_ACCT
128         default n
129         help
130           If you say Y here, the process accounting information is written
131           in a new file format that also logs the process IDs of each
132           process and it's parent. Note that this file format is incompatible
133           with previous v0/v1/v2 file formats, so you will need updated tools
134           for processing it. A preliminary version of these tools is available
135           at <http://http://www.de.kernel.org/pub/linux/utils/acct/>.
136
137 config SYSCTL
138         bool "Sysctl support"
139         ---help---
140           The sysctl interface provides a means of dynamically changing
141           certain kernel parameters and variables on the fly without requiring
142           a recompile of the kernel or reboot of the system.  The primary
143           interface consists of a system call, but if you say Y to "/proc
144           file system support", a tree of modifiable sysctl entries will be
145           generated beneath the /proc/sys directory. They are explained in the
146           files in <file:Documentation/sysctl/>.  Note that enabling this
147           option will enlarge the kernel by at least 8 KB.
148
149           As it is generally a good thing, you should say Y here unless
150           building a kernel for install/rescue disks or your system is very
151           limited in memory.
152
153 config AUDIT
154         bool "Auditing support"
155         default y if SECURITY_SELINUX
156         default n
157         help
158           Enable auditing infrastructure that can be used with another
159           kernel subsystem, such as SELinux (which requires this for
160           logging of avc messages output).  Does not do system-call
161           auditing without CONFIG_AUDITSYSCALL.
162
163 config AUDITSYSCALL
164         bool "Enable system-call auditing support"
165         depends on AUDIT && (X86 || PPC64 || ARCH_S390 || IA64)
166         default y if SECURITY_SELINUX
167         default n
168         help
169           Enable low-overhead system-call auditing infrastructure that
170           can be used independently or with another kernel subsystem,
171           such as SELinux.
172
173 config LOG_BUF_SHIFT
174         int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" if DEBUG_KERNEL
175         range 12 20
176         default 17 if ARCH_S390
177         default 16 if X86_NUMAQ || IA64
178         default 15 if SMP
179         default 14
180         help
181           Select kernel log buffer size as a power of 2.
182           Defaults and Examples:
183                      17 => 128 KB for S/390
184                      16 => 64 KB for x86 NUMAQ or IA-64
185                      15 => 32 KB for SMP
186                      14 => 16 KB for uniprocessor
187                      13 =>  8 KB
188                      12 =>  4 KB
189
190 config HOTPLUG
191         bool "Support for hot-pluggable devices" if !ARCH_S390
192         default ARCH_S390
193         help
194           Say Y here if you want to plug devices into your computer while
195           the system is running, and be able to use them quickly.  In many
196           cases, the devices can likewise be unplugged at any time too.
197
198           One well known example of this is PCMCIA- or PC-cards, credit-card
199           size devices such as network cards, modems or hard drives which are
200           plugged into slots found on all modern laptop computers.  Another
201           example, used on modern desktops as well as laptops, is USB.
202
203           Enable HOTPLUG and KMOD, and build a modular kernel.  Get agent
204           software (at <http://linux-hotplug.sourceforge.net/>) and install it.
205           Then your kernel will automatically call out to a user mode "policy
206           agent" (/sbin/hotplug) to load modules and set up software needed
207           to use devices as you hotplug them.
208
209 config IKCONFIG
210         bool "Kernel .config support"
211         ---help---
212           This option enables the complete Linux kernel ".config" file
213           contents to be saved in the kernel. It provides documentation
214           of which kernel options are used in a running kernel or in an
215           on-disk kernel.  This information can be extracted from the kernel
216           image file with the script scripts/extract-ikconfig and used as
217           input to rebuild the current kernel or to build another kernel.
218           It can also be extracted from a running kernel by reading
219           /proc/config.gz if enabled (below).
220
221 config IKCONFIG_PROC
222         bool "Enable access to .config through /proc/config.gz"
223         depends on IKCONFIG && PROC_FS
224         ---help---
225           This option enables access to the kernel configuration file
226           through /proc/config.gz.
227
228
229 menuconfig EMBEDDED
230         bool "Configure standard kernel features (for small systems)"
231         help
232           This option allows certain base kernel options and settings
233           to be disabled or tweaked. This is for specialized
234           environments which can tolerate a "non-standard" kernel.
235           Only use this if you really know what you are doing.
236
237 config KALLSYMS
238          bool "Load all symbols for debugging/kksymoops" if EMBEDDED
239          default y
240          help
241            Say Y here to let the kernel print out symbolic crash information and
242            symbolic stack backtraces. This increases the size of the kernel
243            somewhat, as all symbols have to be loaded into the kernel image.
244
245 config KALLSYMS_ALL
246         bool "Include all symbols in kallsyms"
247         depends on DEBUG_KERNEL && KALLSYMS
248         help
249            Normally kallsyms only contains the symbols of functions, for nicer
250            OOPS messages.  Some debuggers can use kallsyms for other
251            symbols too: say Y here to include all symbols, and you
252            don't care about adding 300k to the size of your kernel.
253
254            Say N.
255
256 config KALLSYMS_EXTRA_PASS
257         bool "Do an extra kallsyms pass"
258         depends on KALLSYMS
259         help
260            If kallsyms is not working correctly, the build will fail with
261            inconsistent kallsyms data.  If that occurs, log a bug report and
262            turn on KALLSYMS_EXTRA_PASS which should result in a stable build.
263            Always say N here unless you find a bug in kallsyms, which must be
264            reported.  KALLSYMS_EXTRA_PASS is only a temporary workaround while
265            you wait for kallsyms to be fixed.
266
267 config FUTEX
268         bool "Enable futex support" if EMBEDDED
269         default y
270         help
271           Disabling this option will cause the kernel to be built without
272           support for "fast userspace mutexes".  The resulting kernel may not
273           run glibc-based applications correctly.
274
275 config EPOLL
276         bool "Enable eventpoll support" if EMBEDDED
277         default y
278         help
279           Disabling this option will cause the kernel to be built without
280           support for epoll family of system calls.
281
282 source "drivers/block/Kconfig.iosched"
283
284 config CC_OPTIMIZE_FOR_SIZE
285         bool "Optimize for size"
286         default y if ARM || H8300
287         default n
288         help
289           Enabling this option will pass "-Os" instead of "-O2" to gcc
290           resulting in a smaller kernel.
291
292           WARNING: some versions of gcc may generate incorrect code with this
293           option.  If problems are observed, a gcc upgrade may be needed.
294
295           If unsure, say N.
296
297 endmenu         # General setup
298
299
300 menu "Loadable module support"
301
302 config MODULES
303         bool "Enable loadable module support"
304         help
305           Kernel modules are small pieces of compiled code which can
306           be inserted in the running kernel, rather than being
307           permanently built into the kernel.  You use the "modprobe"
308           tool to add (and sometimes remove) them.  If you say Y here,
309           many parts of the kernel can be built as modules (by
310           answering M instead of Y where indicated): this is most
311           useful for infrequently used options which are not required
312           for booting.  For more information, see the man pages for
313           modprobe, lsmod, modinfo, insmod and rmmod.
314
315           If you say Y here, you will need to run "make
316           modules_install" to put the modules under /lib/modules/
317           where modprobe can find them (you may need to be root to do
318           this).
319
320           If unsure, say Y.
321
322 config MODULE_UNLOAD
323         bool "Module unloading"
324         depends on MODULES
325         help
326           Without this option you will not be able to unload any
327           modules (note that some modules may not be unloadable
328           anyway), which makes your kernel slightly smaller and
329           simpler.  If unsure, say Y.
330
331 config MODULE_FORCE_UNLOAD
332         bool "Forced module unloading"
333         depends on MODULE_UNLOAD && EXPERIMENTAL
334         help
335           This option allows you to force a module to unload, even if the
336           kernel believes it is unsafe: the kernel will remove the module
337           without waiting for anyone to stop using it (using the -f option to
338           rmmod).  This is mainly for kernel developers and desperate users.
339           If unsure, say N.
340
341 config OBSOLETE_MODPARM
342         bool
343         default y
344         depends on MODULES
345         help
346           You need this option to use module parameters on modules which
347           have not been converted to the new module parameter system yet.
348           If unsure, say Y.
349
350 config MODVERSIONS
351         bool "Module versioning support (EXPERIMENTAL)"
352         depends on MODULES && EXPERIMENTAL
353         help
354           Usually, you have to use modules compiled with your kernel.
355           Saying Y here makes it sometimes possible to use modules
356           compiled for different kernels, by adding enough information
357           to the modules to (hopefully) spot any changes which would
358           make them incompatible with the kernel you are running.  If
359           unsure, say N.
360
361 config MODULE_SIG
362         bool "Module signature verification (EXPERIMENTAL)"
363         depends on MODULES && EXPERIMENTAL
364         select CRYPTO_SHA1
365         select CRYPTO_SIGNATURE
366         help
367           Check modules for valid signatures upon load.
368
369 config MODULE_SIG_FORCE
370         bool "Required modules to be validly signed (EXPERIMENTAL)"
371         depends on MODULE_SIG
372         help
373           Reject unsigned modules or signed modules for which we don't have a
374           key.
375
376 config KMOD
377         bool "Automatic kernel module loading"
378         depends on MODULES
379         help
380           Normally when you have selected some parts of the kernel to
381           be created as kernel modules, you must load them (using the
382           "modprobe" command) before you can use them. If you say Y
383           here, some parts of the kernel will be able to load modules
384           automatically: when a part of the kernel needs a module, it
385           runs modprobe with the appropriate arguments, thereby
386           loading the module if it is available.  If unsure, say Y.
387
388 config STOP_MACHINE
389         bool
390         default y
391         depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
392         help
393           Need stop_machine() primitive.
394 endmenu