summaryrefslogtreecommitdiff
path: root/linux/Config.in
blob: b4445f05de42c5aaff7419a75cd77ad08a268737 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
menu "Kernel"

config BR2_LINUX_KERNEL
	bool "Linux Kernel"
	help
	  Enable this option if you want to build a Linux kernel for
	  your embedded device

if BR2_LINUX_KERNEL

# https://sourceware.org/bugzilla/show_bug.cgi?id=21458
comment "Linux kernel in thumb mode may be broken with binutils 2.30"
	depends on BR2_arm || BR2_armeb
	depends on BR2_BINUTILS_VERSION_2_30_X

# Packages that need to have a kernel with support for loadable modules,
# but do not use the kernel-modules infrastructure, should select that
# option.
config BR2_LINUX_NEEDS_MODULES
	bool

#
# Version selection. We provide the choice between:
#
#  1. A single fairly recent stable kernel version
#  2. A custom stable version
#  3. A custom tarball
#  4. A set of custom repository locations
#
choice
	prompt "Kernel version"

config BR2_LINUX_KERNEL_LATEST_VERSION
	bool "Latest version (5.1)"

config BR2_LINUX_KERNEL_LATEST_CIP_VERSION
	bool "Latest CIP SLTS version (v4.19.13-cip1)"
	help
	  CIP launched in the spring of 2016 to address the needs of
	  organizations in industries such as power generation and
	  distribution, water, oil and gas, transportation, building
	  automation and more for reliable and secure Linux-based
	  embedded systems that can be sustained over a period of
	  10 to as many as 60 years.
	  The project's goal is to provide an open source base layer
	  of industrial-grade software that permits the use and
	  implementation of software building blocks that meet
	  these requirements.

	  The CIP community plans to maintain 4.4 for security and
	  bug fixes for more than 10 years.

	  https://www.cip-project.org

config BR2_LINUX_KERNEL_CUSTOM_VERSION
	bool "Custom version"
	help
	  This option allows to use a specific official version from
	  kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...

	  Note: you cannot use this option to select a _longterm_ 2.6
	  kernel, because these kernels are not located at the standard
	  URL at kernel.org. Instead, select "Custom tarball" and
	  specify the right URL directly.

config BR2_LINUX_KERNEL_CUSTOM_TARBALL
	bool "Custom tarball"
	help
	  This option allows to specify a URL pointing to a kernel
	  source tarball. This URL can use any protocol recognized by
	  Buildroot, like http://, ftp://, file:// or scp://.

	  When pointing to a local tarball using file://, you may want
	  to use a make variable like $(TOPDIR) to reference the root of
	  the Buildroot tree.

config BR2_LINUX_KERNEL_CUSTOM_GIT
	bool "Custom Git repository"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a Git repository.

config BR2_LINUX_KERNEL_CUSTOM_HG
	bool "Custom Mercurial repository"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a Mercurial repository.

config BR2_LINUX_KERNEL_CUSTOM_SVN
	bool "Custom Subversion repository"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a Subversion repository.

endchoice

config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
	string "Kernel version"
	depends on BR2_LINUX_KERNEL_CUSTOM_VERSION

config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
	string "URL of custom kernel tarball"
	depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL

if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN

config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
	string "URL of custom repository"
	default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
		if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != ""  # legacy

config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
	string "Custom repository version"
	default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
		if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != ""  # legacy
	help
	  Revision to use in the typical format used by
	  Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..

endif

config BR2_LINUX_KERNEL_VERSION
	string
	default "5.1.3" if BR2_LINUX_KERNEL_LATEST_VERSION
	default "v4.19.13-cip1" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
		if BR2_LINUX_KERNEL_CUSTOM_VERSION
	default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
	default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
		if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN

#
# Patch selection
#

config BR2_LINUX_KERNEL_PATCH
	string "Custom kernel patches"
	help
	  A space-separated list of patches to apply to the
	  kernel. Each patch can be described as an URL, a local file
	  path, or a directory. In the case of a directory, all files
	  matching *.patch in the directory will be applied.

#
# Configuration selection
#

choice
	prompt "Kernel configuration"
	default BR2_LINUX_KERNEL_USE_DEFCONFIG

config BR2_LINUX_KERNEL_USE_DEFCONFIG
	bool "Using an in-tree defconfig file"

