1 menu "System configuration"
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.
8 prompt "Root FS skeleton"
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
17 Use default target skeleton
19 config BR2_ROOTFS_SKELETON_CUSTOM
20 bool "custom target skeleton"
21 select BR2_PACKAGE_SKELETON_CUSTOM
23 Use custom target skeleton.
27 if BR2_ROOTFS_SKELETON_CUSTOM
29 config BR2_ROOTFS_SKELETON_CUSTOM_PATH
30 string "custom target skeleton path"
32 Path to custom target skeleton.
34 # dummy config so merged /usr workarounds can also be activated for
35 # custom rootfs skeleton
36 config BR2_ROOTFS_MERGED_USR
40 if BR2_ROOTFS_SKELETON_DEFAULT
42 config BR2_TARGET_GENERIC_HOSTNAME
43 string "System hostname"
46 Select system hostname to be stored in /etc/hostname.
48 Leave empty to not create /etc/hostname, or to keep the
49 one from a custom skeleton.
51 config BR2_TARGET_GENERIC_ISSUE
52 string "System banner"
53 default "Welcome to Buildroot"
55 Select system banner (/etc/issue) to be displayed at login.
57 Leave empty to not create /etc/issue, or to keep the
58 one from a custom skeleton.
63 bool "Passwords encoding"
64 default BR2_TARGET_GENERIC_PASSWD_MD5
66 Choose the password encoding scheme to use when Buildroot
67 needs to encode a password (eg. the root password, below).
69 Note: this is used at build-time, and *not* at runtime.
71 config BR2_TARGET_GENERIC_PASSWD_MD5
74 Use MD5 to encode passwords.
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
81 config BR2_TARGET_GENERIC_PASSWD_SHA256
84 Use SHA256 to encode passwords.
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.
90 config BR2_TARGET_GENERIC_PASSWD_SHA512
93 Use SHA512 to encode passwords.
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.
99 endchoice # Passwd encoding
101 config BR2_TARGET_GENERIC_PASSWD_METHOD
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
109 default BR2_INIT_BUSYBOX
111 config BR2_INIT_BUSYBOX
113 select BR2_PACKAGE_BUSYBOX
114 select BR2_PACKAGE_INITSCRIPTS
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
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
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
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)
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.
154 prompt "/dev management" if !BR2_INIT_SYSTEMD
155 default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
157 config BR2_ROOTFS_DEVICE_CREATION_STATIC
158 bool "Static using device table"
160 config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
161 bool "Dynamic using devtmpfs only"
163 config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
164 bool "Dynamic using devtmpfs + mdev"
165 select BR2_PACKAGE_BUSYBOX
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
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
180 comment "/dev management using udev (from systemd)"
181 depends on BR2_INIT_SYSTEMD
183 config BR2_ROOTFS_DEVICE_TABLE
184 string "Path to the permission tables"
185 default "system/device_table.txt"
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
192 See package/makedevs/README for details on the usage and
193 syntax of these files.
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
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.
204 See package/makedevs/README for details on the usage and
205 syntax of these files.
207 config BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES
208 bool "support extended attributes in device tables"
210 Support extended attributes handling in device tables
212 if BR2_ROOTFS_SKELETON_DEFAULT
214 config BR2_ROOTFS_MERGED_USR
215 bool "Use symlinks to /usr for /bin, /sbin and /lib"
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 / .
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.
226 config BR2_TARGET_ENABLE_ROOT_LOGIN
227 bool "Enable root login with password"
229 select BR2_PACKAGE_HOST_MKPASSWD if BR2_TARGET_GENERIC_ROOT_PASSWD != ""
231 Allow root to log in with a password.
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.
238 config BR2_TARGET_GENERIC_ROOT_PASSWD
239 string "Root password"
241 depends on BR2_TARGET_ENABLE_ROOT_LOGIN
243 Set the initial root password.
245 If set to empty (the default), then no root password will be
246 set, and root will need no password to log in.
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"
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
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
270 default BR2_SYSTEM_BIN_SH_DASH if !BR2_PACKAGE_BUSYBOX
272 Select which shell will provide /bin/sh.
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
279 config BR2_SYSTEM_BIN_SH_BASH
281 depends on BR2_USE_MMU # bash
282 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
283 select BR2_PACKAGE_BASH
285 config BR2_SYSTEM_BIN_SH_DASH
287 depends on BR2_USE_MMU # dash
288 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
289 select BR2_PACKAGE_DASH
291 config BR2_SYSTEM_BIN_SH_MKSH
293 depends on BR2_USE_MMU # mksh
294 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
295 select BR2_PACKAGE_MKSH
297 config BR2_SYSTEM_BIN_SH_ZSH
299 depends on BR2_USE_MMU # zsh
300 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
301 select BR2_PACKAGE_ZSH
303 comment "bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS"
304 depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS && BR2_PACKAGE_BUSYBOX
306 config BR2_SYSTEM_BIN_SH_NONE
311 config BR2_SYSTEM_BIN_SH
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
318 menuconfig BR2_TARGET_GENERIC_GETTY
319 bool "Run a getty (login prompt) after boot"
322 if BR2_TARGET_GENERIC_GETTY
323 config BR2_TARGET_GENERIC_GETTY_PORT
327 Specify a port to run a getty on.
331 default BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
333 Select a baudrate to use.
335 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
336 bool "keep kernel default"
337 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
339 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
341 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
343 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
345 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
349 config BR2_TARGET_GENERIC_GETTY_BAUDRATE
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
358 config BR2_TARGET_GENERIC_GETTY_TERM
359 string "TERM environment variable"
361 # currently observed only by busybox and sysvinit
362 depends on BR2_INIT_BUSYBOX || BR2_INIT_SYSV
366 config BR2_TARGET_GENERIC_GETTY_OPTIONS
367 string "other options to pass to getty"
369 # currently observed only by busybox and sysvinit
370 depends on BR2_INIT_BUSYBOX || BR2_INIT_SYSV
372 Any other flags you want to pass to getty,
373 Refer to getty --help for details.
376 config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
377 bool "remount root filesystem read-write during boot"
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
387 config BR2_SYSTEM_DHCP
388 string "Network interface to configure through DHCP"
390 depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD
392 Enter here the name of the network interface (E.G. eth0) to
393 automatically configure through DHCP at bootup.
395 If left empty, no automatic DHCP requests will take place.
397 For more complicated network setups use an overlay to
398 overwrite /etc/network/interfaces or add a networkd
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)
404 endif # BR2_ROOTFS_SKELETON_DEFAULT
406 config BR2_ENABLE_LOCALE_PURGE
407 bool "Purge unwanted locales"
410 Explicitly specify what locales to install on target. If N
411 then all locales supported by packages are installed.
413 config BR2_ENABLE_LOCALE_WHITELIST
414 string "Locales to keep"
416 depends on BR2_ENABLE_LOCALE_PURGE
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.
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.
428 config BR2_GENERATE_LOCALE
429 string "Generate locale data"
432 (BR2_TOOLCHAIN_BUILDROOT_UCLIBC && BR2_ENABLE_LOCALE) || \
433 BR2_TOOLCHAIN_USES_GLIBC
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,
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
450 depends on !BR2_STATIC_LIBS
451 select BR2_PACKAGE_GETTEXT if !BR2_TOOLCHAIN_HAS_FULL_GETTEXT
453 This option will enable Native Language Support, which will
454 allow software packages to support translations.
456 comment "NLS support needs a toolchain w/ wchar, dynamic library"
457 depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
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
465 Say 'y' here to install timezone info.
467 if BR2_TARGET_TZ_INFO
469 config BR2_TARGET_TZ_ZONELIST
470 string "timezone list"
473 Space-separated list of time zones to compile.
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
479 The full list is the list of files in the time zone database
480 source, not including the build and .tab files.
482 config BR2_TARGET_LOCALTIME
483 string "default local time"
486 The time zone to install as the default local time, expressed
487 as a tzdata location, such as:
488 Etc/UTC (the default)
495 endif # BR2_TARGET_TZ_INFO
497 config BR2_ROOTFS_USERS_TABLES
498 string "Path to the users tables"
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.
504 See manual for details on the usage and syntax of these files.
506 config BR2_ROOTFS_OVERLAY
507 string "Root filesystem overlay directories"
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.
514 They are copied as-is into the rootfs, excluding files ending
515 with ~ and .git, .svn and .hg directories.
517 config BR2_ROOTFS_POST_BUILD_SCRIPT
518 string "Custom scripts to run before creating filesystem images"
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.
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.
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.
533 config BR2_ROOTFS_POST_FAKEROOT_SCRIPT
534 string "Custom scripts to run inside the fakeroot environment"
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
541 This gives users the opportunity to do customisations of the
542 content of the rootfs, which would otherwise require root
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.
549 Note that Buildroot already provides mechanisms to customise
550 the content of the rootfs:
552 - BR2_ROOTFS_STATIC_DEVICE_TABLE
553 to create arbitrary entries statically in /dev
555 - BR2_ROOTFS_DEVICE_TABLE
556 to set arbitrary permissions as well as extended
557 attributes (such as capabilities) on files and
560 - BR2_ROOTFS_USERS_TABLES:
561 to create arbitrary users and their home directories
563 It is highly recommended to use those mechanisms if possible,
564 rather than using custom fakeroot scripts.
566 config BR2_ROOTFS_POST_IMAGE_SCRIPT
567 string "Custom scripts to run after creating filesystem images"
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.
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
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.
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 != ""
590 Pass these additional arguments to each post-build or
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.
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.