3 config BR2_LINUX_KERNEL
6 Enable this option if you want to build a Linux kernel for
11 # Packages that need to have a kernel with support for loadable modules,
12 # but do not use the kernel-modules infrastructure, should select that
14 config BR2_LINUX_NEEDS_MODULES
18 # Version selection. We provide the choice between:
20 # 1. A single fairly recent stable kernel version
21 # 2. A custom stable version
23 # 4. A set of custom repository locations
26 prompt "Kernel version"
28 config BR2_LINUX_KERNEL_LATEST_VERSION
29 bool "Latest version (4.16)"
31 config BR2_LINUX_KERNEL_LATEST_CIP_VERSION
32 bool "Latest CIP SLTS version (v4.4.112-cip18)"
34 CIP launched in the spring of 2016 to address the needs of
35 organizations in industries such as power generation and
36 distribution, water, oil and gas, transportation, building
37 automation and more for reliable and secure Linux-based
38 embedded systems that can be sustained over a period of
39 10 to as many as 60 years.
40 The project's goal is to provide an open source base layer
41 of industrial-grade software that permits the use and
42 implementation of software building blocks that meet
45 The CIP community plans to maintain 4.4 for security and
46 bug fixes for more than 10 years.
48 https://www.cip-project.org
50 config BR2_LINUX_KERNEL_CUSTOM_VERSION
53 This option allows to use a specific official version from
54 kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...
56 Note: you cannot use this option to select a _longterm_ 2.6
57 kernel, because these kernels are not located at the standard
58 URL at kernel.org. Instead, select "Custom tarball" and
59 specify the right URL directly.
61 config BR2_LINUX_KERNEL_CUSTOM_TARBALL
64 This option allows to specify a URL pointing to a kernel
65 source tarball. This URL can use any protocol recognized by
66 Buildroot, like http://, ftp://, file:// or scp://.
68 When pointing to a local tarball using file://, you may want
69 to use a make variable like $(TOPDIR) to reference the root of
72 config BR2_LINUX_KERNEL_CUSTOM_GIT
73 bool "Custom Git repository"
75 This option allows Buildroot to get the Linux kernel source
76 code from a Git repository.
78 config BR2_LINUX_KERNEL_CUSTOM_HG
79 bool "Custom Mercurial repository"
81 This option allows Buildroot to get the Linux kernel source
82 code from a Mercurial repository.
84 config BR2_LINUX_KERNEL_CUSTOM_SVN
85 bool "Custom Subversion repository"
87 This option allows Buildroot to get the Linux kernel source
88 code from a Subversion repository.
92 config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
93 string "Kernel version"
94 depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
96 config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
97 string "URL of custom kernel tarball"
98 depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL
100 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
102 config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
103 string "URL of custom repository"
104 default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
105 if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != "" # legacy
107 config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
108 string "Custom repository version"
109 default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
110 if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != "" # legacy
112 Revision to use in the typical format used by
113 Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
117 config BR2_LINUX_KERNEL_VERSION
119 default "4.16.8" if BR2_LINUX_KERNEL_LATEST_VERSION
120 default "v4.4.112-cip18" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
121 default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
122 if BR2_LINUX_KERNEL_CUSTOM_VERSION
123 default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
124 default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
125 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
131 config BR2_LINUX_KERNEL_PATCH
132 string "Custom kernel patches"
134 A space-separated list of patches to apply to the
135 kernel. Each patch can be described as an URL, a local file
136 path, or a directory. In the case of a directory, all files
137 matching *.patch in the directory will be applied.
140 # Configuration selection
144 prompt "Kernel configuration"
145 default BR2_LINUX_KERNEL_USE_DEFCONFIG
147 config BR2_LINUX_KERNEL_USE_DEFCONFIG
148 bool "Using an in-tree defconfig file"
150 config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
151 bool "Use the architecture default configuration"
153 This option will use the default configuration for the
154 selected architecture. I.e, it is equivalent to running
155 "make ARCH=<foo> defconfig". This is useful on architectures
156 that have a single defconfig file, such as ARM64.
158 config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
159 bool "Using a custom (def)config file"
163 config BR2_LINUX_KERNEL_DEFCONFIG
164 string "Defconfig name"
165 depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
167 Name of the kernel defconfig file to use, without the
168 trailing _defconfig. The defconfig is located in
169 arch/<arch>/configs in the kernel tree.
171 config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
172 string "Configuration file path"
173 depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
175 Path to the kernel configuration file
177 Note: this can be a defconfig file or a complete .config file,
178 which can later be saved back with make
179 linux-update-(def)config.
181 config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
182 string "Additional configuration fragment files"
184 A space-separated list of kernel configuration fragment files,
185 that will be merged to the main kernel configuration file.
192 prompt "Kernel binary format"
193 default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb
195 config BR2_LINUX_KERNEL_UIMAGE
197 depends on BR2_arc || BR2_arm || BR2_armeb || \
198 BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
199 BR2_sh || BR2_mips || BR2_mipsel || \
200 BR2_mips64 || BR2_mips64el || BR2_xtensa
201 select BR2_PACKAGE_HOST_UBOOT_TOOLS
203 config BR2_LINUX_KERNEL_APPENDED_UIMAGE
204 bool "uImage with appended DT"
205 depends on BR2_arm || BR2_armeb
206 select BR2_LINUX_KERNEL_DTS_SUPPORT
207 select BR2_LINUX_KERNEL_APPENDED_DTB
208 select BR2_PACKAGE_HOST_UBOOT_TOOLS
210 config BR2_LINUX_KERNEL_BZIMAGE
212 depends on BR2_i386 || BR2_x86_64
214 config BR2_LINUX_KERNEL_ZIMAGE
216 depends on BR2_arm || BR2_armeb || BR2_powerpc || \
217 BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
220 config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
222 depends on BR2_powerpc64 || BR2_powerpc64le
224 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
225 bool "zImage with appended DT"
226 depends on BR2_arm || BR2_armeb
227 select BR2_LINUX_KERNEL_DTS_SUPPORT
228 select BR2_LINUX_KERNEL_APPENDED_DTB
230 config BR2_LINUX_KERNEL_CUIMAGE
232 depends on BR2_powerpc
233 select BR2_PACKAGE_HOST_UBOOT_TOOLS
234 select BR2_LINUX_KERNEL_DTS_SUPPORT
235 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
237 config BR2_LINUX_KERNEL_SIMPLEIMAGE
239 depends on BR2_microblaze
240 select BR2_PACKAGE_HOST_UBOOT_TOOLS
241 select BR2_LINUX_KERNEL_DTS_SUPPORT
242 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
244 config BR2_LINUX_KERNEL_IMAGE
246 depends on BR2_aarch64
248 config BR2_LINUX_KERNEL_LINUX_BIN
250 depends on BR2_microblaze
251 select BR2_PACKAGE_HOST_UBOOT_TOOLS
253 config BR2_LINUX_KERNEL_VMLINUX_BIN
255 depends on BR2_mips || BR2_mipsel || BR2_sh
257 config BR2_LINUX_KERNEL_VMLINUX
260 config BR2_LINUX_KERNEL_VMLINUZ
262 depends on BR2_mips || BR2_mipsel
264 config BR2_LINUX_KERNEL_VMLINUZ_BIN
266 depends on BR2_mips || BR2_mipsel
268 config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
271 For certain cases a board-specific target image must be
272 used. For example, on powerPC where the OpenFirmware
273 description is attached in a board-specific kernel image
274 target like 'cuImage.mpc8379_rdb'.
276 Select this option and specify the make target in "Kernel
282 # Kernel compression format
286 prompt "Kernel compression format"
288 This selection will just ensure that the correct host tools
289 are built. The actual compression for the kernel should be
290 selected in the kernel configuration menu.
292 config BR2_LINUX_KERNEL_GZIP
293 bool "gzip compression"
295 config BR2_LINUX_KERNEL_LZ4
296 bool "lz4 compression"
298 config BR2_LINUX_KERNEL_LZMA
299 bool "lzma compression"
301 config BR2_LINUX_KERNEL_LZO
302 bool "lzo compression"
304 config BR2_LINUX_KERNEL_XZ
305 bool "xz compression"
309 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
310 string "Kernel image target name"
311 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
313 Specify the kernel make target to build the kernel that you
316 config BR2_LINUX_KERNEL_IMAGE_NAME
317 string "Kernel image name"
318 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
320 The filename of the kernel image, if it is different from the
321 make target (above). Only Xtensa uses a filename different
322 from the make target. Defaults to
323 BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
325 If unsure, leave it empty.
327 config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
328 string "load address (for 3.7+ multi-platform image)"
329 depends on BR2_arm || BR2_armeb
330 depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
332 If your ARM system's Linux kernel is configured with the new
333 (3.7+) multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y
334 in your kernel config), then it is necessary to specify a
335 kernel load address when building the uImage. This should be a
336 hexadecimal string beginning with 0x, for example: 0x00008000.
338 If unsure, let this option empty.
340 config BR2_LINUX_KERNEL_DTS_SUPPORT
341 bool "Build a Device Tree Blob (DTB)"
343 Compile one or more device tree sources into device tree
345 Select the dts files to compile in the options below.
347 if BR2_LINUX_KERNEL_DTS_SUPPORT
349 # We have mainly three cases when it comes to device tree support:
350 # 1) We don't want any support at all. Then the ..DTS_SUPPORT
351 # variable won't be set
352 # 2) We want device tree support, so we need the user to enter the
353 # device tree name or the path to the custom device he uses, but
354 # the kernel abstracts this from us and only build an image that
355 # looks like a regular kernel image. In this case, we only need
356 # to derive the kernel image name from the given device tree
357 # name, and all the rest is as usual
358 # 3) We want device tree support, but the kernel requires us to
359 # build the device tree blob separately. In this case, some
360 # more logic will be needed.
361 # The variable below address the second case, were you only want
362 # limited actions from buildroot.
363 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
366 config BR2_LINUX_KERNEL_APPENDED_DTB
369 config BR2_LINUX_KERNEL_INTREE_DTS_NAME
370 string "In-tree Device Tree Source file names"
372 Name of in-tree device tree source file, without
373 the trailing .dts. You can provide a list of
374 dts files to build, separated by spaces.
376 config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
377 string "Out-of-tree Device Tree Source file paths"
379 Path to to out-of-tree device tree source files.
380 You can provide a list of dts paths to copy and
381 build, separated by spaces.
385 config BR2_LINUX_KERNEL_INSTALL_TARGET
386 bool "Install kernel image to /boot in target"
387 depends on !BR2_TARGET_ROOTFS_INITRAMFS
389 Select this option to have the kernel image installed to
390 /boot in the target root filesystem, as is typically done on
393 Note that this option also installs the Device Tree Blobs to
394 /boot if DTBs have been generated by the kernel build
397 config BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL
398 bool "Needs host OpenSSL"
400 Some Linux kernel configuration options (such as
401 CONFIG_SYSTEM_TRUSTED_KEYRING) require building a host
402 program called extract-cert, which itself needs
403 OpenSSL. Enabling this option will ensure host-openssl gets
404 built before the Linux kernel.
406 Enable this option if you get a Linux kernel build failure
407 such as "scripts/extract-cert.c:21:25: fatal error:
408 openssl/bio.h: No such file or directory".
410 config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF
411 bool "Needs host libelf"
413 Some Linux kernel configuration options (such as
414 CONFIG_UNWINDER_ORC) require building a host program that
415 needs libelf. Enabling this option will ensure host-elfutils
416 (which provides libelf) gets built before the Linux kernel.
418 Enable this option if you get a Linux kernel build failure
419 such as "Cannot generate ORC metadata for
420 CONFIG_UNWINDER_ORC=y, please install libelf-dev,
421 libelf-devel or elfutils-libelf-devel".
424 source "linux/Config.ext.in"
427 source "package/linux-tools/Config.in"
429 endif # BR2_LINUX_KERNEL