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

