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. In case an internal toolchain has been built, the same kernel
22 # version as the kernel headers
23 # 3. A custom stable version
27 prompt "Kernel version"
29 config BR2_LINUX_KERNEL_LATEST_VERSION
30 bool "Latest version (4.6.4)"
32 config BR2_LINUX_KERNEL_CUSTOM_VERSION
35 This option allows to use a specific official version from
36 kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...
38 Note: you cannot use this option to select a _longterm_ 2.6
39 kernel, because these kernels are not located at the standard
40 URL at kernel.org. Instead, select "Custom tarball" and
41 specify the right URL directly.
43 config BR2_LINUX_KERNEL_CUSTOM_TARBALL
46 This option allows to specify a URL pointing to a kernel source
47 tarball. This URL can use any protocol recognized by Buildroot,
48 like http://, ftp://, file:// or scp://.
50 When pointing to a local tarball using file://, you may want to
51 use a make variable like $(TOPDIR) to reference the root of the
54 config BR2_LINUX_KERNEL_CUSTOM_GIT
55 bool "Custom Git repository"
57 This option allows Buildroot to get the Linux kernel source
58 code from a Git repository.
60 config BR2_LINUX_KERNEL_CUSTOM_HG
61 bool "Custom Mercurial repository"
63 This option allows Buildroot to get the Linux kernel source
64 code from a Mercurial repository.
66 config BR2_LINUX_KERNEL_CUSTOM_SVN
67 bool "Custom Subversion repository"
69 This option allows Buildroot to get the Linux kernel source
70 code from a Subversion repository.
72 config BR2_LINUX_KERNEL_CUSTOM_LOCAL
73 bool "Local directory"
75 This option allows Buildroot to get the Linux kernel source
76 code from a local directory.
80 config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
81 string "Kernel version"
82 depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
84 config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
85 string "URL of custom kernel tarball"
86 depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL
88 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
90 config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
91 string "URL of custom repository"
92 default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
93 if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != "" # legacy
95 config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
96 string "Custom repository version"
97 default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
98 if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != "" # legacy
100 Revision to use in the typical format used by Git/Mercurial/Subversion
101 E.G. a sha id, a tag, branch, ..
105 config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
106 string "Path to the local directory"
107 depends on BR2_LINUX_KERNEL_CUSTOM_LOCAL
109 Path to the local directory with the Linux kernel source code.
111 config BR2_LINUX_KERNEL_VERSION
113 default "4.6.4" if BR2_LINUX_KERNEL_LATEST_VERSION
114 default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
115 if BR2_LINUX_KERNEL_CUSTOM_VERSION
116 default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
117 default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
118 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
119 default "custom" if BR2_LINUX_KERNEL_CUSTOM_LOCAL
125 config BR2_LINUX_KERNEL_PATCH
126 string "Custom kernel patches"
127 depends on !BR2_LINUX_KERNEL_CUSTOM_LOCAL
129 A space-separated list of patches to apply to the
130 kernel. Each patch can be described as an URL, a local file
131 path, or a directory. In the case of a directory, all files
132 matching *.patch in the directory will be applied.
135 # Configuration selection
139 prompt "Kernel configuration"
140 default BR2_LINUX_KERNEL_USE_DEFCONFIG
142 config BR2_LINUX_KERNEL_USE_DEFCONFIG
143 bool "Using an in-tree defconfig file"
145 config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
146 bool "Use the architecture default configuration"
148 This option will use the default configuration for the
149 selected architecture. I.e, it is equivalent to running
150 "make ARCH=<foo> defconfig". This is useful on architectures
151 that have a single defconfig file, such as ARM64.
153 config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
154 bool "Using a custom (def)config file"
158 config BR2_LINUX_KERNEL_DEFCONFIG
159 string "Defconfig name"
160 depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
162 Name of the kernel defconfig file to use, without the
163 trailing _defconfig. The defconfig is located in
164 arch/<arch>/configs in the kernel tree.
166 config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
167 string "Configuration file path"
168 depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
170 Path to the kernel configuration file
172 Note: this can be a defconfig file or a complete .config file,
173 which can later be saved back with make linux-update-(def)config.
175 config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
176 string "Additional configuration fragment files"
178 A space-separated list of kernel configuration fragment files,
179 that will be merged to the main kernel configuration file.
185 config BR2_LINUX_KERNEL_UBOOT_IMAGE
189 prompt "Kernel binary format"
190 default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb
192 config BR2_LINUX_KERNEL_UIMAGE
194 depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
195 BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
196 BR2_sh || BR2_sh64 || BR2_mips || BR2_mipsel || \
197 BR2_mips64 || BR2_mips64el
198 select BR2_LINUX_KERNEL_UBOOT_IMAGE
200 config BR2_LINUX_KERNEL_APPENDED_UIMAGE
201 bool "uImage with appended DT"
202 depends on BR2_arm || BR2_armeb
203 select BR2_LINUX_KERNEL_DTS_SUPPORT
204 select BR2_LINUX_KERNEL_APPENDED_DTB
205 select BR2_LINUX_KERNEL_UBOOT_IMAGE
207 config BR2_LINUX_KERNEL_BZIMAGE
209 depends on BR2_i386 || BR2_x86_64
211 config BR2_LINUX_KERNEL_ZIMAGE
213 depends on BR2_arm || BR2_armeb || BR2_powerpc || \
214 BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
215 BR2_sh || BR2_sh64 || BR2_xtensa
217 config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
219 depends on BR2_powerpc64 || BR2_powerpc64le
221 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
222 bool "zImage with appended DT"
223 depends on BR2_arm || BR2_armeb
224 select BR2_LINUX_KERNEL_DTS_SUPPORT
225 select BR2_LINUX_KERNEL_APPENDED_DTB
227 config BR2_LINUX_KERNEL_CUIMAGE
229 depends on BR2_powerpc
230 select BR2_LINUX_KERNEL_UBOOT_IMAGE
231 select BR2_LINUX_KERNEL_DTS_SUPPORT
232 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
234 config BR2_LINUX_KERNEL_SIMPLEIMAGE
236 depends on BR2_microblaze
237 select BR2_LINUX_KERNEL_UBOOT_IMAGE
238 select BR2_LINUX_KERNEL_DTS_SUPPORT
239 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
241 config BR2_LINUX_KERNEL_IMAGE
243 depends on BR2_aarch64
245 config BR2_LINUX_KERNEL_LINUX_BIN
247 depends on BR2_microblaze
248 select BR2_LINUX_KERNEL_UBOOT_IMAGE
250 config BR2_LINUX_KERNEL_VMLINUX_BIN
252 depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64
254 config BR2_LINUX_KERNEL_VMLINUX
257 config BR2_LINUX_KERNEL_VMLINUZ
259 depends on BR2_mips || BR2_mipsel
261 config BR2_LINUX_KERNEL_VMLINUZ_BIN
263 depends on BR2_mips || BR2_mipsel
265 config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
268 For certain cases a board-specific target image must be
269 used. For example, on powerPC where the OpenFirmware
270 description is attached in a board-specific kernel image
271 target like 'cuImage.mpc8379_rdb'.
273 Select this option and specify the make target in "Kernel
279 # Kernel compression format
283 prompt "Kernel compression format"
285 This selection will just ensure that the correct host tools are build.
286 The actual compression for the kernel should be selected in the
287 kernel configuration menu.
289 config BR2_LINUX_KERNEL_GZIP
290 bool "gzip compression"
292 config BR2_LINUX_KERNEL_LZ4
293 bool "lz4 compression"
295 config BR2_LINUX_KERNEL_LZMA
296 bool "lzma compression"
298 config BR2_LINUX_KERNEL_LZO
299 bool "lzo compression"
301 config BR2_LINUX_KERNEL_XZ
302 bool "xz compression"
306 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
307 string "Kernel image target name"
308 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
310 Specify the kernel make target to build the kernel that you
313 config BR2_LINUX_KERNEL_IMAGE_NAME
314 string "Kernel image name"
315 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
317 The filename of the kernel image, if it is different from the
318 make target (above). Only Xtensa uses a filename different from
319 the make target. Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
321 If unsure, leave it empty.
323 config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
324 string "load address (for 3.7+ multi-platform image)"
325 depends on BR2_arm || BR2_armeb
326 depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
328 If your ARM system's Linux kernel is configured with the new (3.7+)
329 multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
330 kernel config), then it is necessary to specify a kernel load address
331 when building the uImage. This should be a hexadecimal string
332 beginning with 0x, for example: 0x00008000.
334 If unsure, let this option empty.
336 config BR2_LINUX_KERNEL_DTS_SUPPORT
337 bool "Build a Device Tree Blob (DTB)"
339 Compile one or more device tree sources into device tree blobs.
340 Select the dts files to compile in the options below.
342 if BR2_LINUX_KERNEL_DTS_SUPPORT
344 # We have mainly three cases when it comes to device tree support:
345 # 1) We don't want any support at all. Then the ..DTS_SUPPORT
346 # variable won't be set
347 # 2) We want device tree support, so we need the user to enter the
348 # device tree name or the path to the custom device he uses, but
349 # the kernel abstracts this from us and only build an image that
350 # looks like a regular kernel image. In this case, we only need
351 # to derive the kernel image name from the given device tree
352 # name, and all the rest is as usual
353 # 3) We want device tree support, but the kernel requires us to
354 # build the device tree blob separately. In this case, some
355 # more logic will be needed.
356 # The variable below address the second case, were you only want
357 # limited actions from buildroot.
358 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
361 config BR2_LINUX_KERNEL_APPENDED_DTB
365 prompt "Device tree source"
366 default BR2_LINUX_KERNEL_USE_INTREE_DTS
368 config BR2_LINUX_KERNEL_USE_INTREE_DTS
369 bool "Use a device tree present in the kernel."
371 Use a device tree source distributed with
372 the kernel sources. The dts files are located
373 in the arch/<arch>/boot/dts folder.
375 config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
376 bool "Use a custom device tree file"
378 Use a custom device tree file, i.e, a device
379 tree file that does not belong to the kernel
383 config BR2_LINUX_KERNEL_INTREE_DTS_NAME
384 string "Device Tree Source file names"
385 depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
387 Name of the device tree source file, without
388 the trailing .dts. You can provide a list of
389 dts files to build, separated by spaces.
391 config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
392 string "Device Tree Source file paths"
393 depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
395 Path to the device tree source files. You can
396 provide a list of dts paths to copy and build,
401 config BR2_LINUX_KERNEL_INSTALL_TARGET
402 bool "Install kernel image to /boot in target"
403 depends on !BR2_TARGET_ROOTFS_INITRAMFS
405 Select this option to have the kernel image installed to
406 /boot in the target root filesystem, as is typically done on
409 Note that this option also installs the Device Tree Blobs to
410 /boot if DTBs have been generated by the kernel build
414 source "linux/Config.ext.in"
417 source "linux/Config.tools.in"
419 endif # BR2_LINUX_KERNEL