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 glibc
96 for some time now. Choose only if you are sure your C library
97 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
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 toolchain, headers >= 3.10"
141 depends on !(BR2_TOOLCHAIN_USES_GLIBC \
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 symlinks
223 to their counterparts in /usr. In this case, /usr can not be a
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 password.
234 However, if you have an ssh server and you add an ssh key, you
235 can still allow root to log in. Alternatively, you can use sudo
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 set,
246 and root will need no password to log in.
248 If the password starts with any of $1$, $5$ or $6$, it is considered
249 to be already crypt-encoded with respectively md5, sha256 or sha512.
250 Any other value is taken to be a clear-text value, and is crypt-encoded
251 as per the "Passwords encoding" scheme, above.
253 Note: "$" signs in the hashed password must be doubled. For example,
254 if the hashed password is "$1$longsalt$v35DIIeMo4yUfI23yditq0",
255 then you must enter it as "$$1$$longsalt$$v35DIIeMo4yUfI23yditq0"
256 (this is necessary otherwise make would attempt to interpret the $
257 as a variable expansion).
260 The password appears as-is in the .config file, and may appear
261 in the build log! Avoid using a valuable password if either the
262 .config file or the build log may be distributed, or at the
263 very least use a strong cryptographic hash for your password!
267 default BR2_SYSTEM_BIN_SH_DASH if !BR2_PACKAGE_BUSYBOX
269 Select which shell will provide /bin/sh.
271 # busybox has shells that work on noMMU
272 config BR2_SYSTEM_BIN_SH_BUSYBOX
273 bool "busybox' default shell"
274 depends on BR2_PACKAGE_BUSYBOX
276 config BR2_SYSTEM_BIN_SH_BASH
278 depends on BR2_USE_MMU # bash
279 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
280 select BR2_PACKAGE_BASH
282 config BR2_SYSTEM_BIN_SH_DASH
284 depends on BR2_USE_MMU # dash
285 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
286 select BR2_PACKAGE_DASH
288 config BR2_SYSTEM_BIN_SH_MKSH
290 depends on BR2_USE_MMU # mksh
291 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
292 select BR2_PACKAGE_MKSH
294 config BR2_SYSTEM_BIN_SH_ZSH
296 depends on BR2_USE_MMU # zsh
297 depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
298 select BR2_PACKAGE_ZSH
300 comment "bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS"
301 depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS && BR2_PACKAGE_BUSYBOX
303 config BR2_SYSTEM_BIN_SH_NONE
308 config BR2_SYSTEM_BIN_SH
310 default "bash" if BR2_SYSTEM_BIN_SH_BASH
311 default "dash" if BR2_SYSTEM_BIN_SH_DASH
312 default "mksh" if BR2_SYSTEM_BIN_SH_MKSH
313 default "zsh" if BR2_SYSTEM_BIN_SH_ZSH
315 menuconfig BR2_TARGET_GENERIC_GETTY
316 bool "Run a getty (login prompt) after boot"
319 if BR2_TARGET_GENERIC_GETTY
320 config BR2_TARGET_GENERIC_GETTY_PORT
324 Specify a port to run a getty on.
328 default BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
330 Select a baudrate to use.
332 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
333 bool "keep kernel default"
334 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
336 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
338 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
340 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
342 config BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
346 config BR2_TARGET_GENERIC_GETTY_BAUDRATE
348 default "0" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
349 default "9600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
350 default "19200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
351 default "38400" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
352 default "57600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
353 default "115200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
355 config BR2_TARGET_GENERIC_GETTY_TERM
356 string "TERM environment variable"
361 config BR2_TARGET_GENERIC_GETTY_OPTIONS
362 string "other options to pass to getty"
365 Any other flags you want to pass to getty,
366 Refer to getty --help for details.
369 config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
370 bool "remount root filesystem read-write during boot"
373 The root filesystem is typically mounted read-only at boot.
374 By default, buildroot remounts it in read-write mode early during the
376 Say no here if you would rather like your root filesystem to remain
380 config BR2_SYSTEM_DHCP
381 string "Network interface to configure through DHCP"
383 depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD
385 Enter here the name of the network interface (E.G. eth0) to
386 automatically configure through DHCP at bootup.
388 If left empty, no automatic DHCP requests will take place.
390 For more complicated network setups use an overlay to overwrite
391 /etc/network/interfaces or add a networkd configuration file.
393 comment "automatic network configuration via DHCP needs ifupdown or busybox or networkd"
394 depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD)
396 endif # BR2_ROOTFS_SKELETON_DEFAULT
398 config BR2_ENABLE_LOCALE_PURGE
399 bool "Purge unwanted locales"
402 Explicitly specify what locales to install on target. If N
403 then all locales supported by packages are installed.
405 config BR2_ENABLE_LOCALE_WHITELIST
406 string "Locales to keep"
408 depends on BR2_ENABLE_LOCALE_PURGE
410 Whitespace seperated list of locales to allow on target.
411 Locales not listed here will be removed from the target.
412 See 'locale -a' on your host for a list of locales available
413 on your build host, or have a look in /usr/share/locale in
414 the target file system for available locales.
416 Notice that listing a locale here doesn't guarantee that it
417 will be available on the target - That purely depends on the
418 support for that locale in the selected packages.
420 config BR2_GENERATE_LOCALE
421 string "Generate locale data"
424 (BR2_TOOLCHAIN_BUILDROOT_UCLIBC && BR2_ENABLE_LOCALE) || \
425 BR2_TOOLCHAIN_USES_GLIBC
427 Generate support for a list of locales. Locales can be
428 specified with or without encoding, when no encoding is
429 specified, UTF-8 is assumed. Examples of locales: en_US,
432 config BR2_SYSTEM_ENABLE_NLS
433 bool "Enable Native Language Support (NLS)"
434 depends on BR2_USE_WCHAR
435 # - glibc has built-in NLS support, but anyway doesn't
436 # support static linking
437 # - musl and uclibc support static linking, but they don't
438 # have built-in NLS support, which is provided by the
439 # libintl library from gettext. The fact that it is a
440 # separate library causes too many problems for static
442 depends on !BR2_STATIC_LIBS
443 select BR2_PACKAGE_GETTEXT if !BR2_TOOLCHAIN_HAS_FULL_GETTEXT
445 This option will enable Native Language Support, which will
446 allow software packages to support translations.
448 comment "NLS support needs a toolchain w/ wchar, dynamic library"
449 depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
451 config BR2_TARGET_TZ_INFO
452 bool "Install timezone info"
453 select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_GLIBC
454 select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_MUSL
455 select BR2_PACKAGE_TZ if BR2_TOOLCHAIN_USES_UCLIBC
457 Say 'y' here to install timezone info.
459 if BR2_TARGET_TZ_INFO
461 config BR2_TARGET_TZ_ZONELIST
462 string "timezone list"
465 Space-separated list of time zones to compile.
467 The value "default" includes all commonly used time zones. Note
468 that this set consumes around 5.5M for glibc and 2.1M for uClibc.
470 The full list is the list of files in the time zone database source,
471 not including the build and .tab files.
473 config BR2_TARGET_LOCALTIME
474 string "default local time"
477 The time zone to install as the default local time, expressed as a
478 tzdata location, such as:
479 Etc/UTC (the default)
486 endif # BR2_TARGET_TZ_INFO
488 config BR2_ROOTFS_USERS_TABLES
489 string "Path to the users tables"
491 Specify a space-separated list of users table locations,
492 that will be passed to the mkusers utility to create
493 users on the system, with home directory, password, etc.
495 See manual for details on the usage and syntax of these files.
497 config BR2_ROOTFS_OVERLAY
498 string "Root filesystem overlay directories"
501 Specify a list of directories that are copied over the target
502 root filesystem after the build has finished and before it is
503 packed into the selected filesystem images.
505 They are copied as-is into the rootfs, excluding files ending with
506 ~ and .git, .svn and .hg directories.
508 config BR2_ROOTFS_POST_BUILD_SCRIPT
509 string "Custom scripts to run before creating filesystem images"
512 Specify a space-separated list of scripts to be run after the build
513 has finished and before Buildroot starts packing the files into
514 selected filesystem images.
516 This gives users the opportunity to do board-specific cleanups,
517 add-ons and the like, so the generated files can be used directly
518 without further processing.
520 These scripts are called with the target directory name as first
521 argument. Make sure the exit code of those scripts are 0, otherwise
522 make will stop after calling them.
524 config BR2_ROOTFS_POST_FAKEROOT_SCRIPT
525 string "Custom scripts to run inside the fakeroot environment"
528 Specify a space-separated list of scripts to be run at the end
529 of the fakeroot script right before the image(s) are actually
532 This gives users the opportunity to do customisations of the
533 content of the rootfs, which would otherwise require root
536 These scripts are called with the target directory name as
537 first argument. The build will fail on the first scripts that
538 exits with a non-zero exit code.
540 Note that Buildroot already provides mechanisms to customise
541 the content of the rootfs:
543 - BR2_ROOTFS_STATIC_DEVICE_TABLE
544 to create arbitrary entries statically in /dev
546 - BR2_ROOTFS_DEVICE_TABLE
547 to set arbitrary permissions as well as extended attributes
548 (such as capabilities) on files and directories,
550 - BR2_ROOTFS_USERS_TABLES:
551 to create arbitrary users and their home directories
553 It is highly recommended to use those mechanisms if possible,
554 rather than using custom fakeroot scripts.
556 config BR2_ROOTFS_POST_IMAGE_SCRIPT
557 string "Custom scripts to run after creating filesystem images"
560 Specify a space-separated list of scripts to be run after
561 the build has finished and after Buildroot has packed the
562 files into selected filesystem images.
564 This can for example be used to call a tool building a
565 firmware image from different images generated by Buildroot,
566 or automatically extract the tarball root filesystem image
567 into some location exported by NFS, or any other custom
570 These scripts are called with the images directory name as
571 first argument. The script is executed from the main Buildroot
572 source directory as the current directory.
574 config BR2_ROOTFS_POST_SCRIPT_ARGS
575 string "Extra arguments passed to custom scripts"
576 depends on BR2_ROOTFS_POST_BUILD_SCRIPT != "" \
577 || BR2_ROOTFS_POST_FAKEROOT_SCRIPT != "" \
578 || BR2_ROOTFS_POST_IMAGE_SCRIPT != ""
580 Pass these additional arguments to each post-build or post-image
583 Note that all the post-build and post-image scripts will be passed
584 the same set of arguments, you can not pass different arguments to
587 Note also, as stated in their respective help text, that the first
588 argument to each post-build or post-image script is the target
589 directory / images directory. The arguments in this option will be
590 passed *after* those.