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