Config.in 12 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
menu "Kernel"

config BR2_LINUX_KERNEL
	bool "Linux Kernel"
	help
	  Enable this option if you want to build a Linux kernel for
	  your embedded device

if BR2_LINUX_KERNEL

# Packages that need to have a kernel with support for loadable modules,
# but do not use the kernel-modules infrastructure, should select that
# option.
config BR2_LINUX_NEEDS_MODULES
	bool

#
# Version selection. We provide the choice between:
#
#  1. A single fairly recent stable kernel version
#  2. A custom stable version
#  3. A custom tarball
#  4. A set of custom repository locations
#
choice
	prompt "Kernel version"

config BR2_LINUX_KERNEL_LATEST_VERSION
	bool "Latest version (4.7.2)"

config BR2_LINUX_KERNEL_CUSTOM_VERSION
	bool "Custom version"
	help
	  This option allows to use a specific official version from
	  kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...

	  Note: you cannot use this option to select a _longterm_ 2.6
	  kernel, because these kernels are not located at the standard
	  URL at kernel.org. Instead, select "Custom tarball" and
	  specify the right URL directly.

config BR2_LINUX_KERNEL_CUSTOM_TARBALL
	bool "Custom tarball"
	help
	  This option allows to specify a URL pointing to a kernel source
	  tarball. This URL can use any protocol recognized by Buildroot,
	  like http://, ftp://, file:// or scp://.

	  When pointing to a local tarball using file://, you may want to
	  use a make variable like $(TOPDIR) to reference the root of the
	  Buildroot tree.

config BR2_LINUX_KERNEL_CUSTOM_GIT
	bool "Custom Git repository"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a Git repository.

config BR2_LINUX_KERNEL_CUSTOM_HG
	bool "Custom Mercurial repository"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a Mercurial repository.

config BR2_LINUX_KERNEL_CUSTOM_SVN
	bool "Custom Subversion repository"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a Subversion repository.

config BR2_LINUX_KERNEL_CUSTOM_LOCAL
	bool "Local directory"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a local directory.

endchoice

config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
	string "Kernel version"
	depends on BR2_LINUX_KERNEL_CUSTOM_VERSION

config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
	string "URL of custom kernel tarball"
	depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL

if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN

config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
	string "URL of custom repository"
	default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
		if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != ""  # legacy

config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
	string "Custom repository version"
	default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
		if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != ""  # legacy
	help
	  Revision to use in the typical format used by Git/Mercurial/Subversion
	  E.G. a sha id, a tag, branch, ..

endif

config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
	string "Path to the local directory"
	depends on BR2_LINUX_KERNEL_CUSTOM_LOCAL
	help
	  Path to the local directory with the Linux kernel source code.

config BR2_LINUX_KERNEL_VERSION
	string
	default "4.7.2" if BR2_LINUX_KERNEL_LATEST_VERSION
	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
		if BR2_LINUX_KERNEL_CUSTOM_VERSION
	default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
	default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
		if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
	default "custom" if BR2_LINUX_KERNEL_CUSTOM_LOCAL

#
# Patch selection
#

config BR2_LINUX_KERNEL_PATCH
	string "Custom kernel patches"
	depends on !BR2_LINUX_KERNEL_CUSTOM_LOCAL
	help
	  A space-separated list of patches to apply to the
	  kernel. Each patch can be described as an URL, a local file
	  path, or a directory. In the case of a directory, all files
	  matching *.patch in the directory will be applied.

#
# Configuration selection
#

choice
	prompt "Kernel configuration"
	default BR2_LINUX_KERNEL_USE_DEFCONFIG

config BR2_LINUX_KERNEL_USE_DEFCONFIG
	bool "Using an in-tree defconfig file"

config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
	bool "Use the architecture default configuration"
	help
	  This option will use the default configuration for the
	  selected architecture. I.e, it is equivalent to running
	  "make ARCH=<foo> defconfig". This is useful on architectures
	  that have a single defconfig file, such as ARM64.

config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
	bool "Using a custom (def)config file"

endchoice

config BR2_LINUX_KERNEL_DEFCONFIG
	string "Defconfig name"
	depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
	help
	  Name of the kernel defconfig file to use, without the
	  trailing _defconfig.  The defconfig is located in
	  arch/<arch>/configs in the kernel tree.

config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
	string "Configuration file path"
	depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
	help
	  Path to the kernel configuration file

	  Note: this can be a defconfig file or a complete .config file,
	  which can later be saved back with make linux-update-(def)config.

config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
	string "Additional configuration fragment files"
	help
	  A space-separated list of kernel configuration fragment files,
	  that will be merged to the main kernel configuration file.

#
# Binary format
#

config BR2_LINUX_KERNEL_UBOOT_IMAGE
	bool

choice
	prompt "Kernel binary format"
	default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb

config BR2_LINUX_KERNEL_UIMAGE
	bool "uImage"
	depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
		   BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
		   BR2_sh || BR2_sh64 || BR2_mips || BR2_mipsel || \
		   BR2_mips64 || BR2_mips64el
	select BR2_LINUX_KERNEL_UBOOT_IMAGE

config BR2_LINUX_KERNEL_APPENDED_UIMAGE
	bool "uImage with appended DT"
	depends on BR2_arm || BR2_armeb
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_APPENDED_DTB
	select BR2_LINUX_KERNEL_UBOOT_IMAGE

config BR2_LINUX_KERNEL_BZIMAGE
	bool "bzImage"
	depends on BR2_i386 || BR2_x86_64

config BR2_LINUX_KERNEL_ZIMAGE
	bool "zImage"
	depends on BR2_arm || BR2_armeb || BR2_powerpc || \
		   BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
		   BR2_sh || BR2_sh64 || BR2_xtensa

