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 53config LOCK_KERNEL 54 bool 55 depends on SMP || PREEMPT 56 default y 57 58config INIT_ENV_ARG_LIMIT 59 int 60 default 32 if !USERMODE 61 default 128 if USERMODE 62 help 63 This is the value of the two limits on the number of argument and of 64 env.var passed to init from the kernel command line. 65 66endmenu 67 68menu "General setup" 69 70config LOCALVERSION 71 string "Local version - append to kernel release" 72 help 73 Append an extra string to the end of your kernel version. 74 This will show up when you type uname, for example. 75 The string you set here will be appended after the contents of 76 any files with a filename matching localversion* in your 77 object and source tree, in that order. Your total string can 78 be a maximum of 64 characters. 79 80config SWAP 81 bool "Support for paging of anonymous memory (swap)" 82 depends on MMU 83 default y 84 help 85 This option allows you to choose whether you want to have support 86 for socalled swap devices or swap files in your kernel that are 87 used to provide more virtual memory than the actual RAM present 88 in your computer. If unsure say Y. 89 90config SYSVIPC 91 bool "System V IPC" 92 depends on MMU 93 ---help--- 94 Inter Process Communication is a suite of library functions and 95 system calls which let processes (running programs) synchronize and 96 exchange information. It is generally considered to be a good thing, 97 and some programs won't run unless you say Y here. In particular, if 98 you want to run the DOS emulator dosemu under Linux (read the 99 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), 100 you'll need to say Y here. 101 102 You can find documentation about IPC with "info ipc" and also in 103 section 6.4 of the Linux Programmer's Guide, available from 104 <http://www.tldp.org/guides.html>. 105 106config POSIX_MQUEUE 107 bool "POSIX Message Queues" 108 depends on NET && EXPERIMENTAL 109 ---help--- 110 POSIX variant of message queues is a part of IPC. In POSIX message 111 queues every message has a priority which decides about succession 112 of receiving it by a process. If you want to compile and run 113 programs written e.g. for Solaris with use of its POSIX message 114 queues (functions mq_*) say Y here. To use this feature you will 115 also need mqueue library, available from 116 <http://www.mat.uni.torun.pl/~wrona/posix_ipc/> 117 118 POSIX message queues are visible as a filesystem called 'mqueue' 119 and can be mounted somewhere if you want to do filesystem 120 operations on message queues. 121 122 If unsure, say Y. 123 124config BSD_PROCESS_ACCT 125 bool "BSD Process Accounting" 126 help 127 If you say Y here, a user level program will be able to instruct the 128 kernel (via a special system call) to write process accounting 129 information to a file: whenever a process exits, information about 130 that process will be appended to the file by the kernel. The 131 information includes things such as creation time, owning user, 132 command name, memory usage, controlling terminal etc. (the complete 133 list is in the struct acct in <file:include/linux/acct.h>). It is 134 up to the user level program to do useful things with this 135 information. This is generally a good idea, so say Y. 136 137config BSD_PROCESS_ACCT_V3 138 bool "BSD Process Accounting version 3 file format" 139 depends on BSD_PROCESS_ACCT 140 default n 141 help 142 If you say Y here, the process accounting information is written 143 in a new file format that also logs the process IDs of each 144 process and it's parent. Note that this file format is incompatible 145 with previous v0/v1/v2 file formats, so you will need updated tools 146 for processing it. A preliminary version of these tools is available 147 at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>. 148 149config SYSCTL 150 bool "Sysctl support" 151 ---help--- 152 The sysctl interface provides a means of dynamically changing 153 certain kernel parameters and variables on the fly without requiring 154 a recompile of the kernel or reboot of the system. The primary 155 interface consists of a system call, but if you say Y to "/proc 156 file system support", a tree of modifiable sysctl entries will be 157 generated beneath the /proc/sys directory. They are explained in the 158 files in <file:Documentation/sysctl/>. Note that enabling this 159 option will enlarge the kernel by at least 8 KB. 160 161 As it is generally a good thing, you should say Y here unless 162 building a kernel for install/rescue disks or your system is very 163 limited in memory. 164 165config AUDIT 166 bool "Auditing support" 167 depends on NET 168 default y if SECURITY_SELINUX 169 help 170 Enable auditing infrastructure that can be used with another 171 kernel subsystem, such as SELinux (which requires this for 172 logging of avc messages output). Does not do system-call 173 auditing without CONFIG_AUDITSYSCALL. 174 175config AUDITSYSCALL 176 bool "Enable system-call auditing support" 177 depends on AUDIT && (X86 || PPC || PPC64 || ARCH_S390 || IA64 || UML || SPARC64) 178 default y if SECURITY_SELINUX 179 help 180 Enable low-overhead system-call auditing infrastructure that 181 can be used independently or with another kernel subsystem, 182 such as SELinux. 183 184config HOTPLUG 185 bool "Support for hot-pluggable devices" if !ARCH_S390 186 default ARCH_S390 187 help 188 This option is provided for the case where no in-kernel-tree 189 modules require HOTPLUG functionality, but a module built 190 outside the kernel tree does. Such modules require Y here. 191 192config KOBJECT_UEVENT 193 bool "Kernel Userspace Events" 194 depends on NET 195 default y 196 help 197 This option enables the kernel userspace event layer, which is a 198 simple mechanism for kernel-to-user communication over a netlink 199 socket. 200 The goal of the kernel userspace events layer is to provide a simple 201 and efficient events system, that notifies userspace about kobject 202 state changes. This will enable applications to just listen for 203 events instead of polling system devices and files. 204 Hotplug events (kobject addition and removal) are also available on 205 the netlink socket in addition to the execution of /sbin/hotplug if 206 CONFIG_HOTPLUG is enabled. 207 208 Say Y, unless you are building a system requiring minimal memory 209 consumption. 210 211config IKCONFIG 212 bool "Kernel .config support" 213 ---help--- 214 This option enables the complete Linux kernel ".config" file 215 contents to be saved in the kernel. It provides documentation 216 of which kernel options are used in a running kernel or in an 217 on-disk kernel. This information can be extracted from the kernel 218 image file with the script scripts/extract-ikconfig and used as 219 input to rebuild the current kernel or to build another kernel. 220 It can also be extracted from a running kernel by reading 221 /proc/config.gz if enabled (below). 222 223config IKCONFIG_PROC 224 bool "Enable access to .config through /proc/config.gz" 225 depends on IKCONFIG && PROC_FS 226 ---help--- 227 This option enables access to the kernel configuration file 228 through /proc/config.gz. 229 230config CPUSETS 231 bool "Cpuset support" 232 depends on SMP 233 help 234 This options will let you create and manage CPUSET's which 235 allow dynamically partitioning a system into sets of CPUs and 236 Memory Nodes and assigning tasks to run only within those sets. 237 This is primarily useful on large SMP or NUMA systems. 238 239 Say N if unsure. 240 241source "usr/Kconfig" 242 243menuconfig EMBEDDED 244 bool "Configure standard kernel features (for small systems)" 245 help 246 This option allows certain base kernel options and settings 247 to be disabled or tweaked. This is for specialized 248 environments which can tolerate a "non-standard" kernel. 249 Only use this if you really know what you are doing. 250 251config KALLSYMS 252 bool "Load all symbols for debugging/kksymoops" if EMBEDDED 253 default y 254 help 255 Say Y here to let the kernel print out symbolic crash information and 256 symbolic stack backtraces. This increases the size of the kernel 257 somewhat, as all symbols have to be loaded into the kernel image. 258 259config KALLSYMS_ALL 260 bool "Include all symbols in kallsyms" 261 depends on DEBUG_KERNEL && KALLSYMS 262 help 263 Normally kallsyms only contains the symbols of functions, for nicer 264 OOPS messages. Some debuggers can use kallsyms for other 265 symbols too: say Y here to include all symbols, if you need them 266 and you don't care about adding 300k to the size of your kernel. 267 268 Say N. 269 270config KALLSYMS_EXTRA_PASS 271 bool "Do an extra kallsyms pass" 272 depends on KALLSYMS 273 help 274 If kallsyms is not working correctly, the build will fail with 275 inconsistent kallsyms data. If that occurs, log a bug report and 276 turn on KALLSYMS_EXTRA_PASS which should result in a stable build. 277 Always say N here unless you find a bug in kallsyms, which must be 278 reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while 279 you wait for kallsyms to be fixed. 280 281 282config PRINTK 283 default y 284 bool "Enable support for printk" if EMBEDDED 285 help 286 This option enables normal printk support. Removing it 287 eliminates most of the message strings from the kernel image 288 and makes the kernel more or less silent. As this makes it 289 very difficult to diagnose system problems, saying N here is 290 strongly discouraged. 291 292config BUG 293 bool "BUG() support" if EMBEDDED 294 default y 295 help 296 Disabling this option eliminates support for BUG and WARN, reducing 297 the size of your kernel image and potentially quietly ignoring 298 numerous fatal conditions. You should only consider disabling this 299 option for embedded systems with no facilities for reporting errors. 300 Just say Y. 301 302config BASE_FULL 303 default y 304 bool "Enable full-sized data structures for core" if EMBEDDED 305 help 306 Disabling this option reduces the size of miscellaneous core 307 kernel data structures. This saves memory on small machines, 308 but may reduce performance. 309 310config FUTEX 311 bool "Enable futex support" if EMBEDDED 312 default y 313 help 314 Disabling this option will cause the kernel to be built without 315 support for "fast userspace mutexes". The resulting kernel may not 316 run glibc-based applications correctly. 317 318config EPOLL 319 bool "Enable eventpoll support" if EMBEDDED 320 default y 321 help 322 Disabling this option will cause the kernel to be built without 323 support for epoll family of system calls. 324 325config CC_OPTIMIZE_FOR_SIZE 326 bool "Optimize for size" if EMBEDDED 327 default y if ARM || H8300 328 help 329 Enabling this option will pass "-Os" instead of "-O2" to gcc 330 resulting in a smaller kernel. 331 332 WARNING: some versions of gcc may generate incorrect code with this 333 option. If problems are observed, a gcc upgrade may be needed. 334 335 If unsure, say N. 336 337config SHMEM 338 bool "Use full shmem filesystem" if EMBEDDED 339 default y 340 depends on MMU 341 help 342 The shmem is an internal filesystem used to manage shared memory. 343 It is backed by swap and manages resource limits. It is also exported 344 to userspace as tmpfs if TMPFS is enabled. Disabling this 345 option replaces shmem and tmpfs with the much simpler ramfs code, 346 which may be appropriate on small systems without swap. 347 348config CC_ALIGN_FUNCTIONS 349 int "Function alignment" if EMBEDDED 350 default 0 351 help 352 Align the start of functions to the next power-of-two greater than n, 353 skipping up to n bytes. For instance, 32 aligns functions 354 to the next 32-byte boundary, but 24 would align to the next 355 32-byte boundary only if this can be done by skipping 23 bytes or less. 356 Zero means use compiler's default. 357 358config CC_ALIGN_LABELS 359 int "Label alignment" if EMBEDDED 360 default 0 361 help 362 Align all branch targets to a power-of-two boundary, skipping 363 up to n bytes like ALIGN_FUNCTIONS. This option can easily 364 make code slower, because it must insert dummy operations for 365 when the branch target is reached in the usual flow of the code. 366 Zero means use compiler's default. 367 368config CC_ALIGN_LOOPS 369 int "Loop alignment" if EMBEDDED 370 default 0 371 help 372 Align loops to a power-of-two boundary, skipping up to n bytes. 373 Zero means use compiler's default. 374 375config CC_ALIGN_JUMPS 376 int "Jump alignment" if EMBEDDED 377 default 0 378 help 379 Align branch targets to a power-of-two boundary, for branch 380 targets where the targets can only be reached by jumping, 381 skipping up to n bytes like ALIGN_FUNCTIONS. In this case, 382 no dummy operations need be executed. 383 Zero means use compiler's default. 384 385endmenu # General setup 386 387config TINY_SHMEM 388 default !SHMEM 389 bool 390 391config BASE_SMALL 392 int 393 default 0 if BASE_FULL 394 default 1 if !BASE_FULL 395 396menu "Loadable module support" 397 398config MODULES 399 bool "Enable loadable module support" 400 help 401 Kernel modules are small pieces of compiled code which can 402 be inserted in the running kernel, rather than being 403 permanently built into the kernel. You use the "modprobe" 404 tool to add (and sometimes remove) them. If you say Y here, 405 many parts of the kernel can be built as modules (by 406 answering M instead of Y where indicated): this is most 407 useful for infrequently used options which are not required 408 for booting. For more information, see the man pages for 409 modprobe, lsmod, modinfo, insmod and rmmod. 410 411 If you say Y here, you will need to run "make 412 modules_install" to put the modules under /lib/modules/ 413 where modprobe can find them (you may need to be root to do 414 this). 415 416 If unsure, say Y. 417 418config MODULE_UNLOAD 419 bool "Module unloading" 420 depends on MODULES 421 help 422 Without this option you will not be able to unload any 423 modules (note that some modules may not be unloadable 424 anyway), which makes your kernel slightly smaller and 425 simpler. If unsure, say Y. 426 427config MODULE_FORCE_UNLOAD 428 bool "Forced module unloading" 429 depends on MODULE_UNLOAD && EXPERIMENTAL 430 help 431 This option allows you to force a module to unload, even if the 432 kernel believes it is unsafe: the kernel will remove the module 433 without waiting for anyone to stop using it (using the -f option to 434 rmmod). This is mainly for kernel developers and desperate users. 435 If unsure, say N. 436 437config OBSOLETE_MODPARM 438 bool 439 default y 440 depends on MODULES 441 help 442 You need this option to use module parameters on modules which 443 have not been converted to the new module parameter system yet. 444 If unsure, say Y. 445 446config MODVERSIONS 447 bool "Module versioning support (EXPERIMENTAL)" 448 depends on MODULES && EXPERIMENTAL 449 help 450 Usually, you have to use modules compiled with your kernel. 451 Saying Y here makes it sometimes possible to use modules 452 compiled for different kernels, by adding enough information 453 to the modules to (hopefully) spot any changes which would 454 make them incompatible with the kernel you are running. If 455 unsure, say N. 456 457config MODULE_SRCVERSION_ALL 458 bool "Source checksum for all modules" 459 depends on MODULES 460 help 461 Modules which contain a MODULE_VERSION get an extra "srcversion" 462 field inserted into their modinfo section, which contains a 463 sum of the source files which made it. This helps maintainers 464 see exactly which source was used to build a module (since 465 others sometimes change the module source without updating 466 the version). With this option, such a "srcversion" field 467 will be created for all modules. If unsure, say N. 468 469config KMOD 470 bool "Automatic kernel module loading" 471 depends on MODULES 472 help 473 Normally when you have selected some parts of the kernel to 474 be created as kernel modules, you must load them (using the 475 "modprobe" command) before you can use them. If you say Y 476 here, some parts of the kernel will be able to load modules 477 automatically: when a part of the kernel needs a module, it 478 runs modprobe with the appropriate arguments, thereby 479 loading the module if it is available. If unsure, say Y. 480 481config STOP_MACHINE 482 bool 483 default y 484 depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU 485 help 486 Need stop_machine() primitive. 487endmenu 488