]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - linux/Config.in
linux: bump default to version 4.16.10
[coffee/buildroot.git] / linux / Config.in
1 menu "Kernel"
2
3 config BR2_LINUX_KERNEL
4         bool "Linux Kernel"
5         help
6           Enable this option if you want to build a Linux kernel for
7           your embedded device
8
9 if BR2_LINUX_KERNEL
10
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
13 # option.
14 config BR2_LINUX_NEEDS_MODULES
15         bool
16
17 #
18 # Version selection. We provide the choice between:
19 #
20 #  1. A single fairly recent stable kernel version
21 #  2. A custom stable version
22 #  3. A custom tarball
23 #  4. A set of custom repository locations
24 #
25 choice
26         prompt "Kernel version"
27
28 config BR2_LINUX_KERNEL_LATEST_VERSION
29         bool "Latest version (4.16)"
30
31 config BR2_LINUX_KERNEL_LATEST_CIP_VERSION
32         bool "Latest CIP SLTS version (v4.4.112-cip18)"
33         help
34           CIP launched in the spring of 2016 to address the needs of
35           organizations in industries such as power generation and
36           distribution, water, oil and gas, transportation, building
37           automation and more for reliable and secure Linux-based
38           embedded systems that can be sustained over a period of
39           10 to as many as 60 years.
40           The project's goal is to provide an open source base layer
41           of industrial-grade software that permits the use and
42           implementation of software building blocks that meet
43           these requirements.
44
45           The CIP community plans to maintain 4.4 for security and
46           bug fixes for more than 10 years.
47
48           https://www.cip-project.org
49
50 config BR2_LINUX_KERNEL_CUSTOM_VERSION
51         bool "Custom version"
52         help
53           This option allows to use a specific official version from
54           kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...
55
56           Note: you cannot use this option to select a _longterm_ 2.6
57           kernel, because these kernels are not located at the standard
58           URL at kernel.org. Instead, select "Custom tarball" and
59           specify the right URL directly.
60
61 config BR2_LINUX_KERNEL_CUSTOM_TARBALL
62         bool "Custom tarball"
63         help
64           This option allows to specify a URL pointing to a kernel
65           source tarball. This URL can use any protocol recognized by
66           Buildroot, like http://, ftp://, file:// or scp://.
67
68           When pointing to a local tarball using file://, you may want
69           to use a make variable like $(TOPDIR) to reference the root of
70           the Buildroot tree.
71
72 config BR2_LINUX_KERNEL_CUSTOM_GIT
73         bool "Custom Git repository"
74         help
75           This option allows Buildroot to get the Linux kernel source
76           code from a Git repository.
77
78 config BR2_LINUX_KERNEL_CUSTOM_HG
79         bool "Custom Mercurial repository"
80         help
81           This option allows Buildroot to get the Linux kernel source
82           code from a Mercurial repository.
83
84 config BR2_LINUX_KERNEL_CUSTOM_SVN
85         bool "Custom Subversion repository"
86         help
87           This option allows Buildroot to get the Linux kernel source
88           code from a Subversion repository.
89
90 endchoice
91
92 config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
93         string "Kernel version"
94         depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
95
96 config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
97         string "URL of custom kernel tarball"
98         depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL
99
100 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
101
102 config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
103         string "URL of custom repository"
104         default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
105                 if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != ""  # legacy
106
107 config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
108         string "Custom repository version"
109         default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
110                 if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != ""  # legacy
111         help
112           Revision to use in the typical format used by
113           Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
114
115 endif
116
117 config BR2_LINUX_KERNEL_VERSION
118         string
119         default "4.16.10" if BR2_LINUX_KERNEL_LATEST_VERSION
120         default "v4.4.112-cip18" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
121         default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
122                 if BR2_LINUX_KERNEL_CUSTOM_VERSION
123         default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
124         default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
125                 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
126
127 #
128 # Patch selection
129 #
130
131 config BR2_LINUX_KERNEL_PATCH
132         string "Custom kernel patches"
133         help
134           A space-separated list of patches to apply to the
135           kernel. Each patch can be described as an URL, a local file
136           path, or a directory. In the case of a directory, all files
137           matching *.patch in the directory will be applied.
138
139 #
140 # Configuration selection
141 #
142
143 choice
144         prompt "Kernel configuration"
145         default BR2_LINUX_KERNEL_USE_DEFCONFIG
146
147 config BR2_LINUX_KERNEL_USE_DEFCONFIG
148         bool "Using an in-tree defconfig file"
149
150 config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
151         bool "Use the architecture default configuration"
152         help
153           This option will use the default configuration for the
154           selected architecture. I.e, it is equivalent to running
155           "make ARCH=<foo> defconfig". This is useful on architectures
156           that have a single defconfig file, such as ARM64.
157
158 config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
159         bool "Using a custom (def)config file"
160
161 endchoice
162
163 config BR2_LINUX_KERNEL_DEFCONFIG
164         string "Defconfig name"
165         depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
166         help
167           Name of the kernel defconfig file to use, without the
168           trailing _defconfig.  The defconfig is located in
169           arch/<arch>/configs in the kernel tree.
170
171 config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
172         string "Configuration file path"
173         depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
174         help
175           Path to the kernel configuration file
176
177           Note: this can be a defconfig file or a complete .config file,
178           which can later be saved back with make
179           linux-update-(def)config.
180
181 config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
182         string "Additional configuration fragment files"
183         help
184           A space-separated list of kernel configuration fragment files,
185           that will be merged to the main kernel configuration file.
186
187 #
188 # Binary format
189 #
190
191 choice
192         prompt "Kernel binary format"
193         default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb
194
195 config BR2_LINUX_KERNEL_UIMAGE
196         bool "uImage"
197         depends on BR2_arc || BR2_arm || BR2_armeb || \
198                    BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
199                    BR2_sh || BR2_mips || BR2_mipsel || \
200                    BR2_mips64 || BR2_mips64el || BR2_xtensa
201         select BR2_PACKAGE_HOST_UBOOT_TOOLS
202
203 config BR2_LINUX_KERNEL_APPENDED_UIMAGE
204         bool "uImage with appended DT"
205         depends on BR2_arm || BR2_armeb
206         select BR2_LINUX_KERNEL_DTS_SUPPORT
207         select BR2_LINUX_KERNEL_APPENDED_DTB
208         select BR2_PACKAGE_HOST_UBOOT_TOOLS
209
210 config BR2_LINUX_KERNEL_BZIMAGE
211         bool "bzImage"
212         depends on BR2_i386 || BR2_x86_64
213
214 config BR2_LINUX_KERNEL_ZIMAGE
215         bool "zImage"
216         depends on BR2_arm || BR2_armeb || BR2_powerpc || \
217                    BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
218                    BR2_sh || BR2_xtensa
219
220 config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
221         bool "zImage.epapr"
222         depends on BR2_powerpc64 || BR2_powerpc64le
223
224 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
225         bool "zImage with appended DT"
226         depends on BR2_arm || BR2_armeb
227         select BR2_LINUX_KERNEL_DTS_SUPPORT
228         select BR2_LINUX_KERNEL_APPENDED_DTB
229
230 config BR2_LINUX_KERNEL_CUIMAGE
231         bool "cuImage"
232         depends on BR2_powerpc
233         select BR2_PACKAGE_HOST_UBOOT_TOOLS
234         select BR2_LINUX_KERNEL_DTS_SUPPORT
235         select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
236
237 config BR2_LINUX_KERNEL_SIMPLEIMAGE
238         bool "simpleImage"
239         depends on BR2_microblaze
240         select BR2_PACKAGE_HOST_UBOOT_TOOLS
241         select BR2_LINUX_KERNEL_DTS_SUPPORT
242         select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
243
244 config BR2_LINUX_KERNEL_IMAGE
245         bool "Image"
246         depends on BR2_aarch64
247
248 config BR2_LINUX_KERNEL_LINUX_BIN
249         bool "linux.bin"
250         depends on BR2_microblaze
251         select BR2_PACKAGE_HOST_UBOOT_TOOLS
252
253 config BR2_LINUX_KERNEL_VMLINUX_BIN
254         bool "vmlinux.bin"
255         depends on BR2_mips || BR2_mipsel || BR2_sh
256
257 config BR2_LINUX_KERNEL_VMLINUX
258         bool "vmlinux"
259
260 config BR2_LINUX_KERNEL_VMLINUZ
261         bool "vmlinuz"
262         depends on BR2_mips || BR2_mipsel
263
264 config BR2_LINUX_KERNEL_VMLINUZ_BIN
265         bool "vmlinuz.bin"
266         depends on BR2_mips || BR2_mipsel
267
268 config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
269         bool "custom target"
270         help
271           For certain cases a board-specific target image must be
272           used.  For example, on powerPC where the OpenFirmware
273           description is attached in a board-specific kernel image
274           target like 'cuImage.mpc8379_rdb'.
275
276           Select this option and specify the make target in "Kernel
277           image target name".
278
279 endchoice
280
281 #
282 # Kernel compression format
283 #
284
285 choice
286         prompt "Kernel compression format"
287         help
288           This selection will just ensure that the correct host tools
289           are built. The actual compression for the kernel should be
290           selected in the kernel configuration menu.
291
292 config BR2_LINUX_KERNEL_GZIP
293         bool "gzip compression"
294
295 config BR2_LINUX_KERNEL_LZ4
296         bool "lz4 compression"
297
298 config BR2_LINUX_KERNEL_LZMA
299         bool "lzma compression"
300
301 config BR2_LINUX_KERNEL_LZO
302         bool "lzo compression"
303
304 config BR2_LINUX_KERNEL_XZ
305         bool "xz compression"
306
307 endchoice
308
309 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
310         string "Kernel image target name"
311         depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
312         help
313           Specify the kernel make target to build the kernel that you
314           need.
315
316 config BR2_LINUX_KERNEL_IMAGE_NAME
317         string "Kernel image name"
318         depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
319         help
320           The filename of the kernel image, if it is different from the
321           make target (above). Only Xtensa uses a filename different
322           from the make target. Defaults to
323           BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
324
325           If unsure, leave it empty.
326
327 config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
328         string "load address (for 3.7+ multi-platform image)"
329         depends on BR2_arm || BR2_armeb
330         depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
331         help
332           If your ARM system's Linux kernel is configured with the new
333           (3.7+) multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y
334           in your kernel config), then it is necessary to specify a
335           kernel load address when building the uImage. This should be a
336           hexadecimal string beginning with 0x, for example: 0x00008000.
337
338           If unsure, let this option empty.
339
340 config BR2_LINUX_KERNEL_DTS_SUPPORT
341         bool "Build a Device Tree Blob (DTB)"
342         help
343           Compile one or more device tree sources into device tree
344           blobs.
345           Select the dts files to compile in the options below.
346
347 if BR2_LINUX_KERNEL_DTS_SUPPORT
348
349 # We have mainly three cases when it comes to device tree support:
350 #   1) We don't want any support at all. Then the ..DTS_SUPPORT
351 #      variable won't be set
352 #   2) We want device tree support, so we need the user to enter the
353 #      device tree name or the path to the custom device he uses, but
354 #      the kernel abstracts this from us and only build an image that
355 #      looks like a regular kernel image. In this case, we only need
356 #      to derive the kernel image name from the given device tree
357 #      name, and all the rest is as usual
358 #   3) We want device tree support, but the kernel requires us to
359 #      build the device tree blob separately. In this case, some
360 #      more logic will be needed.
361 # The variable below address the second case, were you only want
362 # limited actions from buildroot.
363 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
364         bool
365
366 config BR2_LINUX_KERNEL_APPENDED_DTB
367         bool
368
369 config BR2_LINUX_KERNEL_INTREE_DTS_NAME
370         string "In-tree Device Tree Source file names"
371         help
372           Name of in-tree device tree source file, without
373           the trailing .dts. You can provide a list of
374           dts files to build, separated by spaces.
375
376 config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
377         string "Out-of-tree Device Tree Source file paths"
378         help
379           Path to to out-of-tree device tree source files.
380           You can provide a list of dts paths to copy and
381           build, separated by spaces.
382
383 endif
384
385 config BR2_LINUX_KERNEL_INSTALL_TARGET
386         bool "Install kernel image to /boot in target"
387         depends on !BR2_TARGET_ROOTFS_INITRAMFS
388         help
389           Select this option to have the kernel image installed to
390           /boot in the target root filesystem, as is typically done on
391           x86/x86_64 systems.
392
393           Note that this option also installs the Device Tree Blobs to
394           /boot if DTBs have been generated by the kernel build
395           process.
396
397 config BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL
398         bool "Needs host OpenSSL"
399         help
400           Some Linux kernel configuration options (such as
401           CONFIG_SYSTEM_TRUSTED_KEYRING) require building a host
402           program called extract-cert, which itself needs
403           OpenSSL. Enabling this option will ensure host-openssl gets
404           built before the Linux kernel.
405
406           Enable this option if you get a Linux kernel build failure
407           such as "scripts/extract-cert.c:21:25: fatal error:
408           openssl/bio.h: No such file or directory".
409
410 config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF
411         bool "Needs host libelf"
412         help
413           Some Linux kernel configuration options (such as
414           CONFIG_UNWINDER_ORC) require building a host program that
415           needs libelf. Enabling this option will ensure host-elfutils
416           (which provides libelf) gets built before the Linux kernel.
417
418           Enable this option if you get a Linux kernel build failure
419           such as "Cannot generate ORC metadata for
420           CONFIG_UNWINDER_ORC=y, please install libelf-dev,
421           libelf-devel or elfutils-libelf-devel".
422
423 # Linux extensions
424 source "linux/Config.ext.in"
425
426 # Linux tools
427 source "package/linux-tools/Config.in"
428
429 endif # BR2_LINUX_KERNEL
430
431 endmenu