config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
	bool "zImage.epapr"
	depends on BR2_powerpc64 || BR2_powerpc64le

config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
	bool "zImage with appended DT"
	depends on BR2_arm || BR2_armeb
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_APPENDED_DTB

config BR2_LINUX_KERNEL_CUIMAGE
	bool "cuImage"
	depends on BR2_powerpc
	select BR2_LINUX_KERNEL_UBOOT_IMAGE
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT

config BR2_LINUX_KERNEL_SIMPLEIMAGE
	bool "simpleImage"
	depends on BR2_microblaze
	select BR2_LINUX_KERNEL_UBOOT_IMAGE
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT

config BR2_LINUX_KERNEL_IMAGE
	bool "Image"
	depends on BR2_aarch64

config BR2_LINUX_KERNEL_LINUX_BIN
	bool "linux.bin"
	depends on BR2_microblaze
	select BR2_LINUX_KERNEL_UBOOT_IMAGE

config BR2_LINUX_KERNEL_VMLINUX_BIN
	bool "vmlinux.bin"
	depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64

config BR2_LINUX_KERNEL_VMLINUX
	bool "vmlinux"

config BR2_LINUX_KERNEL_VMLINUZ
	bool "vmlinuz"
	depends on BR2_mips || BR2_mipsel

config BR2_LINUX_KERNEL_VMLINUZ_BIN
	bool "vmlinuz.bin"
	depends on BR2_mips || BR2_mipsel

config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
	bool "custom target"
	help
	  For certain cases a board-specific target image must be
	  used.  For example, on powerPC where the OpenFirmware
	  description is attached in a board-specific kernel image
	  target like 'cuImage.mpc8379_rdb'.

	  Select this option and specify the make target in "Kernel
	  image target name".

endchoice

#
# Kernel compression format
#

choice
	prompt "Kernel compression format"
	help
	  This selection will just ensure that the correct host tools are build.
	  The actual compression for the kernel should be selected in the
	  kernel configuration menu.

config BR2_LINUX_KERNEL_GZIP
	bool "gzip compression"

config BR2_LINUX_KERNEL_LZ4
	bool "lz4 compression"

config BR2_LINUX_KERNEL_LZMA
	bool "lzma compression"

config BR2_LINUX_KERNEL_LZO
	bool "lzo compression"

config BR2_LINUX_KERNEL_XZ
	bool "xz compression"

endchoice

config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
	string "Kernel image target name"
	depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
	help
	  Specify the kernel make target to build the kernel that you
	  need.

config BR2_LINUX_KERNEL_IMAGE_NAME
	string "Kernel image name"
	depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
	help
	  The filename of the kernel image, if it is different from the
	  make target (above). Only Xtensa uses a filename different from
	  the make target. Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.

	  If unsure, leave it empty.

config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
	string "load address (for 3.7+ multi-platform image)"
	depends on BR2_arm || BR2_armeb
	depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
	help
	  If your ARM system's Linux kernel is configured with the new (3.7+)
	  multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
	  kernel config), then it is necessary to specify a kernel load address
	  when building the uImage. This should be a hexadecimal string
	  beginning with 0x, for example: 0x00008000.

	  If unsure, let this option empty.

config BR2_LINUX_KERNEL_DTS_SUPPORT
	bool "Build a Device Tree Blob (DTB)"
	help
	  Compile one or more device tree sources into device tree blobs.
	  Select the dts files to compile in the options below.

if BR2_LINUX_KERNEL_DTS_SUPPORT

# We have mainly three cases when it comes to device tree support:
#   1) We don't want any support at all. Then the ..DTS_SUPPORT
#      variable won't be set
#   2) We want device tree support, so we need the user to enter the
#      device tree name or the path to the custom device he uses, but
#      the kernel abstracts this from us and only build an image that
#      looks like a regular kernel image. In this case, we only need
#      to derive the kernel image name from the given device tree
#      name, and all the rest is as usual
#   3) We want device tree support, but the kernel requires us to
#      build the device tree blob separately. In this case, some
#      more logic will be needed.
# The variable below address the second case, were you only want
# limited actions from buildroot.
config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
	bool

config BR2_LINUX_KERNEL_APPENDED_DTB
	bool

choice
	prompt "Device tree source"
	default BR2_LINUX_KERNEL_USE_INTREE_DTS

config BR2_LINUX_KERNEL_USE_INTREE_DTS
	bool "Use a device tree present in the kernel."
	help
	  Use a device tree source distributed with
	  the kernel sources. The dts files are located
	  in the arch/<arch>/boot/dts folder.

config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
	bool "Use a custom device tree file"
	help
	  Use a custom device tree file, i.e, a device
	  tree file that does not belong to the kernel
	  source tree.
endchoice

config BR2_LINUX_KERNEL_INTREE_DTS_NAME
	string "Device Tree Source file names"
	depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
	help
	  Name of the device tree source file, without
	  the trailing .dts. You can provide a list of
	  dts files to build, separated by spaces.

config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
	string "Device Tree Source file paths"
	depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
	help
	  Path to the device tree source files. You can
	  provide a list of dts paths to copy and build,
	  separated by spaces.

endif

config BR2_LINUX_KERNEL_INSTALL_TARGET
	bool "Install kernel image to /boot in target"
	depends on !BR2_TARGET_ROOTFS_INITRAMFS
	help
	  Select this option to have the kernel image installed to
	  /boot in the target root filesystem, as is typically done on
	  x86/x86_64 systems.

	  Note that this option also installs the Device Tree Blobs to
	  /boot if DTBs have been generated by the kernel build
	  process.

# Linux extensions
source "linux/Config.ext.in"

# Linux tools
source "linux/Config.tools.in"

endif # BR2_LINUX_KERNEL

endmenu