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.8.12)"
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.8.12" 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"
113 depends on !BR2_LINUX_KERNEL_CUSTOM_LOCAL
115 A space-separated list of patches to apply to the
116 kernel. Each patch can be described as an URL, a local file
117 path, or a directory. In the case of a directory, all files
118 matching *.patch in the directory will be applied.
121 # Configuration selection
125 prompt "Kernel configuration"
126 default BR2_LINUX_KERNEL_USE_DEFCONFIG
128 config BR2_LINUX_KERNEL_USE_DEFCONFIG
129 bool "Using an in-tree defconfig file"
131 config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
132 bool "Use the architecture default configuration"
134 This option will use the default configuration for the
135 selected architecture. I.e, it is equivalent to running
136 "make ARCH=<foo> defconfig". This is useful on architectures
137 that have a single defconfig file, such as ARM64.
139 config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
140 bool "Using a custom (def)config file"
144 config BR2_LINUX_KERNEL_DEFCONFIG
145 string "Defconfig name"
146 depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
148 Name of the kernel defconfig file to use, without the
149 trailing _defconfig. The defconfig is located in
150 arch/<arch>/configs in the kernel tree.
152 config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
153 string "Configuration file path"
154 depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
156 Path to the kernel configuration file
158 Note: this can be a defconfig file or a complete .config file,
159 which can later be saved back with make linux-update-(def)config.
161 config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
162 string "Additional configuration fragment files"
164 A space-separated list of kernel configuration fragment files,
165 that will be merged to the main kernel configuration file.
171 config BR2_LINUX_KERNEL_UBOOT_IMAGE
175 prompt "Kernel binary format"
176 default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb
178 config BR2_LINUX_KERNEL_UIMAGE
180 depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
181 BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
182 BR2_sh || BR2_mips || BR2_mipsel || \
183 BR2_mips64 || BR2_mips64el
184 select BR2_LINUX_KERNEL_UBOOT_IMAGE
186 config BR2_LINUX_KERNEL_APPENDED_UIMAGE
187 bool "uImage with appended DT"
188 depends on BR2_arm || BR2_armeb
189 select BR2_LINUX_KERNEL_DTS_SUPPORT
190 select BR2_LINUX_KERNEL_APPENDED_DTB
191 select BR2_LINUX_KERNEL_UBOOT_IMAGE
193 config BR2_LINUX_KERNEL_BZIMAGE
195 depends on BR2_i386 || BR2_x86_64
197 config BR2_LINUX_KERNEL_ZIMAGE
199 depends on BR2_arm || BR2_armeb || BR2_powerpc || \
200 BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
203 config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
205 depends on BR2_powerpc64 || BR2_powerpc64le
207 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
208 bool "zImage with appended DT"
209 depends on BR2_arm || BR2_armeb
210 select BR2_LINUX_KERNEL_DTS_SUPPORT
211 select BR2_LINUX_KERNEL_APPENDED_DTB
213 config BR2_LINUX_KERNEL_CUIMAGE
215 depends on BR2_powerpc
216 select BR2_LINUX_KERNEL_UBOOT_IMAGE
217 select BR2_LINUX_KERNEL_DTS_SUPPORT
218 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
220 config BR2_LINUX_KERNEL_SIMPLEIMAGE
222 depends on BR2_microblaze
223 select BR2_LINUX_KERNEL_UBOOT_IMAGE
224 select BR2_LINUX_KERNEL_DTS_SUPPORT
225 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
227 config BR2_LINUX_KERNEL_IMAGE
229 depends on BR2_aarch64
231 config BR2_LINUX_KERNEL_LINUX_BIN
233 depends on BR2_microblaze
234 select BR2_LINUX_KERNEL_UBOOT_IMAGE
236 config BR2_LINUX_KERNEL_VMLINUX_BIN
238 depends on BR2_mips || BR2_mipsel || BR2_sh
240 config BR2_LINUX_KERNEL_VMLINUX
243 config BR2_LINUX_KERNEL_VMLINUZ
245 depends on BR2_mips || BR2_mipsel
247 config BR2_LINUX_KERNEL_VMLINUZ_BIN
249 depends on BR2_mips || BR2_mipsel
251 config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
254 For certain cases a board-specific target image must be
255 used. For example, on powerPC where the OpenFirmware
256 description is attached in a board-specific kernel image
257 target like 'cuImage.mpc8379_rdb'.
259 Select this option and specify the make target in "Kernel
265 # Kernel compression format
269 prompt "Kernel compression format"
271 This selection will just ensure that the correct host tools are build.
272 The actual compression for the kernel should be selected in the
273 kernel configuration menu.
275 config BR2_LINUX_KERNEL_GZIP
276 bool "gzip compression"
278 config BR2_LINUX_KERNEL_LZ4
279 bool "lz4 compression"
281 config BR2_LINUX_KERNEL_LZMA
282 bool "lzma compression"
284 config BR2_LINUX_KERNEL_LZO
285 bool "lzo compression"
287 config BR2_LINUX_KERNEL_XZ
288 bool "xz compression"
292 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
293 string "Kernel image target name"
294 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
296 Specify the kernel make target to build the kernel that you
299 config BR2_LINUX_KERNEL_IMAGE_NAME
300 string "Kernel image name"
301 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
303 The filename of the kernel image, if it is different from the
304 make target (above). Only Xtensa uses a filename different from
305 the make target. Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
307 If unsure, leave it empty.
309 config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
310 string "load address (for 3.7+ multi-platform image)"
311 depends on BR2_arm || BR2_armeb
312 depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
314 If your ARM system's Linux kernel is configured with the new (3.7+)
315 multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
316 kernel config), then it is necessary to specify a kernel load address
317 when building the uImage. This should be a hexadecimal string
318 beginning with 0x, for example: 0x00008000.
320 If unsure, let this option empty.
322 config BR2_LINUX_KERNEL_DTS_SUPPORT
323 bool "Build a Device Tree Blob (DTB)"
325 Compile one or more device tree sources into device tree blobs.
326 Select the dts files to compile in the options below.
328 if BR2_LINUX_KERNEL_DTS_SUPPORT
330 # We have mainly three cases when it comes to device tree support:
331 # 1) We don't want any support at all. Then the ..DTS_SUPPORT
332 # variable won't be set
333 # 2) We want device tree support, so we need the user to enter the
334 # device tree name or the path to the custom device he uses, but
335 # the kernel abstracts this from us and only build an image that
336 # looks like a regular kernel image. In this case, we only need
337 # to derive the kernel image name from the given device tree
338 # name, and all the rest is as usual
339 # 3) We want device tree support, but the kernel requires us to
340 # build the device tree blob separately. In this case, some
341 # more logic will be needed.
342 # The variable below address the second case, were you only want
343 # limited actions from buildroot.
344 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
347 config BR2_LINUX_KERNEL_APPENDED_DTB
351 prompt "Device tree source"
352 default BR2_LINUX_KERNEL_USE_INTREE_DTS
354 config BR2_LINUX_KERNEL_USE_INTREE_DTS
355 bool "Use a device tree present in the kernel."
357 Use a device tree source distributed with
358 the kernel sources. The dts files are located
359 in the arch/<arch>/boot/dts folder.
361 config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
362 bool "Use a custom device tree file"
364 Use a custom device tree file, i.e, a device
365 tree file that does not belong to the kernel
369 config BR2_LINUX_KERNEL_INTREE_DTS_NAME
370 string "Device Tree Source file names"
371 depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
373 Name of the device tree source file, without
374 the trailing .dts. You can provide a list of
375 dts files to build, separated by spaces.
377 config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
378 string "Device Tree Source file paths"
379 depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
381 Path to the device tree source files. You can
382 provide a list of dts paths to copy and build,
387 config BR2_LINUX_KERNEL_INSTALL_TARGET
388 bool "Install kernel image to /boot in target"
389 depends on !BR2_TARGET_ROOTFS_INITRAMFS
391 Select this option to have the kernel image installed to
392 /boot in the target root filesystem, as is typically done on
395 Note that this option also installs the Device Tree Blobs to
396 /boot if DTBs have been generated by the kernel build
400 source "linux/Config.ext.in"
403 source "package/linux-tools/Config.in"
405 endif # BR2_LINUX_KERNEL