| 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 |
| |
| comment "Linux kernel may fail to boot with binutils >= 2.29" |
| depends on BR2_ARM_CPU_ARMV7M |
| depends on !BR2_BINUTILS_VERSION_2_28_X |
| |
| # 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.16)" |
| |
| config BR2_LINUX_KERNEL_LATEST_CIP_VERSION |
| bool "Latest CIP SLTS version (v4.4.130-cip23)" |
| help |
| CIP launched in the spring of 2016 to address the needs of |
| organizations in industries such as power generation and |
| distribution, water, oil and gas, transportation, building |
| automation and more for reliable and secure Linux-based |
| embedded systems that can be sustained over a period of |
| 10 to as many as 60 years. |
| The project's goal is to provide an open source base layer |
| of industrial-grade software that permits the use and |
| implementation of software building blocks that meet |
| these requirements. |
| |
| The CIP community plans to maintain 4.4 for security and |
| bug fixes for more than 10 years. |
| |
| https://www.cip-project.org |
| |
| 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. |
| |
| 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_VERSION |
| string |
| default "4.16.13" if BR2_LINUX_KERNEL_LATEST_VERSION |
| default "v4.4.130-cip23" if BR2_LINUX_KERNEL_LATEST_CIP_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 |
| |
| # |
| # Patch selection |
| # |
| |
| config BR2_LINUX_KERNEL_PATCH |
| string "Custom kernel patches" |
| 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 |
| # |
| |
| 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_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ |
| BR2_sh || BR2_mips || BR2_mipsel || \ |
| BR2_mips64 || BR2_mips64el || BR2_xtensa |
| select BR2_PACKAGE_HOST_UBOOT_TOOLS |
| |
| 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_PACKAGE_HOST_UBOOT_TOOLS |
| |
| 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_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_PACKAGE_HOST_UBOOT_TOOLS |
| 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_PACKAGE_HOST_UBOOT_TOOLS |
| 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_PACKAGE_HOST_UBOOT_TOOLS |
| |
| config BR2_LINUX_KERNEL_VMLINUX_BIN |
| bool "vmlinux.bin" |
| depends on BR2_mips || BR2_mipsel || BR2_sh |
| |
| 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 built. 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 |
| |
| config BR2_LINUX_KERNEL_INTREE_DTS_NAME |
| string "In-tree Device Tree Source file names" |
| help |
| Name of in-tree 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 "Out-of-tree Device Tree Source file paths" |
| help |
| Path to to out-of-tree 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. |
| |
| config BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL |
| bool "Needs host OpenSSL" |
| help |
| Some Linux kernel configuration options (such as |
| CONFIG_SYSTEM_TRUSTED_KEYRING) require building a host |
| program called extract-cert, which itself needs |
| OpenSSL. Enabling this option will ensure host-openssl gets |
| built before the Linux kernel. |
| |
| Enable this option if you get a Linux kernel build failure |
| such as "scripts/extract-cert.c:21:25: fatal error: |
| openssl/bio.h: No such file or directory". |
| |
| config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF |
| bool "Needs host libelf" |
| help |
| Some Linux kernel configuration options (such as |
| CONFIG_UNWINDER_ORC) require building a host program that |
| needs libelf. Enabling this option will ensure host-elfutils |
| (which provides libelf) gets built before the Linux kernel. |
| |
| Enable this option if you get a Linux kernel build failure |
| such as "Cannot generate ORC metadata for |
| CONFIG_UNWINDER_ORC=y, please install libelf-dev, |
| libelf-devel or elfutils-libelf-devel". |
| |
| # Linux extensions |
| source "linux/Config.ext.in" |
| |
| # Linux tools |
| source "package/linux-tools/Config.in" |
| |
| endif # BR2_LINUX_KERNEL |
| |
| endmenu |