]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - system/Config.in
arch/arm: add cortex-m7 core
[coffee/buildroot.git] / system / Config.in
1 menu "System configuration"
2
3 # Note: usually, it is not possible to select a provider of a virtual
4 # package. But here we have an exception: there are only four providers
5 # and they only get selected by separate entries in this choice and
6 # under different, exclusive conditions. So this is a safe situation.
7 choice
8         prompt "Root FS skeleton"
9
10 config BR2_ROOTFS_SKELETON_DEFAULT
11         bool "default target skeleton"
12         select BR2_PACKAGE_SKELETON_INIT_SYSV if BR2_INIT_SYSV
13         select BR2_PACKAGE_SKELETON_INIT_SYSV if BR2_INIT_BUSYBOX
14         select BR2_PACKAGE_SKELETON_INIT_SYSTEMD if BR2_INIT_SYSTEMD
15         select BR2_PACKAGE_SKELETON_INIT_NONE if BR2_INIT_NONE
16         help
17           Use default target skeleton
18
19 config BR2_ROOTFS_SKELETON_CUSTOM
20         bool "custom target skeleton"
21         select BR2_PACKAGE_SKELETON_CUSTOM
22         help
23           Use custom target skeleton.
24
25 endchoice
26
27 if BR2_ROOTFS_SKELETON_CUSTOM
28
29 config BR2_ROOTFS_SKELETON_CUSTOM_PATH
30         string "custom target skeleton path"
31         help
32           Path to custom target skeleton.
33
34 # dummy config so merged /usr workarounds can also be activated for
35 # custom rootfs skeleton
36 config BR2_ROOTFS_MERGED_USR
37
38 endif
39
40 if BR2_ROOTFS_SKELETON_DEFAULT
41
42 config BR2_TARGET_GENERIC_HOSTNAME
43         string "System hostname"
44         default "buildroot"
45         help
46           Select system hostname to be stored in /etc/hostname.
47
48           Leave empty to not create /etc/hostname, or to keep the
49           one from a custom skeleton.
50
51 config BR2_TARGET_GENERIC_ISSUE
52         string "System banner"
53         default "Welcome to Buildroot"
54         help
55           Select system banner (/etc/issue) to be displayed at login.
56
57           Leave empty to not create /etc/issue, or to keep the
58           one from a custom skeleton.
59
60 endif
61
62 choice
63         bool "Passwords encoding"
64         default BR2_TARGET_GENERIC_PASSWD_MD5
65         help
66           Choose the password encoding scheme to use when Buildroot
67           needs to encode a password (eg. the root password, below).
68
69           Note: this is used at build-time, and *not* at runtime.
70
71 config BR2_TARGET_GENERIC_PASSWD_MD5
72         bool "md5"
73         help
74           Use MD5 to encode passwords.
75
76           The default. Wildly available, and pretty good.
77           Although pretty strong, MD5 is now an old hash function, and
78           suffers from some weaknesses, which makes it susceptible to
79           brute-force attacks.
80
81 config BR2_TARGET_GENERIC_PASSWD_SHA256
82         bool "sha-256"
83         help
84           Use SHA256 to encode passwords.
85
86           Very strong, but not ubiquitous, although available in glibc
87           for some time now. Choose only if you are sure your C library
88           understands SHA256 passwords.
89
90 config BR2_TARGET_GENERIC_PASSWD_SHA512
91         bool "sha-512"
92         help
93           Use SHA512 to encode passwords.
94
95           Extremely strong, but not ubiquitous, although available in
96           glibc for some time now. Choose only if you are sure your C
97           library understands SHA512 passwords.
98
99 endchoice # Passwd encoding
100
101 config BR2_TARGET_GENERIC_PASSWD_METHOD
102         string
103         default "md5"       if BR2_TARGET_GENERIC_PASSWD_MD5
104         default "sha-256"   if BR2_TARGET_GENERIC_PASSWD_SHA256
105         default "sha-512"   if BR2_TARGET_GENERIC_PASSWD_SHA512
106
107 choice
108         prompt "Init system"
109         default BR2_INIT_BUSYBOX
110
111 config BR2_INIT_BUSYBOX
112         bool "BusyBox"
113         select BR2_PACKAGE_BUSYBOX
114         select BR2_PACKAGE_INITSCRIPTS
115
116 config BR2_INIT_SYSV
117         bool "systemV"
118         depends on BR2_USE_MMU # sysvinit
119         select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # sysvinit
120         select BR2_PACKAGE_INITSCRIPTS
121         select BR2_PACKAGE_SYSVINIT
122
123 # In Buildroot, we decided not to support a split-usr when systemd is
124 # used as an init system. This is a design decision, not a systemd
125 # issue. Thus the select is with BR2_INIT_SYSTEMD (below) rather than
126 # with BR2_PACKAGE_SYSTEMD.
127 config BR2_INIT_SYSTEMD
128         bool "systemd"
129         depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
130         depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC
131         depends on BR2_USE_WCHAR
132         depends on BR2_TOOLCHAIN_HAS_THREADS
133         depends on BR2_TOOLCHAIN_HAS_SSP
134         depends on BR2_USE_MMU
135         depends on !BR2_STATIC_LIBS
136         depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
137         select BR2_ROOTFS_MERGED_USR
138         select BR2_PACKAGE_SYSTEMD
139
140 comment "systemd needs a glibc or uClibc toolchain, headers >= 3.10"
141         depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC \
142                 && BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10)
143
144 config BR2_INIT_NONE
145         bool "None"
146         help
147           Buildroot will not install any init system. You will
148           have to provide your own, either with a new package
149           or with a rootfs-overlay.
150
151 endchoice
152
153 choice
154         prompt "/dev management" if !BR2_INIT_SYSTEMD
155         default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
156
157 config BR2_ROOTFS_DEVICE_CREATION_STATIC
158         bool "Static using device table"
159
160 config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
161         bool "Dynamic using devtmpfs only"
162
163 config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
164         bool "Dynamic using devtmpfs + mdev"
165         select BR2_PACKAGE_BUSYBOX
166
167 config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
168         bool "Dynamic using devtmpfs + eudev"
169         depends on BR2_USE_WCHAR # eudev
170         depends on !BR2_STATIC_LIBS
171         depends on BR2_USE_MMU # eudev
172         select BR2_PACKAGE_EUDEV
173
174 comment "eudev needs a toolchain w/ wchar, dynamic library"
175         depends on BR2_USE_MMU
176         depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
177
178 endchoice
179
180 comment "/dev management using udev (from systemd)"
181         depends on BR2_INIT_SYSTEMD
182
183 config BR2_ROOTFS_DEVICE_TABLE
184         string "Path to the permission tables"
185         default "system/device_table.txt"
186         help
187           Specify a space-separated list of permission table locations,
188           that will be passed to the makedevs utility to assign
189           correct owners and permissions on various files in the
190           target filesystem.
191
192           See package/makedevs/README for details on the usage and
193           syntax of these files.
194
195 config BR2_ROOTFS_STATIC_DEVICE_TABLE
196         string "Path to the device tables"
197         default "system/device_table_dev.txt"
198         depends on BR2_ROOTFS_DEVICE_CREATION_STATIC
199         help
200           Specify a space-separated list of device table locations,
201           that will be passed to the makedevs utility to create all
202           the special device files under /dev.
203
204           See package/makedevs/README for details on the usage and
205           syntax of these files.
206
207 config BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES
208         bool "support extended attributes in device tables"
209         help
210           Support extended attributes handling in device tables
211
212 if BR2_ROOTFS_SKELETON_DEFAULT
213
214 config BR2_ROOTFS_MERGED_USR
215         bool "Use symlinks to /usr for /bin, /sbin and /lib"
216         help
217           If you say 'n' here, then /bin, /sbin and /lib and their
218           counterparts in /usr will be separate directories. This
219           is the historical UNIX way. In this case, /usr can be a
220           filesystem on a partition separate from / .
221
222           If you say 'y' here, then /bin, /sbin and /lib will be
223           symlinks to their counterparts in /usr. In this case, /usr can
224           not be a separate filesystem.
225
226 config BR2_TARGET_ENABLE_ROOT_LOGIN
227         bool "Enable root login with password"
228         default y
229         select BR2_PACKAGE_HOST_MKPASSWD if BR2_TARGET_GENERIC_ROOT_PASSWD != ""
230         help
231           Allow root to log in with a password.
232
233           If not enabled, root will not be able to log in with a
234           password. However, if you have an ssh server and you add an
235           ssh key, you can still allow root to log in. Alternatively,
236           you can use sudo to become root.
237
238 config BR2_TARGET_GENERIC_ROOT_PASSWD
239         string "Root password"
240         default ""
241         depends on BR2_TARGET_ENABLE_ROOT_LOGIN
242         help
243           Set the initial root password.
244
245           If set to empty (the default), then no root password will be
246           set, and root will need no password to log in.
247
248           If the password starts with any of $1$, $5$ or $6$, it is
249           considered to be already crypt-encoded with respectively md5,
250           sha256 or sha512.  Any other value is taken to be a clear-text
251           value, and is crypt-encoded as per the "Passwords encoding"
252           scheme, above.
253
254           Note: "$" signs in the hashed password must be doubled. For
255           example, if the hashed password is
256           "$1$longsalt$v35DIIeMo4yUfI23yditq0", then you must enter it
257           as "$$1$$longsalt$$v35DIIeMo4yUfI23yditq0" (this is necessary
258           otherwise make would attempt to interpret the $ as a variable
259           expansion).
260
261           WARNING! WARNING!
262           The password appears as-is in the .config file, and may appear
263           in the build log! Avoid using a valuable password if either
264           the .config file or the build log may be distributed, or at
265           the very least use a strong cryptographic hash for your
266           password!
267
268 choice
269         bool "/bin/sh"
270         default BR2_SYSTEM_BIN_SH_DASH if !BR2_PACKAGE_BUSYBOX
271         help
272           Select which shell will provide /bin/sh.
273
274 # busybox has shells that work on noMMU
275 config BR2_SYSTEM_BIN_SH_BUSYBOX
276         bool "busybox' default shell"
277         depends on BR2_PACKAGE_BUSYBOX
278
279 config BR2_SYSTEM_BIN_SH_BASH
280         bool "bash"
281         depends on BR2_USE_MMU # bash
282         depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
283         select BR2_PACKAGE_BASH
284
285 config BR2_SYSTEM_BIN_SH_DASH
286         bool "dash"
287         depends on BR2_USE_MMU # dash
288         depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
289         select BR2_PACKAGE_DASH
290
291 config BR2_SYSTEM_BIN_SH_MKSH
292         bool "mksh"
293         depends on BR2_USE_MMU # mksh
294         depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
295         select BR2_PACKAGE_MKSH
296
297 config BR2_SYSTEM_BIN_SH_ZSH
298         bool "zsh"
299         depends on BR2_USE_MMU # zsh
300         depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
301         select BR2_PACKAGE_ZSH
302
303 comment "bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS"
304         depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS && BR2_PACKAGE_BUSYBOX
305
306 config BR2_SYSTEM_BIN_SH_NONE
307         bool "none"
308
309 endchoice # /bin/sh
310
311 config BR2_SYSTEM_BIN_SH
312         string
313         default "bash"    if BR2_SYSTEM_BIN_SH_BASH
314         default "dash"    if BR2_SYSTEM_BIN_SH_DASH
315         default "mksh"    if BR2_SYSTEM_BIN_SH_MKSH
316         default "zsh"     if BR2_SYSTEM_BIN_SH_ZSH
317
318 menuconfig BR2_TARGET_GENERIC_GETTY
319         bool "Run a getty (login prompt) after boot"
320         default y
321
322 if BR2_TARGET_GENERIC_GETTY
323 config BR2_TARGET_GENERIC_GETTY_PORT
324         string "TTY port"
325         default "console"
326         help
327           Specify a port to run a getty on.
328
329 choice
330         prompt "Baudrate"
331         default BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
332         help
333           Select a baudrate to use.
334
335 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
336         bool "keep kernel default"
337 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
338         bool "9600"
339 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
340         bool "19200"
341 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
342         bool "38400"
343 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
344         bool "57600"
345 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
346         bool "115200"
347 endchoice
348
349 config BR2_TARGET_GENERIC_GETTY_BAUDRATE
350         string
351         default "0"             if BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
352         default "9600"          if BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
353         default "19200"         if BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
354         default "38400"         if BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
355         default "57600"         if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
356         default "115200"        if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
357
358 config BR2_TARGET_GENERIC_GETTY_TERM
359         string "TERM environment variable"
360         default "vt100"
361         # currently observed only by busybox and sysvinit
362         depends on BR2_INIT_BUSYBOX || BR2_INIT_SYSV
363         help
364           Specify a TERM type.
365
366 config BR2_TARGET_GENERIC_GETTY_OPTIONS
367         string "other options to pass to getty"
368         default ""
369         # currently observed only by busybox and sysvinit
370         depends on BR2_INIT_BUSYBOX || BR2_INIT_SYSV
371         help
372           Any other flags you want to pass to getty,
373           Refer to getty --help for details.
374 endif
375
376 config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
377         bool "remount root filesystem read-write during boot"
378         default y
379         help
380           The root filesystem is typically mounted read-only at boot.
381           By default, buildroot remounts it in read-write mode early
382           during the boot process.
383           Say no here if you would rather like your root filesystem to
384           remain read-only.
385           If unsure, say Y.
386
387 config BR2_SYSTEM_DHCP
388         string "Network interface to configure through DHCP"
389         default ""
390         depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD
391         help
392           Enter here the name of the network interface (E.G. eth0) to
393           automatically configure through DHCP at bootup.
394
395           If left empty, no automatic DHCP requests will take place.
396
397           For more complicated network setups use an overlay to
398           overwrite /etc/network/interfaces or add a networkd
399           configuration file.
400
401 comment "automatic network configuration via DHCP needs ifupdown or busybox or networkd"
402         depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD)
403
404 endif # BR2_ROOTFS_SKELETON_DEFAULT
405
406 config BR2_ENABLE_LOCALE_PURGE
407         bool "Purge unwanted locales"
408         default y
409         help
410           Explicitly specify what locales to install on target. If N
411           then all locales supported by packages are installed.
412
413 config BR2_ENABLE_LOCALE_WHITELIST
414         string "Locales to keep"
415         default "C en_US"
416         depends on BR2_ENABLE_LOCALE_PURGE
417         help
418           Whitespace seperated list of locales to allow on target.
419           Locales not listed here will be removed from the target.
420           See 'locale -a' on your host for a list of locales available
421           on your build host, or have a look in /usr/share/locale in
422           the target file system for available locales.
423
424           Notice that listing a locale here doesn't guarantee that it
425           will be available on the target - That purely depends on the
426           support for that locale in the selected packages.
427
428 config BR2_GENERATE_LOCALE
429         string "Generate locale data"
430         default ""
431         depends on \
432                 (BR2_TOOLCHAIN_BUILDROOT_UCLIBC && BR2_ENABLE_LOCALE) || \
433                 BR2_TOOLCHAIN_USES_GLIBC
434         help
435           Generate support for a list of locales. Locales can be
436           specified with or without encoding, when no encoding is
437           specified, UTF-8 is assumed. Examples of locales: en_US,
438           fr_FR.UTF-8.
439
440 config BR2_SYSTEM_ENABLE_NLS
441         bool "Enable Native Language Support (NLS)"
442         depends on BR2_USE_WCHAR
443         #  - glibc has built-in NLS support, but anyway doesn't
444         #    support static linking
445         #  - musl and uclibc support static linking, but they don't
446         #    have built-in NLS support, which is provided by the
447         #    libintl library from gettext. The fact that it is a
448         #    separate library causes too many problems for static
449         #    linking.
450         depends on !BR2_STATIC_LIBS
451         select BR2_PACKAGE_GETTEXT if !BR2_TOOLCHAIN_HAS_FULL_GETTEXT
452         help
453           This option will enable Native Language Support, which will
454           allow software packages to support translations.
455
456 comment "NLS support needs a toolchain w/ wchar, dynamic library"
457         depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
458
459 config BR2_TARGET_TZ_INFO
460         bool "Install timezone info"
461         select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_GLIBC
462         select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_MUSL
463         select BR2_PACKAGE_TZ if BR2_TOOLCHAIN_USES_UCLIBC
464         help
465           Say 'y' here to install timezone info.
466
467 if BR2_TARGET_TZ_INFO
468
469 config BR2_TARGET_TZ_ZONELIST
470         string "timezone list"
471         default "default"
472         help
473           Space-separated list of time zones to compile.
474
475           The value "default" includes all commonly used time zones.
476           Note that this set consumes around 5.5M for glibc and 2.1M for
477           uClibc.
478
479           The full list is the list of files in the time zone database
480           source, not including the build and .tab files.
481
482 config BR2_TARGET_LOCALTIME
483         string "default local time"
484         default "Etc/UTC"
485         help
486           The time zone to install as the default local time, expressed
487           as a tzdata location, such as:
488             Etc/UTC             (the default)
489             GMT
490             Europe/Paris
491             America/New_York
492             Pacific/Wallis
493             ...
494
495 endif # BR2_TARGET_TZ_INFO
496
497 config BR2_ROOTFS_USERS_TABLES
498         string "Path to the users tables"
499         help
500           Specify a space-separated list of users table locations,
501           that will be passed to the mkusers utility to create
502           users on the system, with home directory, password, etc.
503
504           See manual for details on the usage and syntax of these files.
505
506 config BR2_ROOTFS_OVERLAY
507         string "Root filesystem overlay directories"
508         default ""
509         help
510           Specify a list of directories that are copied over the target
511           root filesystem after the build has finished and before it is
512           packed into the selected filesystem images.
513
514           They are copied as-is into the rootfs, excluding files ending
515           with ~ and .git, .svn and .hg directories.
516
517 config BR2_ROOTFS_POST_BUILD_SCRIPT
518         string "Custom scripts to run before creating filesystem images"
519         default ""
520         help
521           Specify a space-separated list of scripts to be run after the
522           build has finished and before Buildroot starts packing the
523           files into selected filesystem images.
524
525           This gives users the opportunity to do board-specific
526           cleanups, add-ons and the like, so the generated files can be
527           used directly without further processing.
528
529           These scripts are called with the target directory name as
530           first argument. Make sure the exit code of those scripts are
531           0, otherwise make will stop after calling them.
532
533 config BR2_ROOTFS_POST_FAKEROOT_SCRIPT
534         string "Custom scripts to run inside the fakeroot environment"
535         default ""
536         help
537           Specify a space-separated list of scripts to be run at the end
538           of the fakeroot script right before the image(s) are actually
539           generated.
540
541           This gives users the opportunity to do customisations of the
542           content of the rootfs, which would otherwise require root
543           rights.
544
545           These scripts are called with the target directory name as
546           first argument. The build will fail on the first scripts that
547           exits with a non-zero exit code.
548
549           Note that Buildroot already provides mechanisms to customise
550           the content of the rootfs:
551
552             - BR2_ROOTFS_STATIC_DEVICE_TABLE
553                 to create arbitrary entries statically in /dev
554
555             - BR2_ROOTFS_DEVICE_TABLE
556                 to set arbitrary permissions as well as extended
557                 attributes (such as capabilities) on files and
558                 directories,
559
560             - BR2_ROOTFS_USERS_TABLES:
561                 to create arbitrary users and their home directories
562
563           It is highly recommended to use those mechanisms if possible,
564           rather than using custom fakeroot scripts.
565
566 config BR2_ROOTFS_POST_IMAGE_SCRIPT
567         string "Custom scripts to run after creating filesystem images"
568         default ""
569         help
570           Specify a space-separated list of scripts to be run after
571           the build has finished and after Buildroot has packed the
572           files into selected filesystem images.
573
574           This can for example be used to call a tool building a
575           firmware image from different images generated by Buildroot,
576           or automatically extract the tarball root filesystem image
577           into some location exported by NFS, or any other custom
578           action.
579
580           These scripts are called with the images directory name as
581           first argument. The script is executed from the main Buildroot
582           source directory as the current directory.
583
584 config BR2_ROOTFS_POST_SCRIPT_ARGS
585         string "Extra arguments passed to custom scripts"
586         depends on BR2_ROOTFS_POST_BUILD_SCRIPT != "" \
587                 || BR2_ROOTFS_POST_FAKEROOT_SCRIPT != "" \
588                 || BR2_ROOTFS_POST_IMAGE_SCRIPT != ""
589         help
590           Pass these additional arguments to each post-build or
591           post-image scripts.
592
593           Note that all the post-build and post-image scripts will be
594           passed the same set of arguments, you can not pass different
595           arguments to each script.
596
597           Note also, as stated in their respective help text, that the
598           first argument to each post-build or post-image script is the
599           target directory / images directory. The arguments in this
600           option will be passed *after* those.
601
602 endmenu