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 "4.0.4" 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 *.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_powerpc64 || BR2_powerpc64le || \
181 BR2_sh || BR2_sh64 || 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 || \
200 BR2_sh || BR2_sh64 || BR2_xtensa
202 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
203 bool "zImage with appended DT"
204 depends on BR2_arm || BR2_armeb
205 select BR2_LINUX_KERNEL_DTS_SUPPORT
206 select BR2_LINUX_KERNEL_APPENDED_DTB
208 config BR2_LINUX_KERNEL_CUIMAGE
210 depends on BR2_powerpc
211 select BR2_LINUX_KERNEL_UBOOT_IMAGE
212 select BR2_LINUX_KERNEL_DTS_SUPPORT
213 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
215 config BR2_LINUX_KERNEL_SIMPLEIMAGE
217 depends on BR2_microblaze
218 select BR2_LINUX_KERNEL_UBOOT_IMAGE
219 select BR2_LINUX_KERNEL_DTS_SUPPORT
220 select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
222 config BR2_LINUX_KERNEL_LINUX_BIN
224 depends on BR2_microblaze
225 select BR2_LINUX_KERNEL_UBOOT_IMAGE
227 config BR2_LINUX_KERNEL_VMLINUX_BIN
229 depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64
231 config BR2_LINUX_KERNEL_VMLINUX
234 config BR2_LINUX_KERNEL_VMLINUZ
236 depends on BR2_mips || BR2_mipsel
238 config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
241 For certain cases a board-specific target image must be
242 used. For example, on powerPC where the OpenFirmware
243 description is attached in a board-specific kernel image
244 target like 'cuImage.mpc8379_rdb'.
246 Select this option and specify the make target in "Kernel
251 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
252 string "Kernel image target name"
253 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
255 Specify the kernel make target to build the kernel that you
258 config BR2_LINUX_KERNEL_IMAGE_NAME
259 string "Kernel image name"
260 depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
262 The filename of the kernel image, if it is different from the
263 make target (above). Only Xtensa uses a filename different from
264 the make target. Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
266 If unsure, leave it empty.
268 config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
269 string "load address (for 3.7+ multi-platform image)"
270 depends on BR2_arm || BR2_armeb
271 depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
273 If your ARM system's Linux kernel is configured with the new (3.7+)
274 multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
275 kernel config), then it is necessary to specify a kernel load address
276 when building the uImage. This should be a hexadecimal string
277 beginning with 0x, for example: 0x00008000.
279 If unsure, let this option empty.
281 config BR2_LINUX_KERNEL_DTS_SUPPORT
282 bool "Build a Device Tree Blob (DTB)"
284 Compile one or more device tree sources into device tree blobs.
285 Select the dts files to compile in the options below.
287 if BR2_LINUX_KERNEL_DTS_SUPPORT
289 # We have mainly three cases when it comes to device tree support:
290 # 1) We don't want any support at all. Then the ..DTS_SUPPORT
291 # variable won't be set
292 # 2) We want device tree support, so we need the user to enter the
293 # device tree name or the path to the custom device he uses, but
294 # the kernel abstracts this from us and only build an image that
295 # looks like a regular kernel image. In this case, we only need
296 # to derive the kernel image name from the given device tree
297 # name, and all the rest is as usual
298 # 3) We want device tree support, but the kernel requires us to
299 # build the device tree blob separately. In this case, some
300 # more logic will be needed.
301 # The variable below address the second case, were you only want
302 # limited actions from buildroot.
303 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
306 config BR2_LINUX_KERNEL_APPENDED_DTB
310 prompt "Device tree source"
311 default BR2_LINUX_KERNEL_USE_INTREE_DTS
313 config BR2_LINUX_KERNEL_USE_INTREE_DTS
314 bool "Use a device tree present in the kernel."
316 Use a device tree source distributed with
317 the kernel sources. The dts files are located
318 in the arch/<arch>/boot/dts folder.
320 config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
321 bool "Use a custom device tree file"
323 Use a custom device tree file, i.e, a device
324 tree file that does not belong to the kernel
328 config BR2_LINUX_KERNEL_INTREE_DTS_NAME
329 string "Device Tree Source file names"
330 depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
332 Name of the device tree source file, without
333 the trailing .dts. You can provide a list of
334 dts files to build, separated by spaces.
336 config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
337 string "Device Tree Source file paths"
338 depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
340 Path to the device tree source files. You can
341 provide a list of dts paths to copy and build,
346 config BR2_LINUX_KERNEL_INSTALL_TARGET
347 bool "Install kernel image to /boot in target"
348 depends on !BR2_TARGET_ROOTFS_INITRAMFS
350 Select this option to have the kernel image installed to
351 /boot in the target root filesystem, as is typically done on
354 Note that this option also installs the Device Tree Blobs to
355 /boot if DTBs have been generated by the kernel build
359 source "linux/Config.ext.in"
361 endif # BR2_LINUX_KERNEL