3 config BR2_LINUX_KERNEL
6 Enable this option if you want to build a Linux kernel for
12 # Version selection. We provide the choice between:
14 # 1. A single fairly recent stable kernel version
15 # 2. In case an internal toolchain has been built, the same kernel
16 # version as the kernel headers
17 # 3. A custom stable version
21 prompt "Kernel version"
23 config BR2_LINUX_KERNEL_LATEST_VERSION
26 config BR2_LINUX_KERNEL_SAME_AS_HEADERS
27 bool "Same as toolchain kernel headers"
28 depends on BR2_TOOLCHAIN_BUILDROOT
30 This option will re-use the same kernel sources as the one
31 that have been used for the kernel headers of the
32 cross-compiling toolchain. Having the same version for the
33 kernel running on the system and for the kernel headers is
34 not a requirement, but using the same version allows to
35 download only one tarball of the kernel sources.
37 config BR2_LINUX_KERNEL_CUSTOM_VERSION
40 This option allows to use a specific official version from
41 kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...
43 Note: you cannot use this option to select a _longterm_ 2.6
44 kernel, because these kernels are not located at the standard
45 URL at kernel.org. Instead, select "Custom tarball" and
46 specify the right URL directly.
48 config BR2_LINUX_KERNEL_CUSTOM_TARBALL
51 This option allows to specify a URL pointing to a kernel source
52 tarball. This URL can use any protocol recognized by Buildroot,
53 like http://, ftp://, file:// or scp://.
55 When pointing to a local tarball using file://, you may want to
56 use a make variable like $(TOPDIR) to reference the root of the
59 config BR2_LINUX_KERNEL_CUSTOM_GIT
60 bool "Custom Git repository"
62 This option allows Buildroot to get the Linux kernel source
63 code from a Git repository.
65 config BR2_LINUX_KERNEL_CUSTOM_HG
66 bool "Custom Mercurial repository"
68 This option allows Buildroot to get the Linux kernel source
69 code from a Mercurial repository.
71 config BR2_LINUX_KERNEL_CUSTOM_LOCAL
72 bool "Local directory"
74 This option allows Buildroot to get the Linux kernel source
75 code from a local directory.
79 config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
80 string "Kernel version"
81 depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
83 config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
84 string "URL of custom kernel tarball"
85 depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL
87 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG
89 config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
90 string "URL of custom repository"
91 default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
92 if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != "" # legacy
94 config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
95 string "Custom repository version"
96 default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
97 if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != "" # legacy
99 Revision to use in the typical format used by Git/Mercurial
100 E.G. a sha id, a tag, branch, ..
104 config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
105 string "Path to the local directory"
106 depends on BR2_LINUX_KERNEL_CUSTOM_LOCAL
108 Path to the local directory with the Linux kernel source code.
110 config BR2_LINUX_KERNEL_VERSION
112 default "3.19.3" if BR2_LINUX_KERNEL_LATEST_VERSION
113 default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
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
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 linux-*.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_CUSTOM_CONFIG
146 bool "Using a custom (def)config file"
150 config BR2_LINUX_KERNEL_DEFCONFIG
151 string "Defconfig name"
152 depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
154 Name of the kernel defconfig file to use, without the
155 trailing _defconfig. The defconfig is located in
156 arch/<arch>/configs in the kernel tree.
158 config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
159 string "Configuration file path"
160 depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
162 Path to the kernel configuration file
164 Note: this can be a defconfig file or a complete .config file,
165 which can later be saved back with make linux-update-(def)config.
171 config BR2_LINUX_KERNEL_UBOOT_IMAGE
175 prompt "Kernel binary format"
177 config BR2_LINUX_KERNEL_UIMAGE
179 depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
180 BR2_powerpc || BR2_sh || BR2_sh64 || \
181 BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
182 select BR2_LINUX_KERNEL_UBOOT_IMAGE
184 config BR2_LINUX_KERNEL_APPENDED_UIMAGE
185 bool "uImage with appended DT"
186 depends on BR2_arm || BR2_armeb
187 select BR2_LINUX_KERNEL_DTS_SUPPORT
188 select BR2_LINUX_KERNEL_APPENDED_DTB
189 select BR2_LINUX_KERNEL_UBOOT_IMAGE
191 config BR2_LINUX_KERNEL_BZIMAGE
193 depends on BR2_i386 || BR2_x86_64
195 config BR2_LINUX_KERNEL_ZIMAGE
197 depends on BR2_arm || BR2_armeb || BR2_powerpc || \
198 BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
199 BR2_sh || BR2_sh64 || BR2_xtensa
201 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
202 bool "zImage with appended DT"
203 depends on BR2_arm || BR2_armeb
204 select BR2_LINUX_KERNEL_DTS_SUPPORT
205 select BR2_LINUX_KERNEL_APPENDED_DTB
207 config BR2_LINUX_KERNEL_CUIMAGE
209 depends on BR2_powerpc
210 select BR2_LINUX_KERNEL_UBOOT_IMAGE
211 select BR2_LINUX_KERNEL_DTS_SUPPORT
212 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
214 config BR2_LINUX_KERNEL_SIMPLEIMAGE
216 depends on BR2_microblaze
217 select BR2_LINUX_KERNEL_UBOOT_IMAGE
218 select BR2_LINUX_KERNEL_DTS_SUPPORT
219 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
221 config BR2_LINUX_KERNEL_LINUX_BIN
223 depends on BR2_microblaze
224 select BR2_LINUX_KERNEL_UBOOT_IMAGE
226 config BR2_LINUX_KERNEL_VMLINUX_BIN
228 depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64
230 config BR2_LINUX_KERNEL_VMLINUX
233 config BR2_LINUX_KERNEL_VMLINUZ
235 depends on BR2_mips || BR2_mipsel
237 config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
240 For certain cases a board-specific target image must be
241 used. For example, on powerPC where the OpenFirmware
242 description is attached in a board-specific kernel image
243 target like 'cuImage.mpc8379_rdb'.
245 Select this option and specify the make target in "Kernel
250 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
251 string "Kernel image target name"
252 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
254 Specify the kernel make target to build the kernel that you
257 config BR2_LINUX_KERNEL_IMAGE_NAME
258 string "Kernel image name"
259 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
261 The filename of the kernel image, if it is different from the
262 make target (above). Only Xtensa uses a filename different from
263 the make target. Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
265 If unsure, leave it empty.
267 config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
268 string "load address (for 3.7+ multi-platform image)"
269 depends on BR2_arm || BR2_armeb
270 depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
272 If your ARM system's Linux kernel is configured with the new (3.7+)
273 multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
274 kernel config), then it is necessary to specify a kernel load address
275 when building the uImage. This should be a hexadecimal string
276 beginning with 0x, for example: 0x00008000.
278 If unsure, let this option empty.
280 config BR2_LINUX_KERNEL_DTS_SUPPORT
281 bool "Build a Device Tree Blob (DTB)"
283 Compile one or more device tree sources into device tree blobs.
284 Select the dts files to compile in the options below.
286 if BR2_LINUX_KERNEL_DTS_SUPPORT
288 # We have mainly three cases when it comes to device tree support:
289 # 1) We don't want any support at all. Then the ..DTS_SUPPORT
290 # variable won't be set
291 # 2) We want device tree support, so we need the user to enter
292 # the device tree name or the the path to the custom device
293 # he uses, but the kernel abstracts this from us and only
294 # build an image that looks like a regular kernel image. In
295 # this case, we only need to derive the kernel image name from
296 # the given device tree name, and all the rest is as usual
297 # 3) We want device tree support, but the kernel requires us to
298 # build the device tree blob separately. In this case, some
299 # more logic will be needed.
300 # The variable below address the second case, were you only want
301 # limited actions from buildroot.
302 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
305 config BR2_LINUX_KERNEL_APPENDED_DTB
309 prompt "Device tree source"
310 default BR2_LINUX_KERNEL_USE_INTREE_DTS
312 config BR2_LINUX_KERNEL_USE_INTREE_DTS
313 bool "Use a device tree present in the kernel."
315 Use a device tree source distributed with
316 the kernel sources. The dts files are located
317 in the arch/<arch>/boot/dts folder.
319 config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
320 bool "Use a custom device tree file"
322 Use a custom device tree file, i.e, a device
323 tree file that does not belong to the kernel
327 config BR2_LINUX_KERNEL_INTREE_DTS_NAME
328 string "Device Tree Source file names"
329 depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
331 Name of the device tree source file, without
332 the trailing .dts. You can provide a list of
333 dts files to build, separated by spaces.
335 config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
336 string "Device Tree Source file paths"
337 depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
339 Path to the device tree source files. You can
340 provide a list of dts paths to copy and build,
345 config BR2_LINUX_KERNEL_INSTALL_TARGET
346 bool "Install kernel image to /boot in target"
347 depends on !BR2_TARGET_ROOTFS_INITRAMFS
349 Select this option to have the kernel image installed to
350 /boot in the target root filesystem, as is typically done on
353 Note that this option also installs the Device Tree Blobs to
354 /boot if DTBs have been generated by the kernel build
358 source "linux/Config.ext.in"
360 endif # BR2_LINUX_KERNEL