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 belong to the current 84 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 (The actual string used here is the first eight characters produced 92 by running the command: 93 94 $ git rev-parse --verify HEAD 95 96 which is done within the script "scripts/setlocalversion".) 97 98config SWAP 99 bool "Support for paging of anonymous memory (swap)" 100 depends on MMU && BLOCK 101 default y 102 help 103 This option allows you to choose whether you want to have support 104 for so called swap devices or swap files in your kernel that are 105 used to provide more virtual memory than the actual RAM present 106 in your computer. If unsure say Y. 107 108config SYSVIPC 109 bool "System V IPC" 110 ---help--- 111 Inter Process Communication is a suite of library functions and 112 system calls which let processes (running programs) synchronize and 113 exchange information. It is generally considered to be a good thing, 114 and some programs won't run unless you say Y here. In particular, if 115 you want to run the DOS emulator dosemu under Linux (read the 116 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), 117 you'll need to say Y here. 118 119 You can find documentation about IPC with "info ipc" and also in 120 section 6.4 of the Linux Programmer's Guide, available from 121 <http://www.tldp.org/guides.html>. 122 123config IPC_NS 124 bool "IPC Namespaces" 125 depends on SYSVIPC 126 default n 127 help 128 Support ipc namespaces. This allows containers, i.e. virtual 129 environments, to use ipc namespaces to provide different ipc 130 objects for different servers. If unsure, say N. 131 132config SYSVIPC_SYSCTL 133 bool 134 depends on SYSVIPC 135 depends on SYSCTL 136 default y 137 138config POSIX_MQUEUE 139 bool "POSIX Message Queues" 140 depends on NET && EXPERIMENTAL 141 ---help--- 142 POSIX variant of message queues is a part of IPC. In POSIX message 143 queues every message has a priority which decides about succession 144 of receiving it by a process. If you want to compile and run 145 programs written e.g. for Solaris with use of its POSIX message 146 queues (functions mq_*) say Y here. 147 148 POSIX message queues are visible as a filesystem called 'mqueue' 149 and can be mounted somewhere if you want to do filesystem 150 operations on message queues. 151 152 If unsure, say Y. 153 154config BSD_PROCESS_ACCT 155 bool "BSD Process Accounting" 156 help 157 If you say Y here, a user level program will be able to instruct the 158 kernel (via a special system call) to write process accounting 159 information to a file: whenever a process exits, information about 160 that process will be appended to the file by the kernel. The 161 information includes things such as creation time, owning user, 162 command name, memory usage, controlling terminal etc. (the complete 163 list is in the struct acct in <file:include/linux/acct.h>). It is 164 up to the user level program to do useful things with this 165 information. This is generally a good idea, so say Y. 166 167config BSD_PROCESS_ACCT_V3 168 bool "BSD Process Accounting version 3 file format" 169 depends on BSD_PROCESS_ACCT 170 default n 171 help 172 If you say Y here, the process accounting information is written 173 in a new file format that also logs the process IDs of each 174 process and it's parent. Note that this file format is incompatible 175 with previous v0/v1/v2 file formats, so you will need updated tools 176 for processing it. A preliminary version of these tools is available 177 at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>. 178 179config TASKSTATS 180 bool "Export task/process statistics through netlink (EXPERIMENTAL)" 181 depends on NET 182 default n 183 help 184 Export selected statistics for tasks/processes through the 185 generic netlink interface. Unlike BSD process accounting, the 186 statistics are available during the lifetime of tasks/processes as 187 responses to commands. Like BSD accounting, they are sent to user 188 space on task exit. 189 190 Say N if unsure. 191 192config TASK_DELAY_ACCT 193 bool "Enable per-task delay accounting (EXPERIMENTAL)" 194 depends on TASKSTATS 195 help 196 Collect information on time spent by a task waiting for system 197 resources like cpu, synchronous block I/O completion and swapping 198 in pages. Such statistics can help in setting a task's priorities 199 relative to other tasks for cpu, io, rss limits etc. 200 201 Say N if unsure. 202 203config TASK_XACCT 204 bool "Enable extended accounting over taskstats (EXPERIMENTAL)" 205 depends on TASKSTATS 206 help 207 Collect extended task accounting data and send the data 208 to userland for processing over the taskstats interface. 209 210 Say N if unsure. 211 212config TASK_IO_ACCOUNTING 213 bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" 214 depends on TASK_XACCT 215 help 216 Collect information on the number of bytes of storage I/O which this 217 task has caused. 218 219 Say N if unsure. 220 221config UTS_NS 222 bool "UTS Namespaces" 223 default n 224 help 225 Support uts namespaces. This allows containers, i.e. 226 vservers, to use uts namespaces to provide different 227 uts info for different servers. If unsure, say N. 228 229config AUDIT 230 bool "Auditing support" 231 depends on NET 232 help 233 Enable auditing infrastructure that can be used with another 234 kernel subsystem, such as SELinux (which requires this for 235 logging of avc messages output). Does not do system-call 236 auditing without CONFIG_AUDITSYSCALL. 237 238config AUDITSYSCALL 239 bool "Enable system-call auditing support" 240 depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64) 241 default y if SECURITY_SELINUX 242 help 243 Enable low-overhead system-call auditing infrastructure that 244 can be used independently or with another kernel subsystem, 245 such as SELinux. To use audit's filesystem watch feature, please 246 ensure that INOTIFY is configured. 247 248config IKCONFIG 249 tristate "Kernel .config support" 250 ---help--- 251 This option enables the complete Linux kernel ".config" file 252 contents to be saved in the kernel. It provides documentation 253 of which kernel options are used in a running kernel or in an 254 on-disk kernel. This information can be extracted from the kernel 255 image file with the script scripts/extract-ikconfig and used as 256 input to rebuild the current kernel or to build another kernel. 257 It can also be extracted from a running kernel by reading 258 /proc/config.gz if enabled (below). 259 260config IKCONFIG_PROC 261 bool "Enable access to .config through /proc/config.gz" 262 depends on IKCONFIG && PROC_FS 263 ---help--- 264 This option enables access to the kernel configuration file 265 through /proc/config.gz. 266 267config LOG_BUF_SHIFT 268 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" 269 range 12 21 270 default 17 if S390 || LOCKDEP 271 default 16 if X86_NUMAQ || IA64 272 default 15 if SMP 273 default 14 274 help 275 Select kernel log buffer size as a power of 2. 276 Defaults and Examples: 277 17 => 128 KB for S/390 278 16 => 64 KB for x86 NUMAQ or IA-64 279 15 => 32 KB for SMP 280 14 => 16 KB for uniprocessor 281 13 => 8 KB 282 12 => 4 KB 283 284config CPUSETS 285 bool "Cpuset support" 286 depends on SMP 287 help 288 This option will let you create and manage CPUSETs which 289 allow dynamically partitioning a system into sets of CPUs and 290 Memory Nodes and assigning tasks to run only within those sets. 291 This is primarily useful on large SMP or NUMA systems. 292 293 Say N if unsure. 294 295config SYSFS_DEPRECATED 296 bool "Create deprecated sysfs files" 297 default y 298 help 299 This option creates deprecated symlinks such as the 300 "device"-link, the <subsystem>:<name>-link, and the 301 "bus"-link. It may also add deprecated key in the 302 uevent environment. 303 None of these features or values should be used today, as 304 they export driver core implementation details to userspace 305 or export properties which can't be kept stable across kernel 306 releases. 307 308 If enabled, this option will also move any device structures 309 that belong to a class, back into the /sys/class hierarchy, in 310 order to support older versions of udev. 311 312 If you are using a distro that was released in 2006 or later, 313 it should be safe to say N here. 314 315config RELAY 316 bool "Kernel->user space relay support (formerly relayfs)" 317 help 318 This option enables support for relay interface support in 319 certain file systems (such as debugfs). 320 It is designed to provide an efficient mechanism for tools and 321 facilities to relay large amounts of data from kernel space to 322 user space. 323 324 If unsure, say N. 325 326config BLK_DEV_INITRD 327 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" 328 depends on BROKEN || !FRV 329 help 330 The initial RAM filesystem is a ramfs which is loaded by the 331 boot loader (loadlin or lilo) and that is mounted as root 332 before the normal boot procedure. It is typically used to 333 load modules needed to mount the "real" root file system, 334 etc. See <file:Documentation/initrd.txt> for details. 335 336 If RAM disk support (BLK_DEV_RAM) is also included, this 337 also enables initial RAM disk (initrd) support and adds 338 15 Kbytes (more on some other architectures) to the kernel size. 339 340 If unsure say Y. 341 342if BLK_DEV_INITRD 343 344source "usr/Kconfig" 345 346endif 347 348config CC_OPTIMIZE_FOR_SIZE 349 bool "Optimize for size (Look out for broken compilers!)" 350 default y 351 depends on ARM || H8300 || EXPERIMENTAL 352 help 353 Enabling this option will pass "-Os" instead of "-O2" to gcc 354 resulting in a smaller kernel. 355 356 WARNING: some versions of gcc may generate incorrect code with this 357 option. If problems are observed, a gcc upgrade may be needed. 358 359 If unsure, say N. 360 361config SYSCTL 362 bool 363 364menuconfig EMBEDDED 365 bool "Configure standard kernel features (for small systems)" 366 help 367 This option allows certain base kernel options and settings 368 to be disabled or tweaked. This is for specialized 369 environments which can tolerate a "non-standard" kernel. 370 Only use this if you really know what you are doing. 371 372config UID16 373 bool "Enable 16-bit UID system calls" if EMBEDDED 374 depends on ARM || BFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && SPARC32_COMPAT) || UML || (X86_64 && IA32_EMULATION) 375 default y 376 help 377 This enables the legacy 16-bit UID syscall wrappers. 378 379config SYSCTL_SYSCALL 380 bool "Sysctl syscall support" if EMBEDDED 381 default y 382 select SYSCTL 383 ---help--- 384 sys_sysctl uses binary paths that have been found challenging 385 to properly maintain and use. The interface in /proc/sys 386 using paths with ascii names is now the primary path to this 387 information. 388 389 Almost nothing using the binary sysctl interface so if you are 390 trying to save some space it is probably safe to disable this, 391 making your kernel marginally smaller. 392 393 If unsure say Y here. 394 395config KALLSYMS 396 bool "Load all symbols for debugging/ksymoops" if EMBEDDED 397 default y 398 help 399 Say Y here to let the kernel print out symbolic crash information and 400 symbolic stack backtraces. This increases the size of the kernel 401 somewhat, as all symbols have to be loaded into the kernel image. 402 403config KALLSYMS_ALL 404 bool "Include all symbols in kallsyms" 405 depends on DEBUG_KERNEL && KALLSYMS 406 help 407 Normally kallsyms only contains the symbols of functions, for nicer 408 OOPS messages. Some debuggers can use kallsyms for other 409 symbols too: say Y here to include all symbols, if you need them 410 and you don't care about adding 300k to the size of your kernel. 411 412 Say N. 413 414config KALLSYMS_EXTRA_PASS 415 bool "Do an extra kallsyms pass" 416 depends on KALLSYMS 417 help 418 If kallsyms is not working correctly, the build will fail with 419 inconsistent kallsyms data. If that occurs, log a bug report and 420 turn on KALLSYMS_EXTRA_PASS which should result in a stable build. 421 Always say N here unless you find a bug in kallsyms, which must be 422 reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while 423 you wait for kallsyms to be fixed. 424 425 426config HOTPLUG 427 bool "Support for hot-pluggable devices" if EMBEDDED 428 default y 429 help 430 This option is provided for the case where no hotplug or uevent 431 capabilities is wanted by the kernel. You should only consider 432 disabling this option for embedded systems that do not use modules, a 433 dynamic /dev tree, or dynamic device discovery. Just say Y. 434 435config PRINTK 436 default y 437 bool "Enable support for printk" if EMBEDDED 438 help 439 This option enables normal printk support. Removing it 440 eliminates most of the message strings from the kernel image 441 and makes the kernel more or less silent. As this makes it 442 very difficult to diagnose system problems, saying N here is 443 strongly discouraged. 444 445config BUG 446 bool "BUG() support" if EMBEDDED 447 default y 448 help 449 Disabling this option eliminates support for BUG and WARN, reducing 450 the size of your kernel image and potentially quietly ignoring 451 numerous fatal conditions. You should only consider disabling this 452 option for embedded systems with no facilities for reporting errors. 453 Just say Y. 454 455config ELF_CORE 456 default y 457 bool "Enable ELF core dumps" if EMBEDDED 458 help 459 Enable support for generating core dumps. Disabling saves about 4k. 460 461config BASE_FULL 462 default y 463 bool "Enable full-sized data structures for core" if EMBEDDED 464 help 465 Disabling this option reduces the size of miscellaneous core 466 kernel data structures. This saves memory on small machines, 467 but may reduce performance. 468 469config FUTEX 470 bool "Enable futex support" if EMBEDDED 471 default y 472 select RT_MUTEXES 473 help 474 Disabling this option will cause the kernel to be built without 475 support for "fast userspace mutexes". The resulting kernel may not 476 run glibc-based applications correctly. 477 478config ANON_INODES 479 bool "Enable anonymous inode source" if EMBEDDED 480 default y 481 help 482 Anonymous inode source for pseudo-files like epoll, signalfd, 483 timerfd and eventfd. 484 485 If unsure, say Y. 486 487config EPOLL 488 bool "Enable eventpoll support" if EMBEDDED 489 default y 490 depends on ANON_INODES 491 help 492 Disabling this option will cause the kernel to be built without 493 support for epoll family of system calls. 494 495config SIGNALFD 496 bool "Enable signalfd() system call" if EMBEDDED 497 depends on ANON_INODES 498 default y 499 help 500 Enable the signalfd() system call that allows to receive signals 501 on a file descriptor. 502 503 If unsure, say Y. 504 505config TIMERFD 506 bool "Enable timerfd() system call" if EMBEDDED 507 depends on ANON_INODES 508 default y 509 help 510 Enable the timerfd() system call that allows to receive timer 511 events on a file descriptor. 512 513 If unsure, say Y. 514 515config EVENTFD 516 bool "Enable eventfd() system call" if EMBEDDED 517 depends on ANON_INODES 518 default y 519 help 520 Enable the eventfd() system call that allows to receive both 521 kernel notification (ie. KAIO) or userspace notifications. 522 523 If unsure, say Y. 524 525config SHMEM 526 bool "Use full shmem filesystem" if EMBEDDED 527 default y 528 depends on MMU 529 help 530 The shmem is an internal filesystem used to manage shared memory. 531 It is backed by swap and manages resource limits. It is also exported 532 to userspace as tmpfs if TMPFS is enabled. Disabling this 533 option replaces shmem and tmpfs with the much simpler ramfs code, 534 which may be appropriate on small systems without swap. 535 536config VM_EVENT_COUNTERS 537 default y 538 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED 539 help 540 VM event counters are needed for event counts to be shown. 541 This option allows the disabling of the VM event counters 542 on EMBEDDED systems. /proc/vmstat will only show page counts 543 if VM event counters are disabled. 544 545config SLUB_DEBUG 546 default y 547 bool "Enable SLUB debugging support" if EMBEDDED 548 depends on SLUB 549 help 550 SLUB has extensive debug support features. Disabling these can 551 result in significant savings in code size. This also disables 552 SLUB sysfs support. /sys/slab will not exist and there will be 553 no support for cache validation etc. 554 555choice 556 prompt "Choose SLAB allocator" 557 default SLAB 558 help 559 This option allows to select a slab allocator. 560 561config SLAB 562 bool "SLAB" 563 help 564 The regular slab allocator that is established and known to work 565 well in all environments. It organizes cache hot objects in 566 per cpu and per node queues. SLAB is the default choice for 567 a slab allocator. 568 569config SLUB 570 depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT 571 bool "SLUB (Unqueued Allocator)" 572 help 573 SLUB is a slab allocator that minimizes cache line usage 574 instead of managing queues of cached objects (SLAB approach). 575 Per cpu caching is realized using slabs of objects instead 576 of queues of objects. SLUB can use memory efficiently 577 and has enhanced diagnostics. 578 579config SLOB 580# 581# SLOB does not support SMP because SLAB_DESTROY_BY_RCU is unsupported 582# 583 depends on EMBEDDED && !SMP && !SPARSEMEM 584 bool "SLOB (Simple Allocator)" 585 help 586 SLOB replaces the SLAB allocator with a drastically simpler 587 allocator. SLOB is more space efficient that SLAB but does not 588 scale well (single lock for all operations) and is also highly 589 susceptible to fragmentation. SLUB can accomplish a higher object 590 density. It is usually better to use SLUB instead of SLOB. 591 592endchoice 593 594endmenu # General setup 595 596config RT_MUTEXES 597 boolean 598 select PLIST 599 600config TINY_SHMEM 601 default !SHMEM 602 bool 603 604config BASE_SMALL 605 int 606 default 0 if BASE_FULL 607 default 1 if !BASE_FULL 608 609menu "Loadable module support" 610 611config MODULES 612 bool "Enable loadable module support" 613 help 614 Kernel modules are small pieces of compiled code which can 615 be inserted in the running kernel, rather than being 616 permanently built into the kernel. You use the "modprobe" 617 tool to add (and sometimes remove) them. If you say Y here, 618 many parts of the kernel can be built as modules (by 619 answering M instead of Y where indicated): this is most 620 useful for infrequently used options which are not required 621 for booting. For more information, see the man pages for 622 modprobe, lsmod, modinfo, insmod and rmmod. 623 624 If you say Y here, you will need to run "make 625 modules_install" to put the modules under /lib/modules/ 626 where modprobe can find them (you may need to be root to do 627 this). 628 629 If unsure, say Y. 630 631config MODULE_UNLOAD 632 bool "Module unloading" 633 depends on MODULES 634 help 635 Without this option you will not be able to unload any 636 modules (note that some modules may not be unloadable 637 anyway), which makes your kernel slightly smaller and 638 simpler. If unsure, say Y. 639 640config MODULE_FORCE_UNLOAD 641 bool "Forced module unloading" 642 depends on MODULE_UNLOAD && EXPERIMENTAL 643 help 644 This option allows you to force a module to unload, even if the 645 kernel believes it is unsafe: the kernel will remove the module 646 without waiting for anyone to stop using it (using the -f option to 647 rmmod). This is mainly for kernel developers and desperate users. 648 If unsure, say N. 649 650config MODVERSIONS 651 bool "Module versioning support" 652 depends on MODULES 653 help 654 Usually, you have to use modules compiled with your kernel. 655 Saying Y here makes it sometimes possible to use modules 656 compiled for different kernels, by adding enough information 657 to the modules to (hopefully) spot any changes which would 658 make them incompatible with the kernel you are running. If 659 unsure, say N. 660 661config MODULE_SRCVERSION_ALL 662 bool "Source checksum for all modules" 663 depends on MODULES 664 help 665 Modules which contain a MODULE_VERSION get an extra "srcversion" 666 field inserted into their modinfo section, which contains a 667 sum of the source files which made it. This helps maintainers 668 see exactly which source was used to build a module (since 669 others sometimes change the module source without updating 670 the version). With this option, such a "srcversion" field 671 will be created for all modules. If unsure, say N. 672 673config KMOD 674 bool "Automatic kernel module loading" 675 depends on MODULES 676 help 677 Normally when you have selected some parts of the kernel to 678 be created as kernel modules, you must load them (using the 679 "modprobe" command) before you can use them. If you say Y 680 here, some parts of the kernel will be able to load modules 681 automatically: when a part of the kernel needs a module, it 682 runs modprobe with the appropriate arguments, thereby 683 loading the module if it is available. If unsure, say Y. 684 685config STOP_MACHINE 686 bool 687 default y 688 depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU 689 help 690 Need stop_machine() primitive. 691endmenu 692 693menu "Block layer" 694source "block/Kconfig" 695endmenu 696