How to configure the Linux kernel/Loadable module support

Howto configure the Linux kernel / Loadable module support

=Loadable module support=
 * Option: Enable loadable module support
 * Kernel Versions: 2.6.15.6 ...
 * variable name: MODULES
 * (on/off)
 * Kernel modules are small pieces of compiled code which can be inserted in the running kernel, rather than being permanently built into the kernel. You use the "modprobe" tool to add (and sometimes remove) them.  If you say Y here, many parts of the kernel can be built as modules (by answering M instead of Y where indicated): this is most useful for infrequently used options which are not required for booting.  For more information, see the man pages for modprobe, lsmod, modinfo, insmod and rmmod.
 * If you say Y here, you will need to run "make modules_install" to put the modules under /lib/modules/ where modprobe can find them (you may need to be root to do this).
 * If unsure, say Y.


 * Option: Module unloading
 * Kernel Versions: 2.6.15.6 ...
 * variable name: MODULE_UNLOAD
 * (on/off)
 * depends on MODULES
 * Without this option you will not be able to unload any modules (note that some modules may not be unloadable anyway), which makes your kernel slightly smaller and simpler. If unsure, say Y.


 * Option: Forced module unloading
 * Kernel Versions: 2.6.15.6 ...
 * variable name: MODULE_FORCE_UNLOAD
 * (on/off)
 * depends on MODULE_UNLOAD && EXPERIMENTAL
 * This option allows you to force a module to unload, even if the kernel believes it is unsafe: the kernel will remove the module without waiting for anyone to stop using it (using the -f option to rmmod). This is mainly for kernel developers and desperate users. If unsure, say N.


 * Option:
 * Kernel Versions: 2.6.15.6 ...
 * variable name: OBSOLETE_MODPARM
 * (on/off)
 * default y
 * depends on MODULES
 * You need this option to use module parameters on modules which have not been converted to the new module parameter system yet. If unsure, say Y.


 * Option: Module versioning support (EXPERIMENTAL)
 * Kernel Versions: 2.6.15.6 ...
 * variable name: MODVERSIONS
 * (on/off)
 * depends on MODULES && EXPERIMENTAL
 * Usually, you have to use modules compiled with your kernel. Saying Y here makes it sometimes possible to use modules compiled for different kernels, by adding enough information to the modules to (hopefully) spot any changes which would make them incompatible with the kernel you are running. If unsure, say N.


 * Option: Source checksum for all modules
 * Kernel Versions: 2.6.15.6 ...
 * variable name: MODULE_SRCVERSION_ALL
 * (on/off)
 * depends on MODULES
 * Modules which contain a MODULE_VERSION get an extra "srcversion" field inserted into their modinfo section, which contains a    sum of the source files which made it.  This helps maintainers see exactly which source was used to build a module (since others sometimes change the module source without updating the version).  With this option, such a "srcversion" field will be created for all modules.  If unsure, say N.


 * Option: Automatic kernel module loading
 * Kernel Versions: 2.6.15.6 ...
 * variable name: KMOD
 * (on/off)
 * depends on MODULES
 * Normally when you have selected some parts of the kernel to be created as kernel modules, you must load them (using the modprobe command) before you can use them. If you say Y here, some parts of the kernel will be able to load modules automatically: when a part of the kernel needs a module, it runs modprobe with the appropriate arguments, thereby loading the module if it is available. If unsure, say Y.


 * Option:
 * Kernel Versions: 2.6.15.6 ...
 * variable name: STOP_MACHINE
 * (on/off)
 * default y
 * depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
 * Need stop_machine primitive.