How to configure the Linux kernel/General setup


 * Option: "Local version - append to kernel release"
 * Kernel Versions: 2.6.15.6-2.9.19; ...asdf
 * Varable name: LOCALVERSION
 * Append an extra string to the end of your kernel version. This will show up when you type uname, for example. The string you set here will be appended after the contents of any files with a filename matching localversion* in your object and source tree, in that order. Your total string can be a maximum of 64 characters.


 * Option: Automatically append version information to the version string
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: LOCALVERSION_AUTO
 * (on/off)
 * default y
 * This will try to automatically determine if the current tree is a release tree by looking for git tags that belong to the current top of tree revision.
 * A string of the format -gxxxxxxxx will be added to the localversion if a git based tree is found. The string generated by this will be appended after any matching localversion* files, and after the value set in CONFIG_LOCALVERSION
 * Note: This requires Perl, and a git repository, but not necessarily the git or cogito tools to be installed.


 * Option: Support for paging of anonymous memory (swap)
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: SWAP
 * (on/off)
 * depends on MMU
 * default y
 * This option allows you to choose whether you want to have support for socalled swap devices or swap files in your kernel that are used to provide more virtual memory than the actual RAM present in your computer. If unsure say Y.


 * Option: System V IPC
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: SYSVIPC
 * (on/off)
 * depends on MMU
 * Inter Process Communication is a suite of library functions and system calls which let processes (running programs) synchronize and exchange information. It is generally considered to be a good thing, and some programs won't run unless you say Y here. In particular, if you want to run the DOS emulator dosemu under Linux (read the DOSEMU-HOWTO, available from ), you'll need to say Y here.
 * You can find documentation about IPC with "info ipc" and also in section 6.4 of the Linux Programmer's Guide, available from .


 * Option: POSIX Message Queues
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: POSIX_MQUEUE
 * (on/off)
 * depends on NET && EXPERIMENTAL
 * POSIX variant of message queues is a part of IPC. In POSIX message queues every message has a priority which decides about succession of receiving it by a process. If you want to compile and run programs written e.g. for Solaris with use of its POSIX message queues (functions mq_*) say Y here. To use this feature you will also need mqueue library, available from 
 * POSIX message queues are visible as a filesystem called 'mqueue' and can be mounted somewhere if you want to do filesystem operations on message queues.
 * If unsure, say Y.


 * Option: BSD Process Accounting
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: BSD_PROCESS_ACCT
 * (on/off)
 * If you say Y here, a user level program will be able to instruct the kernel (via a special system call) to write process accounting information to a file: whenever a process exits, information about that process will be appended to the file by the kernel. The information includes things such as creation time, owning user, command name, memory usage, controlling terminal etc. (the complete list is in the struct acct in ).  It is up to the user level program to do useful things with this information.  This is generally a good idea, so say Y.


 * Option: BSD Process Accounting version 3 file format
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: BSD_PROCESS_ACCT_V3
 * (on/off)
 * depends on BSD_PROCESS_ACCT
 * default n
 * If you say Y here, the process accounting information is written in a new file format that also logs the process IDs of each process and it's parent. Note that this file format is incompatible with previous v0/v1/v2 file formats, so you will need updated tools for processing it. A preliminary version of these tools is available at .


 * Option: Sysctl support
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: SYSCTL.
 * (on/off)
 * The sysctl interface provides a means of dynamically changing certain kernel parameters and variables on the fly without requiring a recompile of the kernel or reboot of the system. The primary interface consists of a system call, but if you say Y to "/proc file system support", a tree of modifiable sysctl entries will be generated beneath the /proc/sys directory. They are explained in the files in .  Note that enabling this option will enlarge the kernel by at least 8 KB.
 * As it is generally a good thing, you should say Y here unless building a kernel for install/rescue disks or your system is very limited in memory.


 * Option: Auditing support
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: AUDIT
 * (on/off)
 * depends on NET
 * default y if SECURITY_SELINUX
 * Enable auditing infrastructure that can be used with another kernel subsystem, such as SELinux (which requires this for logging of avc messages output). Does not do system-call auditing without CONFIG_AUDITSYSCALL.


 * Option:  Enable system-call auditing support
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: AUDITSYSCALL
 * (on/off)
 * depends on AUDIT && (X86 || PPC || PPC64 || ARCH_S390 || IA64 || UML || SPARC64)
 * default y if SECURITY_SELINUX
 * Enable low-overhead system-call auditing infrastructure that can be used independently or with another kernel subsystem, such as SELinux.


 * Option: Support for hot-pluggable devices
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: HOTPLUG
 * (on/off)  if !ARCH_S390
 * default ARCH_S390
 * This option is provided for the case where no in-kernel-tree modules require HOTPLUG functionality, but a module built outside the kernel tree does. Such modules require Y here.


 * Option: Kernel Userspace Events
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: KOBJECT_UEVENT
 * (on/off)  if EMBEDDED
 * depends on NET
 * default y
 * This option enables the kernel userspace event layer, which is a simple mechanism for kernel-to-user communication over a netlink socket. The goal of the kernel userspace events layer is to provide a simple and efficient events system, that notifies userspace about kobject state changes. This will enable applications to just listen for events instead of polling system devices and files. Hotplug events (kobject addition and removal) are also available on the netlink socket in addition to the execution of /sbin/hotplug if CONFIG_HOTPLUG is enabled.
 * Say Y, unless you are building a system requiring minimal memory consumption.


 * Option: Kernel .config support
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: IKCONFIG
 * (on/off)
 * This option enables the complete Linux kernel ".config" file contents to be saved in the kernel. It provides documentation of which kernel options are used in a running kernel or in an on-disk kernel. This information can be extracted from the kernel image file with the script scripts/extract-ikconfig and used as input to rebuild the current kernel or to build another kernel. It can also be extracted from a running kernel by reading /proc/config.gz if enabled (below).


 * Option: Enable access to .config through /proc/config.gz
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: IKCONFIG_PROC
 * (on/off)
 * depends on IKCONFIG && PROC_FS
 * This option enables access to the kernel configuration file through /proc/config.gz.


 * Option:  Cpuset support
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: CPUSETS
 * (on/off)
 * depends on SMP
 * This option will let you create and manage CPUSETs which allow dynamically partitioning a system into sets of CPUs and Memory Nodes and assigning tasks to run only within those sets. This is primarily useful on large SMP or NUMA systems.
 * Say N if unsure.


 * Option: Howto configure the Linux kernel/usr


 * Option: Optimize for size (Look out for broken compilers!)
 * Kernel Versions: 2.6.15.6-2.9.19; ...
 * Varable name: CC_OPTIMIZE_FOR_SIZE
 * (on/off)
 * default y
 * depends on ARM || H8300 || EXPERIMENTAL
 * Enabling this option will pass "-Os" instead of "-O2" to gcc resulting in a smaller kernel.
 * WARNING: some versions of gcc may generate incorrect code with this option. If problems are observed, a gcc upgrade may be needed.
 * If unsure, say N.


 * Option: Configure standard kernel features (for small systems)
 * (on/off)
 * This option allows certain base kernel options and settings        to be disabled or tweaked. This is for specialized         environments which can tolerate a "non-standard" kernel.         Only use this if you really know what you are doing.
 * ->Howto configure the Linux kernel/General setup/Configure standard kernel features (for small systems): Embeded