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.9.3)"
31 config BR2_LINUX_KERNEL_CUSTOM_VERSION
34 This option allows to use a specific official version from
35 kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...
37 Note: you cannot use this option to select a _longterm_ 2.6
38 kernel, because these kernels are not located at the standard
39 URL at kernel.org. Instead, select "Custom tarball" and
40 specify the right URL directly.
42 config BR2_LINUX_KERNEL_CUSTOM_TARBALL
45 This option allows to specify a URL pointing to a kernel source
46 tarball. This URL can use any protocol recognized by Buildroot,
47 like http://, ftp://, file:// or scp://.
49 When pointing to a local tarball using file://, you may want to
50 use a make variable like $(TOPDIR) to reference the root of the
53 config BR2_LINUX_KERNEL_CUSTOM_GIT
54 bool "Custom Git repository"
56 This option allows Buildroot to get the Linux kernel source
57 code from a Git repository.
59 config BR2_LINUX_KERNEL_CUSTOM_HG
60 bool "Custom Mercurial repository"
62 This option allows Buildroot to get the Linux kernel source
63 code from a Mercurial repository.
65 config BR2_LINUX_KERNEL_CUSTOM_SVN
66 bool "Custom Subversion repository"
68 This option allows Buildroot to get the Linux kernel source
69 code from a Subversion repository.
73 config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
74 string "Kernel version"
75 depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
77 config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
78 string "URL of custom kernel tarball"
79 depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL
81 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
83 config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
84 string "URL of custom repository"
85 default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
86 if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != "" # legacy
88 config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
89 string "Custom repository version"
90 default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
91 if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != "" # legacy
93 Revision to use in the typical format used by Git/Mercurial/Subversion
94 E.G. a sha id, a tag, branch, ..
98 config BR2_LINUX_KERNEL_VERSION
100 default "4.9.3" if BR2_LINUX_KERNEL_LATEST_VERSION
101 default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
102 if BR2_LINUX_KERNEL_CUSTOM_VERSION
103 default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
104 default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
105 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
111 config BR2_LINUX_KERNEL_PATCH
112 string "Custom kernel patches"
114 A space-separated list of patches to apply to the
115 kernel. Each patch can be described as an URL, a local file
116 path, or a directory. In the case of a directory, all files
117 matching *.patch in the directory will be applied.
120 # Configuration selection
124 prompt "Kernel configuration"
125 default BR2_LINUX_KERNEL_USE_DEFCONFIG
127 config BR2_LINUX_KERNEL_USE_DEFCONFIG
128 bool "Using an in-tree defconfig file"
130 config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
131 bool "Use the architecture default configuration"
133 This option will use the default configuration for the
134 selected architecture. I.e, it is equivalent to running
135 "make ARCH=<foo> defconfig". This is useful on architectures
136 that have a single defconfig file, such as ARM64.
138 config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
139 bool "Using a custom (def)config file"
143 config BR2_LINUX_KERNEL_DEFCONFIG
144 string "Defconfig name"
145 depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
147 Name of the kernel defconfig file to use, without the
148 trailing _defconfig. The defconfig is located in
149 arch/<arch>/configs in the kernel tree.
151 config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
152 string "Configuration file path"
153 depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
155 Path to the kernel configuration file
157 Note: this can be a defconfig file or a complete .config file,
158 which can later be saved back with make linux-update-(def)config.
160 config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
161 string "Additional configuration fragment files"
163 A space-separated list of kernel configuration fragment files,
164 that will be merged to the main kernel configuration file.
170 config BR2_LINUX_KERNEL_UBOOT_IMAGE
174 prompt "Kernel binary format"
175 default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb
177 config BR2_LINUX_KERNEL_UIMAGE
179 depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
180 BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
181 BR2_sh || BR2_mips || BR2_mipsel || \
182 BR2_mips64 || BR2_mips64el
183 select BR2_LINUX_KERNEL_UBOOT_IMAGE
185 config BR2_LINUX_KERNEL_APPENDED_UIMAGE
186 bool "uImage with appended DT"
187 depends on BR2_arm || BR2_armeb
188 select BR2_LINUX_KERNEL_DTS_SUPPORT
189 select BR2_LINUX_KERNEL_APPENDED_DTB
190 select BR2_LINUX_KERNEL_UBOOT_IMAGE
192 config BR2_LINUX_KERNEL_BZIMAGE
194 depends on BR2_i386 || BR2_x86_64
196 config BR2_LINUX_KERNEL_ZIMAGE
198 depends on BR2_arm || BR2_armeb || BR2_powerpc || \
199 BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
202 config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
204 depends on BR2_powerpc64 || BR2_powerpc64le
206 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
207 bool "zImage with appended DT"
208 depends on BR2_arm || BR2_armeb
209 select BR2_LINUX_KERNEL_DTS_SUPPORT
210 select BR2_LINUX_KERNEL_APPENDED_DTB
212 config BR2_LINUX_KERNEL_CUIMAGE
214 depends on BR2_powerpc
215 select BR2_LINUX_KERNEL_UBOOT_IMAGE
216 select BR2_LINUX_KERNEL_DTS_SUPPORT
217 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
219 config BR2_LINUX_KERNEL_SIMPLEIMAGE
221 depends on BR2_microblaze
222 select BR2_LINUX_KERNEL_UBOOT_IMAGE
223 select BR2_LINUX_KERNEL_DTS_SUPPORT
224 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
226 config BR2_LINUX_KERNEL_IMAGE
228 depends on BR2_aarch64
230 config BR2_LINUX_KERNEL_LINUX_BIN
232 depends on BR2_microblaze
233 select BR2_LINUX_KERNEL_UBOOT_IMAGE
235 config BR2_LINUX_KERNEL_VMLINUX_BIN
237 depends on BR2_mips || BR2_mipsel || BR2_sh
239 config BR2_LINUX_KERNEL_VMLINUX
242 config BR2_LINUX_KERNEL_VMLINUZ
244 depends on BR2_mips || BR2_mipsel
246 config BR2_LINUX_KERNEL_VMLINUZ_BIN
248 depends on BR2_mips || BR2_mipsel
250 config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
253 For certain cases a board-specific target image must be
254 used. For example, on powerPC where the OpenFirmware
255 description is attached in a board-specific kernel image
256 target like 'cuImage.mpc8379_rdb'.
258 Select this option and specify the make target in "Kernel
264 # Kernel compression format
268 prompt "Kernel compression format"
270 This selection will just ensure that the correct host tools are build.
271 The actual compression for the kernel should be selected in the
272 kernel configuration menu.
274 config BR2_LINUX_KERNEL_GZIP
275 bool "gzip compression"
277 config BR2_LINUX_KERNEL_LZ4
278 bool "lz4 compression"
280 config BR2_LINUX_KERNEL_LZMA
281 bool "lzma compression"
283 config BR2_LINUX_KERNEL_LZO
284 bool "lzo compression"
286 config BR2_LINUX_KERNEL_XZ
287 bool "xz compression"
291 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
292 string "Kernel image target name"
293 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
295 Specify the kernel make target to build the kernel that you
298 config BR2_LINUX_KERNEL_IMAGE_NAME
299 string "Kernel image name"
300 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
302 The filename of the kernel image, if it is different from the
303 make target (above). Only Xtensa uses a filename different from
304 the make target. Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
306 If unsure, leave it empty.
308 config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
309 string "load address (for 3.7+ multi-platform image)"
310 depends on BR2_arm || BR2_armeb
311 depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
313 If your ARM system's Linux kernel is configured with the new (3.7+)
314 multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
315 kernel config), then it is necessary to specify a kernel load address
316 when building the uImage. This should be a hexadecimal string
317 beginning with 0x, for example: 0x00008000.
319 If unsure, let this option empty.
321 config BR2_LINUX_KERNEL_DTS_SUPPORT
322 bool "Build a Device Tree Blob (DTB)"
324 Compile one or more device tree sources into device tree blobs.
325 Select the dts files to compile in the options below.
327 if BR2_LINUX_KERNEL_DTS_SUPPORT
329 # We have mainly three cases when it comes to device tree support:
330 # 1) We don't want any support at all. Then the ..DTS_SUPPORT
331 # variable won't be set
332 # 2) We want device tree support, so we need the user to enter the
333 # device tree name or the path to the custom device he uses, but
334 # the kernel abstracts this from us and only build an image that
335 # looks like a regular kernel image. In this case, we only need
336 # to derive the kernel image name from the given device tree
337 # name, and all the rest is as usual
338 # 3) We want device tree support, but the kernel requires us to
339 # build the device tree blob separately. In this case, some
340 # more logic will be needed.
341 # The variable below address the second case, were you only want
342 # limited actions from buildroot.
343 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
346 config BR2_LINUX_KERNEL_APPENDED_DTB
350 prompt "Device tree source"
351 default BR2_LINUX_KERNEL_USE_INTREE_DTS
353 config BR2_LINUX_KERNEL_USE_INTREE_DTS
354 bool "Use a device tree present in the kernel."
356 Use a device tree source distributed with
357 the kernel sources. The dts files are located
358 in the arch/<arch>/boot/dts folder.
360 config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
361 bool "Use a custom device tree file"
363 Use a custom device tree file, i.e, a device
364 tree file that does not belong to the kernel
368 config BR2_LINUX_KERNEL_INTREE_DTS_NAME
369 string "Device Tree Source file names"
370 depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
372 Name of the 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 "Device Tree Source file paths"
378 depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
380 Path to the device tree source files. You can
381 provide a list of dts paths to copy and build,
386 config BR2_LINUX_KERNEL_INSTALL_TARGET
387 bool "Install kernel image to /boot in target"
388 depends on !BR2_TARGET_ROOTFS_INITRAMFS
390 Select this option to have the kernel image installed to
391 /boot in the target root filesystem, as is typically done on
394 Note that this option also installs the Device Tree Blobs to
395 /boot if DTBs have been generated by the kernel build
399 source "linux/Config.ext.in"
402 source "package/linux-tools/Config.in"
404 endif # BR2_LINUX_KERNEL