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