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