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