config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
	bool "Use the architecture default configuration"
	help
	  This option will use the default configuration for the
	  selected architecture. I.e, it is equivalent to running
	  "make ARCH=<foo> defconfig". This is useful on architectures
	  that have a single defconfig file, such as ARM64.

config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
	bool "Using a custom (def)config file"

endchoice

config BR2_LINUX_KERNEL_DEFCONFIG
	string "Defconfig name"
	depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
	help
	  Name of the kernel defconfig file to use, without the
	  trailing _defconfig.  The defconfig is located in
	  arch/<arch>/configs in the kernel tree.

config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
	string "Configuration file path"
	depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
	help
	  Path to the kernel configuration file

	  Note: this can be a defconfig file or a complete .config file,
	  which can later be saved back with make
	  linux-update-(def)config.

config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
	string "Additional configuration fragment files"
	help
	  A space-separated list of kernel configuration fragment files,
	  that will be merged to the main kernel configuration file.

config BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH
	string "Custom boot logo file path"
	help
	  Use a custom Linux framebuffer boot logo.
	  Custom logo should be in PNG or JPEG format, it will be
	  converted to the linux kernel format (224 colors only)
	  and copied over the original logo file.

#
# Binary format
#

choice
	prompt "Kernel binary format"
	default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb

config BR2_LINUX_KERNEL_UIMAGE
	bool "uImage"
	depends on BR2_arc || BR2_arm || BR2_armeb || \
		   BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
		   BR2_sh || BR2_mips || BR2_mipsel || \
		   BR2_mips64 || BR2_mips64el || BR2_xtensa
	select BR2_PACKAGE_HOST_UBOOT_TOOLS

config BR2_LINUX_KERNEL_APPENDED_UIMAGE
	bool "uImage with appended DT"
	depends on BR2_arm || BR2_armeb
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_APPENDED_DTB
	select BR2_PACKAGE_HOST_UBOOT_TOOLS

config BR2_LINUX_KERNEL_BZIMAGE
	bool "bzImage"
	depends on BR2_i386 || BR2_x86_64

config BR2_LINUX_KERNEL_ZIMAGE
	bool "zImage"
	depends on BR2_arm || BR2_armeb || BR2_powerpc || \
		   BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
		   BR2_sh || BR2_xtensa

config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
	bool "zImage.epapr"
	depends on BR2_powerpc64 || BR2_powerpc64le

config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
	bool "zImage with appended DT"
	depends on BR2_arm || BR2_armeb
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_APPENDED_DTB

config BR2_LINUX_KERNEL_CUIMAGE
	bool "cuImage"
	depends on BR2_powerpc
	select BR2_PACKAGE_HOST_UBOOT_TOOLS
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT

config BR2_LINUX_KERNEL_SIMPLEIMAGE
	bool "simpleImage"
	depends on BR2_microblaze
	select BR2_PACKAGE_HOST_UBOOT_TOOLS
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT

config BR2_LINUX_KERNEL_IMAGE
	bool "Image"
	depends on BR2_aarch64 || BR2_riscv

config BR2_LINUX_KERNEL_LINUX_BIN
	bool "linux.bin"
	depends on BR2_microblaze
	select BR2_PACKAGE_HOST_UBOOT_TOOLS

config BR2_LINUX_KERNEL_VMLINUX_BIN
	bool "vmlinux.bin"
	depends on BR2_mips || BR2_mipsel || BR2_sh

config BR2_LINUX_KERNEL_VMLINUX
	bool "vmlinux"

config BR2_LINUX_KERNEL_VMLINUZ
	bool "vmlinuz"
	depends on BR2_mips || BR2_mipsel

config BR2_LINUX_KERNEL_VMLINUZ_BIN
	bool "vmlinuz.bin"
	depends on BR2_mips || BR2_mipsel

config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
	bool "custom target"
	help
	  For certain cases a board-specific target image must be
	  used.  For example, on powerPC where the OpenFirmware
	  description is attached in a board-specific kernel image
	  target like 'cuImage.mpc8379_rdb'.

	  Select this option and specify the make target in "Kernel
	  image target name".

endchoice

#
# Kernel compression format
#

choice
	prompt "Kernel compression format"
	help
	  This selection will just ensure that the correct host tools
	  are built. The actual compression for the kernel should be
	  selected in the kernel configuration menu.

config BR2_LINUX_KERNEL_GZIP
	bool "gzip compression"

config BR2_LINUX_KERNEL_LZ4
	bool "lz4 compression"

