Table of Contents
Linux is a clone of the operating system Unix, written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX and Single UNIX Specification compliance.
Make sure you have no stale .o files and dependencies lying around:
make mrproper
Run the text based color menus, radiolists & dialogs kernel configuration tools:
make menuconfig
Configure the kernel based on
arch/x86/configs/i386_defconfig and the following
recommandations.
Append an extra string to the end of your kernel version. Keep it empty.
Symbol: LOCALVERSION [=]
Type : string
Prompt: Local version - append to kernel release
Location:
-> General setupSets the default system hostname before userspace calls sethostname(2).
Symbol: DEFAULT_HOSTNAME [=wakes]
Type : string
Prompt: Default hostname
Location:
-> General setupAdds support for so called swap devices or swap files in your kernel that are used to provide more virtual memory than the actual RAM present in your computer.
Symbol: SWAP [=y]
Type : boolean
Prompt: Support for paging of anonymous memory (swap)
Location:
-> General setup
Depends on: MMU [=y] && BLOCK [=y]
Stack utilization instrumentation: disable to avoid
messages like "lvm used greatest stack depth:
5956 bytes left"
Symbol: DEBUG_STACK_USAGE [=n]
Prompt: Stack utilization instrumentation
Depends on: DEBUG_KERNEL
Location:
-> Kernel hackingThis option enables the complete Linux kernel ".config" file contents to be saved in the kernel. It can be extracted from a running kernel by reading /proc/config.gz or using the script scripts/extract-ikconfig provided with the kernel sources.
Symbol: IKCONFIG [=y]
Prompt: Kernel .config support
Location:
-> General setup
Symbol: IKCONFIG_PROC [=y]
Prompt: Enable access to .config through /proc/config.gz
Depends on: IKCONFIG && PROC_FS
Location:
-> General setup
-> Kernel .config support (IKCONFIG [=y])The initial RAM filesystem is a ramfs which is loaded by the boot loader (loadlin or lilo) and that is mounted as root before the normal boot procedure. It is typically used to load modules needed to mount the "real" root file system, etc.
Symbol: BLK_DEV_INITRD [=y]
Type : boolean
Prompt: Initial RAM filesystem and RAM disk (initramfs/initrd) support
Location:
-> General setup
Depends on: BROKEN [=n] || !FRVPhysical Address Extension, necessary if you have a 32-bit processor and more than 4 gigabytes of physical RAM.
Symbol: HIGHMEM64G [=y]
Type : boolean
Prompt: 64GB
Location:
-> Processor type and features
-> High Memory Support (<choice> [=y])
Depends on: <choice> && !M486 [=n]
Selects: X86_PAE [=y]Advanced Configuration and Power Interface is an open industry specification that provides a robust functional replacement for several legacy configuration and power management interfaces, including the Plug-and-Play BIOS specification (PnP BIOS), the MultiProcessor Specification (MPS), and the Advanced Power Management (APM) specification.
Symbol: ACPI [=y]
Type : boolean
Prompt: ACPI (Advanced Configuration and Power Interface) Support
Location:
-> Power management and ACPI options
Depends on: !IA64_HP_SIM && (IA64 || X86 [=y]) && PCI [=y]
Selects: PNP [=n]With SysRq (Alt+PrintScreen) you will be able to flush the buffer cache to disk, reboot the system immediately or dump some status information.
Symbol: MAGIC_SYSRQ [=y]
Type : boolean
Prompt: Magic SysRq key
Location:
-> Kernel hacking
Depends on: !UMLkexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel. It is like a reboot but it is independent of the system firmware. And like a reboot you can start any kernel with it, not just Linux.
Symbol: KEXEC [=y]
Type : boolean
Prompt: kexec system call
Location:
-> Processor type and featuresGenerate crash dump after being started by kexec.
Symbol: CRASH_DUMP [=y]
Type : boolean
Prompt: kernel crash dumps
Location:
-> Processor type and features
Depends on: X86_64 [=n] || X86_32 [=y] && HIGHMEM [=y]This enables support for systems with more than one CPU.
Symbol: SMP [=y]
Type : boolean
Prompt: Symmetric multi-processing support
Location:
-> Processor type and featuresThis option is needed for the systems that have more than 8 CPUs.
Symbol: X86_BIGSMP [=y]
Type : boolean
Prompt: Support for big SMP systems with more than 8 CPUs
Location:
-> Processor type and features
Depends on: X86_32 [=y] && SMP [=y]This option adds support for grouping sets of processes together, for use with process control subsystems such as Cpusets, CFS, memory controls or device isolation.
Symbol: CGROUPS [=y]
Type : boolean
Prompt: Control Group support
Location:
-> General setup
Depends on: EVENTFD [=y]
Selected by: SCHED_AUTOGROUP [=n]Provides a way to freeze and unfreeze all tasks in a cgroup.
Symbol: CGROUP_FREEZER [=y]
Type : boolean
Prompt: Freezer cgroup subsystem
Location:
-> General setup
-> Control Group support (CGROUPS [=y])
Depends on: CGROUPS [=y]Provides a cgroup implementing whitelists for devices which a process in the cgroup can mknod or open.
Symbol: CGROUP_DEVICE [=y]
Type : boolean
Prompt: Device controller for cgroups
Location:
-> General setup
-> Control Group support (CGROUPS [=y])
Depends on: CGROUPS [=y]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.
Symbol: CPUSETS [=y]
Type : boolean
Prompt: Cpuset support
Location:
-> General setup
-> Control Group support (CGROUPS [=y])
Depends on: CGROUPS [=y]Provides a simple Resource Controller for monitoring the total CPU consumed by the tasks in a cgroup.
Symbol: CGROUP_CPUACCT [=y]
Type : boolean
Prompt: Simple CPU accounting cgroup subsystem
Location:
-> General setup
-> Control Group support (CGROUPS [=y])
Depends on: CGROUPS [=y]This option enables controller independent resource accounting infrastructure that works with cgroups.
Symbol: RESOURCE_COUNTERS [=y]
Type : boolean
Prompt: Resource counters
Location:
-> General setup
-> Control Group support (CGROUPS [=y])
Depends on: CGROUPS [=y]This option extends the per-cpu mode to restrict monitoring to threads which belong to the cgroup specified and run on the designated cpu.
Symbol: CGROUP_PERF [=y]
Type : boolean
Prompt: Enable perf_event per-cpu per-container group (cgroup) monitoring
Location:
-> General setup
-> Control Group support (CGROUPS [=y])
Depends on: PERF_EVENTS [=y] && CGROUPS [=y]This feature lets CPU scheduler recognize task groups and control CPU bandwidth allocation to such task groups. It uses cgroups to group tasks.
Symbol: CGROUP_SCHED [=y]
Type : boolean
Prompt: Group CPU scheduler
Location:
-> General setup
-> Control Group support (CGROUPS [=y])
Depends on: CGROUPS [=y]Generic block IO controller cgroup interface. This is the common cgroup interface which should be used by various IO controlling policies.
Symbol: BLK_CGROUP [=y]
Type : boolean
Prompt: Block IO controller
Location:
-> General setup
-> Control Group support (CGROUPS [=y])
Depends on: CGROUPS [=y] && BLOCK [=y]This allows your Linux host to run other operating systems inside virtual machines (guests). It supports hosting fully virtualized guest machines using hardware virtualization extensions. It also provides support for KVM on Intel processors equipped with the VT extensions and AMD processors equipped with the AMD-V (SVM) extensions.
Symbol: VIRTUALIZATION [=y] Type : boolean Prompt: Virtualization Depends on: HAVE_KVM [=y] || X86 [=y]
Symbol: KVM [=m]
Type : tristate
Prompt: Kernel-based Virtual Machine (KVM) support
Location:
-> Virtualization (VIRTUALIZATION [=y])
Depends on: VIRTUALIZATION[=y] && HAVE_KVM[=y] && HIGH_RES_TIMERS [=y] && NET [=y]
Symbol: KVM_INTEL [=m]
Prompt: KVM for Intel processors support
Depends on: VIRTUALIZATION && KVM
Location:
-> Virtualization (VIRTUALIZATION [=y])
-> Kernel-based Virtual Machine (KVM) support (KVM [=m])
Symbol: KVM_AMD [=m]
Prompt: KVM for AMD processors support
Depends on: VIRTUALIZATION && KVM
Location:
-> Virtualization (VIRTUALIZATION [=y])
-> Kernel-based Virtual Machine (KVM) support (KVM [=m])This enables options for running Linux under various hyper-visors. This option enables basic hypervisor detection and platform setup.
Symbol: HYPERVISOR_GUEST [=y]
Type : boolean
Prompt: Linux guest support
Location:
-> Processor type and features
Selected by: X86_VSMP [=n] && X86_64 [=n] && PCI [=y] && X86_EXTENDED_PLATFORM [=n] && SMP [=y]This changes the kernel so it can modify itself when it is run under a hypervisor, potentially improving performance significantly over full virtualization.
Symbol: PARAVIRT [=y]
Type : boolean
Prompt: Enable paravirtualization code
Location:
-> Processor type and features
-> Linux guest support (HYPERVISOR_GUEST [=y])
Depends on: HYPERVISOR_GUEST [=y]
Selected by: X86_VSMP [=n] && X86_64 [=n] && PCI [=y] && X86_EXTENDED_PLATFORM [=n] && SMP [=y]This option enables various optimizations for running under the KVM hypervisor.
Symbol: KVM_GUEST [=y]
Type : boolean
Prompt: KVM Guest support (including kvmclock)
Location:
-> Processor type and features
-> Linux guest support (HYPERVISOR_GUEST [=y])
Depends on: HYPERVISOR_GUEST [=y] && PARAVIRT [=y]
Selects: PARAVIRT_CLOCK [=y]Lguest is a tiny in-kernel hypervisor. Selecting this will allow your kernel to boot under lguest.
Symbol: LGUEST_GUEST [=y]
Type : boolean
Prompt: Lguest guest support
Location:
-> Processor type and features
-> Linux guest support (HYPERVISOR_GUEST [=y])
Depends on: HYPERVISOR_GUEST [=y] && X86_32 [=y] && PARAVIRT [=y]
Selects: TTY [=y] && VIRTUALIZATION [=y] && VIRTIO [=y] && VIRTIO_CONSOLE [=y]This is the Linux Xen port. Enabling this will allow the kernel to boot in a paravirtualized environment under the Xen hypervisor.
Symbol: XEN [=y]
Type : boolean
Prompt: Xen guest support
Location:
-> Processor type and features
-> Linux guest support (HYPERVISOR_GUEST [=y])
-> Enable paravirtualization code (PARAVIRT [=y])
Depends on: HYPERVISOR_GUEST [=y] && PARAVIRT [=y] && \
(X86_64 [=n] || X86_32 [=y] && X86_PAE [=y] && \
!X86_VISWS [=n]) && X86_TSC [=y]
Selects: PARAVIRT_CLOCK [=y] && XEN_HAVE_PVMMU [=n]This drivers provides support for virtio based paravirtual device drivers over PCI. Most QEMU based VMMs should support these devices (like KVM or Xen).
Symbol: VIRTIO_PCI [=y]
Type : tristate
Prompt: PCI driver for virtio devices
Location:
-> Device Drivers
-> Virtio drivers
Depends on: PCI [=y]
Selects: VIRTIO [=y]This driver supports increasing and decreasing the amount of memory within a KVM guest.
Symbol: VIRTIO_BALLOON [=y]
Type : tristate
Prompt: Virtio balloon driver
Location:
-> Device Drivers
-> Virtio drivers
Depends on: VIRTIO [=y]This is the virtual block driver for virtio. It can be used with lguest or QEMU based VMMs (like KVM or Xen).
Symbol: VIRTIO_BLK [=y]
Type : tristate
Prompt: Virtio block driver
Location:
-> Device Drivers
-> Block devices (BLK_DEV [=y])
Depends on: BLK_DEV [=y] && VIRTIO [=y]This is the virtual network driver for virtio. It can be used with lguest or QEMU based VMMs (like KVM or Xen).
Symbol: VIRTIO_NET [=y]
Type : tristate
Prompt: Virtio network driver
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Network core driver support (NET_CORE [=y])
Depends on: NETDEVICES [=y] && NET_CORE [=y] && VIRTIO [=y]Virtio console for use with lguest and other hypervisors.
Symbol: VIRTIO_CONSOLE [=y]
Type : tristate
Prompt: Virtio console
Location:
-> Device Drivers
-> Character devices
Depends on: VIRTIO [=y] && TTY [=y]
Selects: HVC_DRIVER [=y]
Selected by: LGUEST_GUEST [=y] && PARAVIRT_GUEST [=y] && X86_32 [=y] && PARAVIRT [=y]This driver provides kernel-side support for the virtual Random Number Generator hardware.
Symbol: HW_RANDOM_VIRTIO [=y]
Type : tristate
Prompt: VirtIO Random Number Generator support
Location:
-> Device Drivers
-> Character devices
-> Hardware Random Number Generator Core support (HW_RANDOM [=y])
Depends on: HW_RANDOM [=y] && VIRTIO [=y]Support multiple physical spindles through a single logical device. Required for RAID and logical volume management.
Symbol: MD [=y]
Type : boolean
Prompt: Multiple devices driver support (RAID and LVM)
Location:
-> Device Drivers
Depends on: BLOCK [=y]This driver lets you combine several hard disk partitions into one logical block device. This can be used to simply append one partition to another one or to combine several redundant hard disks into a RAID1/4/5 device so as to provide protection against hard disk failures. This is called "Software RAID" since the combining of the partitions is done by the kernel.
Symbol: BLK_DEV_MD [=y]
Type : tristate
Prompt: RAID support
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
Depends on: MD [=y]
Selected by: DM_RAID [=y] && MD [=y] && BLK_DEV_DM [=y]This mode combines the hard disk partitions by simply appending one to the other.
Symbol: MD_LINEAR [=y]
Type : tristate
Prompt: Linear (append) mode
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> RAID support (BLK_DEV_MD [=y])
Depends on: MD && BLK_DEV_MDThis mode combines the hard disk partitions into one logical device in such a fashion as to fill them up evenly, one chunk here and one chunk there. This will increase the throughput rate if the partitions reside on distinct disks.
Symbol: MD_RAID0 [=y]
Type : tristate
Prompt: RAID-0 (striping) mode
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> RAID support (BLK_DEV_MD [=y])
Depends on: MD && BLK_DEV_MDA RAID-1 set consists of several disk drives which are exact copies of each other. In the event of a mirror failure, the RAID driver will continue to use the operational mirrors in the set, providing an error free MD (multiple device) to the higher levels of the kernel. In a set with N drives, the available space is the capacity of a single drive, and the set protects against a failure of (N - 1) drives.
Symbol: MD_RAID1 [=y]
Type : tristate
Prompt: RAID-1 (mirroring) mode
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> RAID support (BLK_DEV_MD [=y])
Depends on: MD && BLK_DEV_MDRAID-10 provides a combination of striping (RAID-0) and mirroring (RAID-1) with easier configuration and more flexible layout. Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to be the same size (or at least, only as much as the smallest device will be used).
Symbol: MD_RAID10 [=y]
Type : tristate
Prompt: RAID-10 (mirrored striping) mode
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> RAID support (BLK_DEV_MD [=y])
Depends on: MD && BLK_DEV_MDA RAID-5 set of N drives with a capacity of C MB per drive provides the capacity of C * (N - 1) MB, and protects against a failure of a single drive. For a given sector (row) number, (N - 1) drives contain data sectors, and one drive contains the parity protection. For a RAID-4 set, the parity blocks are present on a single drive, while a RAID-5 set distributes the parity across the drives in one of the available parity distribution methods.
A RAID-6 set of N drives with a capacity of C MB per drive provides the capacity of C * (N - 2) MB, and protects against a failure of any two drives. For a given sector (row) number, (N - 2) drives contain data sectors, and two drives contains two independent redundancy syndromes. Like RAID-5, RAID-6 distributes the syndromes across the drives in one of the available parity distribution methods.
Symbol: MD_RAID456 [=y]
Type : tristate
Prompt: RAID-4/RAID-5/RAID-6 mode
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> RAID support (BLK_DEV_MD [=y])
Depends on: MD && BLK_DEV_MDThe "faulty" module allows for a block device that occasionally returns read or write errors. It is useful for testing.
Symbol: MD_FAULTY [=y]
Type : tristate
Prompt: Faulty test module for MD
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> RAID support (BLK_DEV_MD [=y])
Depends on: MD [=y] && BLK_DEV_MD [=y]Allows a block device to be used as cache for other devices; uses a btree for indexing and the layout is optimized for SSDs.
Symbol: BCACHE [=y]
Type : tristate
Prompt: Block device as cache
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
Depends on: MD [=y]Device-mapper is a low level volume manager. It works by allowing people to specify mappings for ranges of logical sectors. Various mapping types are available, in addition people may write their own modules containing custom mappings if they wish.
Symbol: BLK_DEV_DM [=y]
Type : tristate
Prompt: Device mapper support
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
Depends on: MD [=y]This device-mapper target allows you to create a device that transparently encrypts the data on it. You'll need to activate the ciphers you're going to use in the cryptoapi configuration.
Symbol: DM_CRYPT [=y]
Type : tristate
Prompt: Crypt target support
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> Device mapper support (BLK_DEV_DM [=y])
Selects: CRYPTO && CRYPTO_CBC
Depends on: MD && BLK_DEV_DMAllow volume managers to take writable snapshots of a device.
Symbol: DM_SNAPSHOT [=y]
Type : tristate
Prompt: Snapshot target
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> Device mapper support (BLK_DEV_DM [=y])
Depends on: MD && BLK_DEV_DMProvides thin provisioning and snapshots that share a data store.
Symbol: DM_THIN_PROVISIONING [=y]
Type : tristate
Prompt: Thin provisioning target
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> Device mapper support (BLK_DEV_DM [=y])
Depends on: MD && BLK_DEV_DMdm-cache attempts to improve performance of a block device by moving frequently used data to a smaller, higher performance device. Different 'policy' plugins can be used to change the algorithms used to select which blocks are promoted, demoted, cleaned etc. It supports writeback and writethrough modes.
Symbol: DM_CACHE [=y]
Type : tristate
Prompt: Cache target (EXPERIMENTAL)
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> Device mapper support (BLK_DEV_DM [=y])
Depends on: MD && BLK_DEV_DMAllow volume managers to mirror logical volumes, also needed for live data migration tools such as 'pvmove'.
Symbol: DM_MIRROR [=y]
Type : tristate
Prompt: Mirror target
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> Device mapper support (BLK_DEV_DM [=y])
Depends on: MD && BLK_DEV_DMA dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mapping.
Symbol: DM_RAID [=y]
Type : tristate
Prompt: RAID 1/4/5/6/10 target
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
-> Device mapper support (BLK_DEV_DM [=y])
Depends on: MD && BLK_DEV_DMA target that discards writes, and returns all zeroes for reads. Useful in some recovery situations.
Symbol: DM_ZERO [=y]
Type : tristate
Prompt: Zero target
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
Depends on: MD && BLK_DEV_DMAllow volume managers to support multipath hardware.
Symbol: DM_MULTIPATH [=y]
Type : tristate
Prompt: Multipath target
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
Depends on: MD && BLK_DEV_DM && (SCSI_DH || !SCSI_DH)A target that delays reads and/or writes and can send them to different devices. Useful for testing.
Symbol: DM_DELAY [=y]
Type : tristate
Prompt: I/O delaying target
Location:
-> Device Drivers
-> Multiple devices driver support (RAID and LVM) (MD [=y])
Depends on: MD && BLK_DEV_DM
Symbol: VLAN_8021Q [=y]
Prompt: 802.1Q VLAN Support
Depends on: NET
Location:
-> Networking support (NET [=y])
-> Networking options
Symbol: BRIDGE [=y]
Prompt: 802.1d Ethernet Bridging
Depends on: NET
Location:
-> Networking support (NET [=y])
-> Networking options
Selects: LLC && STP
Symbol: TUN [=y]
Prompt: Universal TUN/TAP device driver support
Depends on: NETDEVICES
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
Selects: CRC32
Symbol: BONDING [=y]
Prompt: Bonding driver support
Depends on: NETDEVICES && INET && (IPV6 || IPV6=n)
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
Symbol: 8139CP [=y]
Prompt: RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIME
Depends on: NETDEVICES && NET_ETHERNET && NET_PCI && PCI && EXPERIMEN
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Ethernet (10 or 100Mbit) (NET_ETHERNET [=y])
Selects: CRC32 && MII
Symbol: EXT4_FS [=y]
Prompt: The Extended 4 (ext4) filesystem
Depends on: BLOCK
Location:
-> File systems
Selects: JBD2 && CRC16
Symbol: REISERFS_FS [=y]
Prompt: Reiserfs support
Depends on: BLOCK
Location:
-> File systems
Selects: CRC32
Symbol: JFS_FS [=y]
Prompt: JFS filesystem support
Depends on: BLOCK
Location:
-> File systems
Selects: NLS && CRC32
Symbol: XFS_FS [=y]
Prompt: XFS filesystem support
Depends on: BLOCK
Location:
-> File systems
Selects: EXPORTFS
Symbol: BTRFS_FS [=y]
Prompt: Btrfs filesystem support
Depends on: BLOCK
Location:
-> File systems
Symbol: NTFS_FS [=y]
Prompt: NTFS file system support
Depends on: BLOCK
Location:
-> File systems
-> DOS/FAT/NT Filesystems
Selects: NLS