1config DEFCONFIG_LIST 2 string 3 depends on !UML 4 option defconfig_list 5 default "/lib/modules/$UNAME_RELEASE/.config" 6 default "/etc/kernel-config" 7 default "/boot/config-$UNAME_RELEASE" 8 default "arch/$ARCH/defconfig" 9 10menu "Code maturity level options" 11 12config EXPERIMENTAL 13 bool "Prompt for development and/or incomplete code/drivers" 14 ---help--- 15 Some of the various things that Linux supports (such as network 16 drivers, file systems, network protocols, etc.) can be in a state 17 of development where the functionality, stability, or the level of 18 testing is not yet high enough for general use. This is usually 19 known as the "alpha-test" phase among developers. If a feature is 20 currently in alpha-test, then the developers usually discourage 21 uninformed widespread use of this feature by the general public to 22 avoid "Why doesn't this work?" type mail messages. However, active 23 testing and use of these systems is welcomed. Just be aware that it 24 may not meet the normal level of reliability or it may fail to work 25 in some special cases. Detailed bug reports from people familiar 26 with the kernel internals are usually welcomed by the developers 27 (before submitting bug reports, please read the documents 28 <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, 29 <file:Documentation/BUG-HUNTING>, and 30 <file:Documentation/oops-tracing.txt> in the kernel source). 31 32 This option will also make obsoleted drivers available. These are 33 drivers that have been replaced by something else, and/or are 34 scheduled to be removed in a future kernel release. 35 36 Unless you intend to help test and develop a feature or driver that 37 falls into this category, or you have a situation that requires 38 using these features, you should probably say N here, which will 39 cause the configurator to present you with fewer choices. If 40 you say Y here, you will be offered the choice of using features or 41 drivers that are currently considered to be in the alpha-test phase. 42 43config BROKEN 44 bool 45 46config BROKEN_ON_SMP 47 bool 48 depends on BROKEN || !SMP 49 default y 50 51config LOCK_KERNEL 52 bool 53 depends on SMP || PREEMPT 54 default y 55 56config INIT_ENV_ARG_LIMIT 57 int 58 default 32 if !UML 59 default 128 if UML 60 help 61 Maximum of each of the number of arguments and environment 62 variables passed to init from the kernel command line. 63 64endmenu 65 66menu "General setup" 67 68config LOCALVERSION 69 string "Local version - append to kernel release" 70 help 71 Append an extra string to the end of your kernel version. 72 This will show up when you type uname, for example. 73 The string you set here will be appended after the contents of 74 any files with a filename matching localversion* in your 75 object and source tree, in that order. Your total string can 76 be a maximum of 64 characters. 77 78config LOCALVERSION_AUTO 79 bool "Automatically append version information to the version string" 80 default y 81 help 82 This will try to automatically determine if the current tree is a 83 release tree by looking for git tags that 84 belong to the current top of tree revision. 85 86 A string of the format -gxxxxxxxx will be added to the localversion 87 if a git based tree is found. The string generated by this will be 88 appended after any matching localversion* files, and after the value 89 set in CONFIG_LOCALVERSION 90 91 Note: This requires Perl, and a git repository, but not necessarily 92 the git or cogito tools to be installed. 93 94config SWAP 95 bool "Support for paging of anonymous memory (swap)" 96 depends on MMU && BLOCK 97 default y 98 help 99 This option allows you to choose whether you want to have support 100 for so called swap devices or swap files in your kernel that are 101 used to provide more virtual memory than the actual RAM present 102 in your computer. If unsure say Y. 103 104config SYSVIPC 105 bool "System V IPC" 106 ---help--- 107 Inter Process Communication is a suite of library functions and 108 system calls which let processes (running programs) synchronize and 109 exchange information. It is generally considered to be a good thing, 110 and some programs won't run unless you say Y here. In particular, if 111 you want to run the DOS emulator dosemu under Linux (read the 112 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), 113 you'll need to say Y here. 114 115 You can find documentation about IPC with "info ipc" and also in 116 section 6.4 of the Linux Programmer's Guide, available from 117 <http://www.tldp.org/guides.html>. 118 119config IPC_NS 120 bool "IPC Namespaces" 121 depends on SYSVIPC 122 default n 123 help 124 Support ipc namespaces. This allows containers, i.e. virtual 125 environments, to use ipc namespaces to provide different ipc 126 objects for different servers. If unsure, say N. 127 128config POSIX_MQUEUE 129 bool "POSIX Message Queues" 130 depends on NET && EXPERIMENTAL 131 ---help--- 132 POSIX variant of message queues is a part of IPC. In POSIX message 133 queues every message has a priority which decides about succession 134 of receiving it by a process. If you want to compile and run 135 programs written e.g. for Solaris with use of its POSIX message 136 queues (functions mq_*) say Y here. To use this feature you will 137 also need mqueue library, available from 138 <http://www.mat.uni.torun.pl/~wrona/posix_ipc/> 139 140 POSIX message queues are visible as a filesystem called 'mqueue' 141 and can be mounted somewhere if you want to do filesystem 142 operations on message queues. 143 144 If unsure, say Y. 145 146config BSD_PROCESS_ACCT 147 bool "BSD Process Accounting" 148 help 149 If you say Y here, a user level program will be able to instruct the 150 kernel (via a special system call) to write process accounting 151 information to a file: whenever a process exits, information about 152 that process will be appended to the file by the kernel. The 153 information includes things such as creation time, owning user, 154 command name, memory usage, controlling terminal etc. (the complete 155 list is in the struct acct in <file:include/linux/acct.h>). It is 156 up to the user level program to do useful things with this 157 information. This is generally a good idea, so say Y. 158 159config BSD_PROCESS_ACCT_V3 160 bool "BSD Process Accounting version 3 file format" 161 depends on BSD_PROCESS_ACCT 162 default n 163 help 164 If you say Y here, the process accounting information is written 165 in a new file format that also logs the process IDs of each 166 process and it's parent. Note that this file format is incompatible 167 with previous v0/v1/v2 file formats, so you will need updated tools 168 for processing it. A preliminary version of these tools is available 169 at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>. 170 171config TASKSTATS 172 bool "Export task/process statistics through netlink (EXPERIMENTAL)" 173 depends on NET 174 default n 175 help 176 Export selected statistics for tasks/processes through the 177 generic netlink interface. Unlike BSD process accounting, the 178 statistics are available during the lifetime of tasks/processes as 179 responses to commands. Like BSD accounting, they are sent to user 180 space on task exit. 181 182 Say N if unsure. 183 184config TASK_DELAY_ACCT 185 bool "Enable per-task delay accounting (EXPERIMENTAL)" 186 depends on TASKSTATS 187 help 188 Collect information on time spent by a task waiting for system 189 resources like cpu, synchronous block I/O completion and swapping 190 in pages. Such statistics can help in setting a task's priorities 191 relative to other tasks for cpu, io, rss limits etc. 192 193 Say N if unsure. 194 195config UTS_NS 196 bool "UTS Namespaces" 197 default n 198 help 199 Support uts namespaces. This allows containers, i.e. 200 vservers, to use uts namespaces to provide different 201 uts info for different servers. If unsure, say N. 202 203config AUDIT 204 bool "Auditing support" 205 depends on NET 206 help 207 Enable auditing infrastructure that can be used with another 208 kernel subsystem, such as SELinux (which requires this for 209 logging of avc messages output). Does not do system-call 210 auditing without CONFIG_AUDITSYSCALL. 211 212config AUDITSYSCALL 213 bool "Enable system-call auditing support" 214 depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64) 215 default y if SECURITY_SELINUX 216 help 217 Enable low-overhead system-call auditing infrastructure that 218 can be used independently or with another kernel subsystem, 219 such as SELinux. To use audit's filesystem watch feature, please 220 ensure that INOTIFY is configured. 221 222config IKCONFIG 223 tristate "Kernel .config support" 224 ---help--- 225 This option enables the complete Linux kernel ".config" file 226 contents to be saved in the kernel. It provides documentation 227 of which kernel options are used in a running kernel or in an 228 on-disk kernel. This information can be extracted from the kernel 229 image file with the script scripts/extract-ikconfig and used as 230 input to rebuild the current kernel or to build another kernel. 231 It can also be extracted from a running kernel by reading 232 /proc/config.gz if enabled (below). 233 234config IKCONFIG_PROC 235 bool "Enable access to .config through /proc/config.gz" 236 depends on IKCONFIG && PROC_FS 237 ---help--- 238 This option enables access to the kernel configuration file 239 through /proc/config.gz. 240 241config CPUSETS 242 bool "Cpuset support" 243 depends on SMP 244 help 245 This option will let you create and manage CPUSETs which 246 allow dynamically partitioning a system into sets of CPUs and 247 Memory Nodes and assigning tasks to run only within those sets. 248 This is primarily useful on large SMP or NUMA systems. 249 250 Say N if unsure. 251 252config SYSFS_DEPRECATED 253 bool "Create deprecated sysfs files" 254 default y 255 help 256 This option creates deprecated symlinks such as the 257 "device"-link, the <subsystem>:<name>-link, and the 258 "bus"-link. It may also add deprecated key in the 259 uevent environment. 260 None of these features or values should be used today, as 261 they export driver core implementation details to userspace 262 or export properties which can't be kept stable across kernel 263 releases. 264 265 If enabled, this option will also move any device structures 266 that belong to a class, back into the /sys/class heirachy, in 267 order to support older versions of udev. 268 269 If you are using a distro that was released in 2006 or later, 270 it should be safe to say N here. 271 272config RELAY 273 bool "Kernel->user space relay support (formerly relayfs)" 274 help 275 This option enables support for relay interface support in 276 certain file systems (such as debugfs). 277 It is designed to provide an efficient mechanism for tools and 278 facilities to relay large amounts of data from kernel space to 279 user space. 280 281 If unsure, say N. 282 283source "usr/Kconfig" 284 285config CC_OPTIMIZE_FOR_SIZE 286 bool "Optimize for size (Look out for broken compilers!)" 287 default y 288 depends on ARM || H8300 || EXPERIMENTAL 289 help 290 Enabling this option will pass "-Os" instead of "-O2" to gcc 291 resulting in a smaller kernel. 292 293 WARNING: some versions of gcc may generate incorrect code with this 294 option. If problems are observed, a gcc upgrade may be needed. 295 296 If unsure, say N. 297 298config TASK_XACCT 299 bool "Enable extended accounting over taskstats (EXPERIMENTAL)" 300 depends on TASKSTATS 301 help 302 Collect extended task accounting data and send the data 303 to userland for processing over the taskstats interface. 304 305 Say N if unsure. 306 307config TASK_IO_ACCOUNTING 308 bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" 309 depends on TASK_XACCT 310 help 311 Collect information on the number of bytes of storage I/O which this 312 task has caused. 313 314 Say N if unsure. 315 316config SYSCTL 317 bool 318 319menuconfig EMBEDDED 320 bool "Configure standard kernel features (for small systems)" 321 help 322 This option allows certain base kernel options and settings 323 to be disabled or tweaked. This is for specialized 324 environments which can tolerate a "non-standard" kernel. 325 Only use this if you really know what you are doing. 326 327config UID16 328 bool "Enable 16-bit UID system calls" if EMBEDDED 329 depends on ARM || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && SPARC32_COMPAT) || UML || (X86_64 && IA32_EMULATION) 330 default y 331 help 332 This enables the legacy 16-bit UID syscall wrappers. 333 334config SYSCTL_SYSCALL 335 bool "Sysctl syscall support" if EMBEDDED 336 default y 337 select SYSCTL 338 ---help--- 339 sys_sysctl uses binary paths that have been found challenging 340 to properly maintain and use. The interface in /proc/sys 341 using paths with ascii names is now the primary path to this 342 information. 343 344 Almost nothing using the binary sysctl interface so if you are 345 trying to save some space it is probably safe to disable this, 346 making your kernel marginally smaller. 347 348 If unsure say Y here. 349 350config KALLSYMS 351 bool "Load all symbols for debugging/ksymoops" if EMBEDDED 352 default y 353 help 354 Say Y here to let the kernel print out symbolic crash information and 355 symbolic stack backtraces. This increases the size of the kernel 356 somewhat, as all symbols have to be loaded into the kernel image. 357 358config KALLSYMS_ALL 359 bool "Include all symbols in kallsyms" 360 depends on DEBUG_KERNEL && KALLSYMS 361 help 362 Normally kallsyms only contains the symbols of functions, for nicer 363 OOPS messages. Some debuggers can use kallsyms for other 364 symbols too: say Y here to include all symbols, if you need them 365 and you don't care about adding 300k to the size of your kernel. 366 367 Say N. 368 369config KALLSYMS_EXTRA_PASS 370 bool "Do an extra kallsyms pass" 371 depends on KALLSYMS 372 help 373 If kallsyms is not working correctly, the build will fail with 374 inconsistent kallsyms data. If that occurs, log a bug report and 375 turn on KALLSYMS_EXTRA_PASS which should result in a stable build. 376 Always say N here unless you find a bug in kallsyms, which must be 377 reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while 378 you wait for kallsyms to be fixed. 379 380 381config HOTPLUG 382 bool "Support for hot-pluggable devices" if EMBEDDED 383 default y 384 help 385 This option is provided for the case where no hotplug or uevent 386 capabilities is wanted by the kernel. You should only consider 387 disabling this option for embedded systems that do not use modules, a 388 dynamic /dev tree, or dynamic device discovery. Just say Y. 389 390config PRINTK 391 default y 392 bool "Enable support for printk" if EMBEDDED 393 help 394 This option enables normal printk support. Removing it 395 eliminates most of the message strings from the kernel image 396 and makes the kernel more or less silent. As this makes it 397 very difficult to diagnose system problems, saying N here is 398 strongly discouraged. 399 400config BUG 401 bool "BUG() support" if EMBEDDED 402 default y 403 help 404 Disabling this option eliminates support for BUG and WARN, reducing 405 the size of your kernel image and potentially quietly ignoring 406 numerous fatal conditions. You should only consider disabling this 407 option for embedded systems with no facilities for reporting errors. 408 Just say Y. 409 410config ELF_CORE 411 default y 412 bool "Enable ELF core dumps" if EMBEDDED 413 help 414 Enable support for generating core dumps. Disabling saves about 4k. 415 416config BASE_FULL 417 default y 418 bool "Enable full-sized data structures for core" if EMBEDDED 419 help 420 Disabling this option reduces the size of miscellaneous core 421 kernel data structures. This saves memory on small machines, 422 but may reduce performance. 423 424config FUTEX 425 bool "Enable futex support" if EMBEDDED 426 default y 427 select RT_MUTEXES 428 help 429 Disabling this option will cause the kernel to be built without 430 support for "fast userspace mutexes". The resulting kernel may not 431 run glibc-based applications correctly. 432 433config EPOLL 434 bool "Enable eventpoll support" if EMBEDDED 435 default y 436 help 437 Disabling this option will cause the kernel to be built without 438 support for epoll family of system calls. 439 440config SHMEM 441 bool "Use full shmem filesystem" if EMBEDDED 442 default y 443 depends on MMU 444 help 445 The shmem is an internal filesystem used to manage shared memory. 446 It is backed by swap and manages resource limits. It is also exported 447 to userspace as tmpfs if TMPFS is enabled. Disabling this 448 option replaces shmem and tmpfs with the much simpler ramfs code, 449 which may be appropriate on small systems without swap. 450 451config SLAB 452 default y 453 bool "Use full SLAB allocator" if (EMBEDDED && !SMP && !SPARSEMEM) 454 help 455 Disabling this replaces the advanced SLAB allocator and 456 kmalloc support with the drastically simpler SLOB allocator. 457 SLOB is more space efficient but does not scale well and is 458 more susceptible to fragmentation. 459 460config VM_EVENT_COUNTERS 461 default y 462 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED 463 help 464 VM event counters are needed for event counts to be shown. 465 This option allows the disabling of the VM event counters 466 on EMBEDDED systems. /proc/vmstat will only show page counts 467 if VM event counters are disabled. 468 469endmenu # General setup 470 471config RT_MUTEXES 472 boolean 473 select PLIST 474 475config TINY_SHMEM 476 default !SHMEM 477 bool 478 479config BASE_SMALL 480 int 481 default 0 if BASE_FULL 482 default 1 if !BASE_FULL 483 484config SLOB 485 default !SLAB 486 bool 487 488menu "Loadable module support" 489 490config MODULES 491 bool "Enable loadable module support" 492 help 493 Kernel modules are small pieces of compiled code which can 494 be inserted in the running kernel, rather than being 495 permanently built into the kernel. You use the "modprobe" 496 tool to add (and sometimes remove) them. If you say Y here, 497 many parts of the kernel can be built as modules (by 498 answering M instead of Y where indicated): this is most 499 useful for infrequently used options which are not required 500 for booting. For more information, see the man pages for 501 modprobe, lsmod, modinfo, insmod and rmmod. 502 503 If you say Y here, you will need to run "make 504 modules_install" to put the modules under /lib/modules/ 505 where modprobe can find them (you may need to be root to do 506 this). 507 508 If unsure, say Y. 509 510config MODULE_UNLOAD 511 bool "Module unloading" 512 depends on MODULES 513 help 514 Without this option you will not be able to unload any 515 modules (note that some modules may not be unloadable 516 anyway), which makes your kernel slightly smaller and 517 simpler. If unsure, say Y. 518 519config MODULE_FORCE_UNLOAD 520 bool "Forced module unloading" 521 depends on MODULE_UNLOAD && EXPERIMENTAL 522 help 523 This option allows you to force a module to unload, even if the 524 kernel believes it is unsafe: the kernel will remove the module 525 without waiting for anyone to stop using it (using the -f option to 526 rmmod). This is mainly for kernel developers and desperate users. 527 If unsure, say N. 528 529config MODVERSIONS 530 bool "Module versioning support" 531 depends on MODULES 532 help 533 Usually, you have to use modules compiled with your kernel. 534 Saying Y here makes it sometimes possible to use modules 535 compiled for different kernels, by adding enough information 536 to the modules to (hopefully) spot any changes which would 537 make them incompatible with the kernel you are running. If 538 unsure, say N. 539 540config MODULE_SRCVERSION_ALL 541 bool "Source checksum for all modules" 542 depends on MODULES 543 help 544 Modules which contain a MODULE_VERSION get an extra "srcversion" 545 field inserted into their modinfo section, which contains a 546 sum of the source files which made it. This helps maintainers 547 see exactly which source was used to build a module (since 548 others sometimes change the module source without updating 549 the version). With this option, such a "srcversion" field 550 will be created for all modules. If unsure, say N. 551 552config KMOD 553 bool "Automatic kernel module loading" 554 depends on MODULES 555 help 556 Normally when you have selected some parts of the kernel to 557 be created as kernel modules, you must load them (using the 558 "modprobe" command) before you can use them. If you say Y 559 here, some parts of the kernel will be able to load modules 560 automatically: when a part of the kernel needs a module, it 561 runs modprobe with the appropriate arguments, thereby 562 loading the module if it is available. If unsure, say Y. 563 564config STOP_MACHINE 565 bool 566 default y 567 depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU 568 help 569 Need stop_machine() primitive. 570endmenu 571 572menu "Block layer" 573source "block/Kconfig" 574endmenu 575