config BR2_LINUX_KERNEL_LZMA
	bool "lzma compression"

config BR2_LINUX_KERNEL_LZO
	bool "lzo compression"

config BR2_LINUX_KERNEL_XZ
	bool "xz compression"

endchoice

config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
	string "Kernel image target name"
	depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
	help
	  Specify the kernel make target to build the kernel that you
	  need.

config BR2_LINUX_KERNEL_IMAGE_NAME
	string "Kernel image name"
	depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
	help
	  The filename of the kernel image, if it is different from the
	  make target (above). Only Xtensa uses a filename different
	  from the make target. Defaults to
	  BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.

	  If unsure, leave it empty.

config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
	string "load address (for 3.7+ multi-platform image)"
	depends on BR2_arm || BR2_armeb
	depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
	help
	  If your ARM system's Linux kernel is configured with the new
	  (3.7+) multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y
	  in your kernel config), then it is necessary to specify a
	  kernel load address when building the uImage. This should be a
	  hexadecimal string beginning with 0x, for example: 0x00008000.

	  If unsure, let this option empty.

config BR2_LINUX_KERNEL_DTS_SUPPORT
	bool "Build a Device Tree Blob (DTB)"
	help
	  Compile one or more device tree sources into device tree
	  blobs.
	  Select the dts files to compile in the options below.

if BR2_LINUX_KERNEL_DTS_SUPPORT

# We have mainly three cases when it comes to device tree support:
#   1) We don't want any support at all. Then the ..DTS_SUPPORT
#      variable won't be set
#   2) We want device tree support, so we need the user to enter the
#      device tree name or the path to the custom device he uses, but
#      the kernel abstracts this from us and only build an image that
#      looks like a regular kernel image. In this case, we only need
#      to derive the kernel image name from the given device tree
#      name, and all the rest is as usual
#   3) We want device tree support, but the kernel requires us to
#      build the device tree blob separately. In this case, some
#      more logic will be needed.
# The variable below address the second case, were you only want
# limited actions from buildroot.
config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
	bool

config BR2_LINUX_KERNEL_APPENDED_DTB
	bool

config BR2_LINUX_KERNEL_INTREE_DTS_NAME
	string "In-tree Device Tree Source file names"
	help
	  Name of in-tree device tree source file, without
	  the trailing .dts. You can provide a list of
	  dts files to build, separated by spaces.

config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
	string "Out-of-tree Device Tree Source file paths"
	help
	  Path to to out-of-tree device tree source files.
	  You can provide a list of dts paths to copy and
	  build, separated by spaces.

config BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT
	bool "Build Device Tree with overlay support"
	help
	  If enabled, pass the "-@" option to dtc, such that
	  symbols are generated in the compiled Device Tree.
	  Choose this option to support Device Tree overlays
	  on the target system.

endif

config BR2_LINUX_KERNEL_INSTALL_TARGET
	bool "Install kernel image to /boot in target"
	depends on !BR2_TARGET_ROOTFS_INITRAMFS
	help
	  Select this option to have the kernel image installed to
	  /boot in the target root filesystem, as is typically done on
	  x86/x86_64 systems.

	  Note that this option also installs the Device Tree Blobs to
	  /boot if DTBs have been generated by the kernel build
	  process.

config BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL
	bool "Needs host OpenSSL"
	help
	  Some Linux kernel configuration options (such as
	  CONFIG_SYSTEM_TRUSTED_KEYRING) require building a host
	  program called extract-cert, which itself needs
	  OpenSSL. Enabling this option will ensure host-openssl gets
	  built before the Linux kernel.

	  Enable this option if you get a Linux kernel build failure
	  such as "scripts/extract-cert.c:21:25: fatal error:
	  openssl/bio.h: No such file or directory".

config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF
	bool "Needs host libelf"
	help
	  Some Linux kernel configuration options (such as
	  CONFIG_UNWINDER_ORC) require building a host program that
	  needs libelf. Enabling this option will ensure host-elfutils
	  (which provides libelf) gets built before the Linux kernel.

	  Enable this option if you get a Linux kernel build failure
	  such as "Cannot generate ORC metadata for
	  CONFIG_UNWINDER_ORC=y, please install libelf-dev,
	  libelf-devel or elfutils-libelf-devel".

# Linux extensions
source "linux/Config.ext.in"

# Linux tools
source "package/linux-tools/Config.in"

endif # BR2_LINUX_KERNEL

endmenu