- config KERNEL_MEMCG_KMEM
- bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)"
- default n
- depends on KERNEL_MEMCG
- help
- The Kernel Memory extension for Memory Resource Controller can limit
- the amount of memory used by kernel objects in the system. Those are
- fundamentally different from the entities handled by the standard
- Memory Controller, which are page-based, and can be swapped. Users of
- the kmem extension can use it to guarantee that no group of processes
- will ever exhaust kernel resources alone.
-
- config KERNEL_PERF_EVENTS
- bool
- default y if KERNEL_CGROUP_PERF
-
- config KERNEL_CGROUP_PERF
- bool "Enable perf_event per-cpu per-container group (cgroup) monitoring"
- default n
- help
- This option extends the per-cpu mode to restrict monitoring to
- threads which belong to the cgroup specified and run on the
- designated cpu.
-
- menuconfig KERNEL_CGROUP_SCHED
- bool "Group CPU scheduler"
- default n
- help
- This feature lets CPU scheduler recognize task groups and control CPU
- bandwidth allocation to such task groups. It uses cgroups to group
- tasks.
-
- if KERNEL_CGROUP_SCHED
-
- config KERNEL_FAIR_GROUP_SCHED
- bool "Group scheduling for SCHED_OTHER"
- default n
-
- config KERNEL_CFS_BANDWIDTH
- bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
- default n
- depends on KERNEL_FAIR_GROUP_SCHED
- help
- This option allows users to define CPU bandwidth rates (limits) for
- tasks running within the fair group scheduler. Groups with no limit
- set are considered to be unconstrained and will run with no
- restriction.
- See tip/Documentation/scheduler/sched-bwc.txt for more information.
-
- config KERNEL_RT_GROUP_SCHED
- bool "Group scheduling for SCHED_RR/FIFO"
- default n
- help
- This feature lets you explicitly allocate real CPU bandwidth
- to task groups. If enabled, it will also make it impossible to
- schedule realtime tasks for non-root users until you allocate
- realtime bandwidth for them.
-
- endif
-
- config KERNEL_BLK_CGROUP
- bool "Block IO controller"
- default y
- help
- Generic block IO controller cgroup interface. This is the common
- cgroup interface which should be used by various IO controlling
- policies.
-
- Currently, CFQ IO scheduler uses it to recognize task groups and
- control disk bandwidth allocation (proportional time slice allocation)
- to such task groups. It is also used by bio throttling logic in
- block layer to implement upper limit in IO rates on a device.
-
- This option only enables generic Block IO controller infrastructure.
- One needs to also enable actual IO controlling logic/policy. For
- enabling proportional weight division of disk bandwidth in CFQ, set
- CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
- CONFIG_BLK_DEV_THROTTLING=y.
-
- config KERNEL_DEBUG_BLK_CGROUP
- bool "Enable Block IO controller debugging"
- default n
- depends on KERNEL_BLK_CGROUP
- help
- Enable some debugging help. Currently it exports additional stat
- files in a cgroup which can be useful for debugging.
-
- config KERNEL_NET_CLS_CGROUP
- bool "Control Group Classifier"
- default y
-
- config KERNEL_NETPRIO_CGROUP
- bool "Network priority cgroup"
- default y
-
- endif
-
- #
- # Namespace support symbols
- #
-
- config KERNEL_NAMESPACES
- bool "Enable kernel namespaces"
- default n
-
- if KERNEL_NAMESPACES
-
- config KERNEL_UTS_NS
- bool "UTS namespace"
- default y
- help
- In this namespace tasks see different info provided
- with the uname() system call
-
- config KERNEL_IPC_NS
- bool "IPC namespace"
- default y
- help
- In this namespace tasks work with IPC ids which correspond to
- different IPC objects in different namespaces.
-
- config KERNEL_USER_NS
- bool "User namespace (EXPERIMENTAL)"
- default y
- help
- This allows containers, i.e. vservers, to use user namespaces
- to provide different user info for different servers.
-
- config KERNEL_PID_NS
- bool "PID Namespaces"
- default y
- help
- Support process id namespaces. This allows having multiple
- processes with the same pid as long as they are in different
- pid namespaces. This is a building block of containers.
-
- config KERNEL_NET_NS
- bool "Network namespace"
- default y
- help
- Allow user space to create what appear to be multiple instances
- of the network stack.
-
- endif
-
- #
- # LXC related symbols
- #
-
- config KERNEL_LXC_MISC
- bool "Enable miscellaneous LXC related options"
- default n
-
- if KERNEL_LXC_MISC
-
- config KERNEL_DEVPTS_MULTIPLE_INSTANCES
- bool "Support multiple instances of devpts"
- default y
- help
- Enable support for multiple instances of devpts filesystem.
- If you want to have isolated PTY namespaces (eg: in containers),
- say Y here. Otherwise, say N. If enabled, each mount of devpts
- filesystem with the '-o newinstance' option will create an
- independent PTY namespace.
-
- config KERNEL_POSIX_MQUEUE
- bool "POSIX Message Queues"
- default n
- help
- 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.
-
- 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.
-
- endif
-
- comment "Package build options"
-
- config DEBUG
- bool
- prompt "Compile packages with debugging info"
- default n
- help
- Adds -g3 to the CFLAGS
-
- config IPV6
- bool
- prompt "Enable IPv6 support in packages"
- default y
- help
- Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts).
-
- config PKG_BUILD_PARALLEL
- bool
- prompt "Compile certain packages parallelized"
- default y
- help
- This adds a -jX option to certain packages that are known to
- behave well for parallel build. By default the package make processes
- use the main jobserver, in which case this option only takes effect
- when you add -jX to the make command.
-
- If you are unsure, select N.
-
- config PKG_BUILD_USE_JOBSERVER
- bool
- prompt "Use top-level make jobserver for packages"
- depends on PKG_BUILD_PARALLEL
- default y
- help
- This passes the main make process jobserver fds to package builds,
- enabling full parallelization across different packages
-
- Note that disabling this may overcommit CPU resources depending on the
- -j level of the main make process, the number of package
- submake jobs selected below and the number of actual CPUs present.
- Example: If the main make is passed a -j4 and the submake -j
- is also set to 4, we may end up with 16 parallel make processes
- in the worst case.
-
-
- config PKG_BUILD_JOBS
- int
- prompt "Number of package submake jobs (2-512)"
- range 2 512
- default 2
- depends on PKG_BUILD_PARALLEL && !PKG_BUILD_USE_JOBSERVER
- help
- The number of jobs (-jX) to pass to packages submake.
-
- config PKG_DEFAULT_PARALLEL
- bool
- prompt "Parallelize the default package build rule (May break build)"
- depends on PKG_BUILD_PARALLEL
- depends on BROKEN
- default n
- help
- Always set the default package build rules to parallel build.
-
- WARNING: This may break build or kill your cat, as it builds
- packages with multiple jobs that are probably not tested in
- a parallel build environment.
-
- Only say Y, if you don't mind fixing broken packages.
- Before reporting build bugs, set this to N and re-run the build.
-
- comment "Stripping options"
-
- choice
- prompt "Binary stripping method"
- default USE_STRIP if EXTERNAL_TOOLCHAIN
- default USE_STRIP if USE_GLIBC || USE_EGLIBC || USE_MUSL
- default USE_SSTRIP
- help
- Select the binary stripping method you wish to use.
-
- config NO_STRIP
- bool "none"
- help
- This will install unstripped binaries (useful for native compiling/debugging)
-
- config USE_STRIP
- bool "strip"
- help
- This will install binaries stripped using strip from binutils
-
-
- config USE_SSTRIP
- bool "sstrip"
- depends on !DEBUG
- depends on !USE_GLIBC
- depends on !USE_EGLIBC
- help
- This will install binaries stripped using sstrip
- endchoice
-
- config STRIP_ARGS
- string
- prompt "Strip arguments"
- depends on USE_STRIP
- default "--strip-unneeded --remove-section=.comment --remove-section=.note" if DEBUG
- default "--strip-all"
- help
- Specifies arguments passed to the strip command when stripping binaries
-
- config STRIP_KERNEL_EXPORTS
- bool "Strip unnecessary exports from the kernel image"
- help
- Reduces kernel size by stripping unused kernel exports from the kernel image
- Note that this might make the kernel incompatible with any kernel modules that
- were not selected at the time the kernel image was created
-
- config USE_MKLIBS
- bool "Strip unnecessary functions from libraries"
- help
- Reduces libraries to only those functions that are necessary for using all
- selected packages (including those selected as <M>)
- Note that this will make the system libraries incompatible with most of the packages
- that are not selected during the build process
-
- choice
- prompt "Preferred standard C++ library"
- default USE_LIBSTDCXX if USE_EGLIBC
- default USE_UCLIBCXX
- help
- Select the preferred standard C++ library for all packages that support this.
-
- config USE_UCLIBCXX
- bool "uClibc++"
-
- config USE_LIBSTDCXX
- bool "libstdc++"
- endchoice
-
-endmenu
-
-menuconfig DEVEL
- bool "Advanced configuration options (for developers)"
- default n
-
- config BROKEN
- bool "Show broken platforms / packages" if DEVEL
- default n
-
- config DOWNLOAD_FOLDER
- string "Download folder" if DEVEL
- default ""
-
- config LOCALMIRROR
- string "Local mirror for source packages" if DEVEL
- default ""
-
- config AUTOREBUILD
- bool "Automatic rebuild of packages" if DEVEL
- default y
- help
- Automatically rebuild packages when their files change
-
- config BUILD_SUFFIX
- string "Build suffix to append to the BUILD_DIR variable" if DEVEL
- default ""
- help
- Build suffix to append to the BUILD_DIR variable, i.e: build_dir_suffix
-
- config TARGET_ROOTFS_DIR
- string "Override the default TARGET_ROOTFS_DIR variable" if DEVEL
- default ""
- help
- Override the default TARGET_ROOTFS_DIR variable content $(BUILD_DIR) with custom path.
- Use this option to re-define the location of the target root file system directory.
-
- config CCACHE
- bool "Use ccache" if DEVEL
- default n
- help
- Compiler cache; see http://ccache.samba.org/
-
- config EXTERNAL_KERNEL_TREE
- string "Use external kernel tree" if DEVEL
- default ""
-
- config KERNEL_GIT_CLONE_URI
- string "Enter git repository to clone" if DEVEL
- default ""
- help
- Enter the full git repository path i.e.:
- git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
- This will create a git clone of the kernel in your build
- directory.
-
- config KERNEL_GIT_LOCAL_REPOSITORY
- string "Enter path to local reference repository" if DEVEL
- default ""
- help
- Enter a full pathname to a local reference git repository.
- In this instance, the --refererence option of git clone will
- be used thus creating a quick local clone of your repo.
-
- config BUILD_LOG
- bool "Enable log files during build process" if DEVEL
- help
- If enabled log files will be written to the ./log directory
-
- config SRC_TREE_OVERRIDE
- bool "Enable package source tree override" if DEVEL
- help
- If enabled, you can force a package to use a git tree as source
- code instead of the normal tarball. Create a symlink 'git-src'
- in the package directory, pointing to the .git tree that you want
- to pull the source code from
-
-menuconfig TARGET_OPTIONS
- bool "Target Options" if DEVEL
-
- config TARGET_OPTIMIZATION
- string "Target Optimizations" if TARGET_OPTIONS
- default DEFAULT_TARGET_OPTIMIZATION
- help
- Optimizations to use when building for the target host.
-
- config SOFT_FLOAT
- bool "Use software floating point by default" if TARGET_OPTIONS
- default y
- depends on (arm || armeb || powerpc || mipsel || mips || mips64el || mips64) && !HAS_FPU
- help
- If your target CPU does not have a Floating Point Unit (FPU) or a
- kernel FPU emulator, but you still wish to support floating point
- functions, then everything will need to be compiled with soft floating
- point support (-msoft-float).