| menu "System configuration" |
| |
| # Note: usually, it is not possible to select a provider of a virtual |
| # package. But here we have an exception: there are only four providers |
| # and they only get selected by separate entries in this choice and |
| # under different, exclusive conditions. So this is a safe situation. |
| choice |
| prompt "Root FS skeleton" |
| |
| config BR2_ROOTFS_SKELETON_DEFAULT |
| bool "default target skeleton" |
| select BR2_PACKAGE_SKELETON_INIT_SYSV if BR2_INIT_SYSV |
| select BR2_PACKAGE_SKELETON_INIT_SYSV if BR2_INIT_BUSYBOX |
| select BR2_PACKAGE_SKELETON_INIT_SYSTEMD if BR2_INIT_SYSTEMD |
| select BR2_PACKAGE_SKELETON_INIT_NONE if BR2_INIT_NONE |
| help |
| Use default target skeleton |
| |
| config BR2_ROOTFS_SKELETON_CUSTOM |
| bool "custom target skeleton" |
| select BR2_PACKAGE_SKELETON_CUSTOM |
| help |
| Use custom target skeleton. |
| |
| endchoice |
| |
| if BR2_ROOTFS_SKELETON_CUSTOM |
| |
| config BR2_ROOTFS_SKELETON_CUSTOM_PATH |
| string "custom target skeleton path" |
| help |
| Path to custom target skeleton. |
| |
| # dummy config so merged /usr workarounds can also be activated for |
| # custom rootfs skeleton |
| config BR2_ROOTFS_MERGED_USR |
| |
| endif |
| |
| if BR2_ROOTFS_SKELETON_DEFAULT |
| |
| config BR2_TARGET_GENERIC_HOSTNAME |
| string "System hostname" |
| default "buildroot" |
| help |
| Select system hostname to be stored in /etc/hostname. |
| |
| Leave empty to not create /etc/hostname, or to keep the |
| one from a custom skeleton. |
| |
| config BR2_TARGET_GENERIC_ISSUE |
| string "System banner" |
| default "Welcome to Buildroot" |
| help |
| Select system banner (/etc/issue) to be displayed at login. |
| |
| Leave empty to not create /etc/issue, or to keep the |
| one from a custom skeleton. |
| |
| endif |
| |
| choice |
| bool "Passwords encoding" |
| default BR2_TARGET_GENERIC_PASSWD_MD5 |
| help |
| Choose the password encoding scheme to use when Buildroot |
| needs to encode a password (eg. the root password, below). |
| |
| Note: this is used at build-time, and *not* at runtime. |
| |
| config BR2_TARGET_GENERIC_PASSWD_MD5 |
| bool "md5" |
| help |
| Use MD5 to encode passwords. |
| |
| The default. Wildly available, and pretty good. |
| Although pretty strong, MD5 is now an old hash function, and |
| suffers from some weaknesses, which makes it susceptible to |
| brute-force attacks. |
| |
| config BR2_TARGET_GENERIC_PASSWD_SHA256 |
| bool "sha-256" |
| help |
| Use SHA256 to encode passwords. |
| |
| Very strong, but not ubiquitous, although available in glibc |
| for some time now. Choose only if you are sure your C library |
| understands SHA256 passwords. |
| |
| config BR2_TARGET_GENERIC_PASSWD_SHA512 |
| bool "sha-512" |
| help |
| Use SHA512 to encode passwords. |
| |
| Extremely strong, but not ubiquitous, although available in glibc |
| for some time now. Choose only if you are sure your C library |
| understands SHA512 passwords. |
| |
| endchoice # Passwd encoding |
| |
| config BR2_TARGET_GENERIC_PASSWD_METHOD |
| string |
| default "md5" if BR2_TARGET_GENERIC_PASSWD_MD5 |
| default "sha-256" if BR2_TARGET_GENERIC_PASSWD_SHA256 |
| default "sha-512" if BR2_TARGET_GENERIC_PASSWD_SHA512 |
| |
| choice |
| prompt "Init system" |
| default BR2_INIT_BUSYBOX |
| |
| config BR2_INIT_BUSYBOX |
| bool "BusyBox" |
| select BR2_PACKAGE_BUSYBOX |
| select BR2_PACKAGE_INITSCRIPTS |
| |
| config BR2_INIT_SYSV |
| bool "systemV" |
| depends on BR2_USE_MMU # sysvinit |
| select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # sysvinit |
| select BR2_PACKAGE_INITSCRIPTS |
| select BR2_PACKAGE_SYSVINIT |
| |
| # In Buildroot, we decided not to support a split-usr when systemd is |
| # used as an init system. This is a design decision, not a systemd |
| # issue. Thus the select is with BR2_INIT_SYSTEMD (below) rather than |
| # with BR2_PACKAGE_SYSTEMD. |
| config BR2_INIT_SYSTEMD |
| bool "systemd" |
| depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS |
| depends on BR2_TOOLCHAIN_USES_GLIBC |
| depends on BR2_USE_WCHAR |
| depends on BR2_TOOLCHAIN_HAS_THREADS |
| depends on BR2_TOOLCHAIN_HAS_SSP |
| depends on BR2_USE_MMU |
| depends on !BR2_STATIC_LIBS |
| depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 |
| select BR2_ROOTFS_MERGED_USR |
| select BR2_PACKAGE_SYSTEMD |
| |
| comment "systemd needs a glibc toolchain, headers >= 3.10" |
| depends on !(BR2_TOOLCHAIN_USES_GLIBC \ |
| && BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10) |
| |
| config BR2_INIT_NONE |
| bool "None" |
| help |
| Buildroot will not install any init system. You will |
| have to provide your own, either with a new package |
| or with a rootfs-overlay. |
| |
| endchoice |
| |
| choice |
| prompt "/dev management" if !BR2_INIT_SYSTEMD |
| default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS |
| |
| config BR2_ROOTFS_DEVICE_CREATION_STATIC |
| bool "Static using device table" |
| |
| config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS |
| bool "Dynamic using devtmpfs only" |
| |
| config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV |
| bool "Dynamic using devtmpfs + mdev" |
| select BR2_PACKAGE_BUSYBOX |
| |
| config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV |
| bool "Dynamic using devtmpfs + eudev" |
| depends on BR2_USE_WCHAR # eudev |
| depends on !BR2_STATIC_LIBS |
| depends on BR2_USE_MMU # eudev |
| select BR2_PACKAGE_EUDEV |
| |
| comment "eudev needs a toolchain w/ wchar, dynamic library" |
| depends on BR2_USE_MMU |
| depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS |
| |
| endchoice |
| |
| comment "/dev management using udev (from systemd)" |
| depends on BR2_INIT_SYSTEMD |
| |
| config BR2_ROOTFS_DEVICE_TABLE |
| string "Path to the permission tables" |
| default "system/device_table.txt" |
| help |
| Specify a space-separated list of permission table locations, |
| that will be passed to the makedevs utility to assign |
| correct owners and permissions on various files in the |
| target filesystem. |
| |
| See package/makedevs/README for details on the usage and |
| syntax of these files. |
| |
| config BR2_ROOTFS_STATIC_DEVICE_TABLE |
| string "Path to the device tables" |
| default "system/device_table_dev.txt" |
| depends on BR2_ROOTFS_DEVICE_CREATION_STATIC |
| help |
| Specify a space-separated list of device table locations, |
| that will be passed to the makedevs utility to create all |
| the special device files under /dev. |
| |
| See package/makedevs/README for details on the usage and |
| syntax of these files. |
| |
| config BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES |
| bool "support extended attributes in device tables" |
| help |
| Support extended attributes handling in device tables |
| |
| if BR2_ROOTFS_SKELETON_DEFAULT |
| |
| config BR2_ROOTFS_MERGED_USR |
| bool "Use symlinks to /usr for /bin, /sbin and /lib" |
| help |
| If you say 'n' here, then /bin, /sbin and /lib and their |
| counterparts in /usr will be separate directories. This |
| is the historical UNIX way. In this case, /usr can be a |
| filesystem on a partition separate from / . |
| |
| If you say 'y' here, then /bin, /sbin and /lib will be symlinks |
| to their counterparts in /usr. In this case, /usr can not be a |
| separate filesystem. |
| |
| config BR2_TARGET_ENABLE_ROOT_LOGIN |
| bool "Enable root login with password" |
| default y |
| select BR2_PACKAGE_HOST_MKPASSWD if BR2_TARGET_GENERIC_ROOT_PASSWD != "" |
| help |
| Allow root to log in with a password. |
| |
| If not enabled, root will not be able to log in with a password. |
| However, if you have an ssh server and you add an ssh key, you |
| can still allow root to log in. Alternatively, you can use sudo |
| to become root. |
| |
| config BR2_TARGET_GENERIC_ROOT_PASSWD |
| string "Root password" |
| default "" |
| depends on BR2_TARGET_ENABLE_ROOT_LOGIN |
| help |
| Set the initial root password. |
| |
| If set to empty (the default), then no root password will be set, |
| and root will need no password to log in. |
| |
| If the password starts with any of $1$, $5$ or $6$, it is considered |
| to be already crypt-encoded with respectively md5, sha256 or sha512. |
| Any other value is taken to be a clear-text value, and is crypt-encoded |
| as per the "Passwords encoding" scheme, above. |
| |
| Note: "$" signs in the hashed password must be doubled. For example, |
| if the hashed password is "$1$longsalt$v35DIIeMo4yUfI23yditq0", |
| then you must enter it as "$$1$$longsalt$$v35DIIeMo4yUfI23yditq0" |
| (this is necessary otherwise make would attempt to interpret the $ |
| as a variable expansion). |
| |
| WARNING! WARNING! |
| The password appears as-is in the .config file, and may appear |
| in the build log! Avoid using a valuable password if either the |
| .config file or the build log may be distributed, or at the |
| very least use a strong cryptographic hash for your password! |
| |
| choice |
| bool "/bin/sh" |
| default BR2_SYSTEM_BIN_SH_DASH if !BR2_PACKAGE_BUSYBOX |
| help |
| Select which shell will provide /bin/sh. |
| |
| # busybox has shells that work on noMMU |
| config BR2_SYSTEM_BIN_SH_BUSYBOX |
| bool "busybox' default shell" |
| depends on BR2_PACKAGE_BUSYBOX |
| |
| config BR2_SYSTEM_BIN_SH_BASH |
| bool "bash" |
| depends on BR2_USE_MMU # bash |
| depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS |
| select BR2_PACKAGE_BASH |
| |
| config BR2_SYSTEM_BIN_SH_DASH |
| bool "dash" |
| depends on BR2_USE_MMU # dash |
| depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS |
| select BR2_PACKAGE_DASH |
| |
| config BR2_SYSTEM_BIN_SH_MKSH |
| bool "mksh" |
| depends on BR2_USE_MMU # mksh |
| depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS |
| select BR2_PACKAGE_MKSH |
| |
| config BR2_SYSTEM_BIN_SH_ZSH |
| bool "zsh" |
| depends on BR2_USE_MMU # zsh |
| depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS |
| select BR2_PACKAGE_ZSH |
| |
| comment "bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS" |
| depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS && BR2_PACKAGE_BUSYBOX |
| |
| config BR2_SYSTEM_BIN_SH_NONE |
| bool "none" |
| |
| endchoice # /bin/sh |
| |
| config BR2_SYSTEM_BIN_SH |
| string |
| default "bash" if BR2_SYSTEM_BIN_SH_BASH |
| default "dash" if BR2_SYSTEM_BIN_SH_DASH |
| default "mksh" if BR2_SYSTEM_BIN_SH_MKSH |
| default "zsh" if BR2_SYSTEM_BIN_SH_ZSH |
| |
| menuconfig BR2_TARGET_GENERIC_GETTY |
| bool "Run a getty (login prompt) after boot" |
| default y |
| |
| if BR2_TARGET_GENERIC_GETTY |
| config BR2_TARGET_GENERIC_GETTY_PORT |
| string "TTY port" |
| default "console" |
| help |
| Specify a port to run a getty on. |
| |
| choice |
| prompt "Baudrate" |
| default BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP |
| help |
| Select a baudrate to use. |
| |
| config BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP |
| bool "keep kernel default" |
| config BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 |
| bool "9600" |
| config BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 |
| bool "19200" |
| config BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 |
| bool "38400" |
| config BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 |
| bool "57600" |
| config BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 |
| bool "115200" |
| endchoice |
| |
| config BR2_TARGET_GENERIC_GETTY_BAUDRATE |
| string |
| default "0" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP |
| default "9600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 |
| default "19200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 |
| default "38400" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 |
| default "57600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 |
| default "115200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 |
| |
| config BR2_TARGET_GENERIC_GETTY_TERM |
| string "TERM environment variable" |
| default "vt100" |
| help |
| Specify a TERM type. |
| |
| config BR2_TARGET_GENERIC_GETTY_OPTIONS |
| string "other options to pass to getty" |
| default "" |
| help |
| Any other flags you want to pass to getty, |
| Refer to getty --help for details. |
| endif |
| |
| config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW |
| bool "remount root filesystem read-write during boot" |
| default y |
| help |
| The root filesystem is typically mounted read-only at boot. |
| By default, buildroot remounts it in read-write mode early during the |
| boot process. |
| Say no here if you would rather like your root filesystem to remain |
| read-only. |
| If unsure, say Y. |
| |
| config BR2_SYSTEM_DHCP |
| string "Network interface to configure through DHCP" |
| default "" |
| depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD |
| help |
| Enter here the name of the network interface (E.G. eth0) to |
| automatically configure through DHCP at bootup. |
| |
| If left empty, no automatic DHCP requests will take place. |
| |
| For more complicated network setups use an overlay to overwrite |
| /etc/network/interfaces or add a networkd configuration file. |
| |
| comment "automatic network configuration via DHCP needs ifupdown or busybox or networkd" |
| depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD) |
| |
| endif # BR2_ROOTFS_SKELETON_DEFAULT |
| |
| config BR2_ENABLE_LOCALE_PURGE |
| bool "Purge unwanted locales" |
| default y |
| help |
| Explicitly specify what locales to install on target. If N |
| then all locales supported by packages are installed. |
| |
| config BR2_ENABLE_LOCALE_WHITELIST |
| string "Locales to keep" |
| default "C en_US" |
| depends on BR2_ENABLE_LOCALE_PURGE |
| help |
| Whitespace seperated list of locales to allow on target. |
| Locales not listed here will be removed from the target. |
| See 'locale -a' on your host for a list of locales available |
| on your build host, or have a look in /usr/share/locale in |
| the target file system for available locales. |
| |
| Notice that listing a locale here doesn't guarantee that it |
| will be available on the target - That purely depends on the |
| support for that locale in the selected packages. |
| |
| config BR2_GENERATE_LOCALE |
| string "Generate locale data" |
| default "" |
| depends on \ |
| (BR2_TOOLCHAIN_BUILDROOT_UCLIBC && BR2_ENABLE_LOCALE) || \ |
| BR2_TOOLCHAIN_USES_GLIBC |
| help |
| Generate support for a list of locales. Locales can be |
| specified with or without encoding, when no encoding is |
| specified, UTF-8 is assumed. Examples of locales: en_US, |
| fr_FR.UTF-8. |
| |
| config BR2_SYSTEM_ENABLE_NLS |
| bool "Enable Native Language Support (NLS)" |
| depends on BR2_USE_WCHAR |
| # - glibc has built-in NLS support, but anyway doesn't |
| # support static linking |
| # - musl and uclibc support static linking, but they don't |
| # have built-in NLS support, which is provided by the |
| # libintl library from gettext. The fact that it is a |
| # separate library causes too many problems for static |
| # linking. |
| depends on !BR2_STATIC_LIBS |
| select BR2_PACKAGE_GETTEXT if !BR2_TOOLCHAIN_HAS_FULL_GETTEXT |
| help |
| This option will enable Native Language Support, which will |
| allow software packages to support translations. |
| |
| comment "NLS support needs a toolchain w/ wchar, dynamic library" |
| depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS |
| |
| config BR2_TARGET_TZ_INFO |
| bool "Install timezone info" |
| select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_GLIBC |
| select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_MUSL |
| select BR2_PACKAGE_TZ if BR2_TOOLCHAIN_USES_UCLIBC |
| help |
| Say 'y' here to install timezone info. |
| |
| if BR2_TARGET_TZ_INFO |
| |
| config BR2_TARGET_TZ_ZONELIST |
| string "timezone list" |
| default "default" |
| help |
| Space-separated list of time zones to compile. |
| |
| The value "default" includes all commonly used time zones. Note |
| that this set consumes around 5.5M for glibc and 2.1M for uClibc. |
| |
| The full list is the list of files in the time zone database source, |
| not including the build and .tab files. |
| |
| config BR2_TARGET_LOCALTIME |
| string "default local time" |
| default "Etc/UTC" |
| help |
| The time zone to install as the default local time, expressed as a |
| tzdata location, such as: |
| Etc/UTC (the default) |
| GMT |
| Europe/Paris |
| America/New_York |
| Pacific/Wallis |
| ... |
| |
| endif # BR2_TARGET_TZ_INFO |
| |
| config BR2_ROOTFS_USERS_TABLES |
| string "Path to the users tables" |
| help |
| Specify a space-separated list of users table locations, |
| that will be passed to the mkusers utility to create |
| users on the system, with home directory, password, etc. |
| |
| See manual for details on the usage and syntax of these files. |
| |
| config BR2_ROOTFS_OVERLAY |
| string "Root filesystem overlay directories" |
| default "" |
| help |
| Specify a list of directories that are copied over the target |
| root filesystem after the build has finished and before it is |
| packed into the selected filesystem images. |
| |
| They are copied as-is into the rootfs, excluding files ending with |
| ~ and .git, .svn and .hg directories. |
| |
| config BR2_ROOTFS_POST_BUILD_SCRIPT |
| string "Custom scripts to run before creating filesystem images" |
| default "" |
| help |
| Specify a space-separated list of scripts to be run after the build |
| has finished and before Buildroot starts packing the files into |
| selected filesystem images. |
| |
| This gives users the opportunity to do board-specific cleanups, |
| add-ons and the like, so the generated files can be used directly |
| without further processing. |
| |
| These scripts are called with the target directory name as first |
| argument. Make sure the exit code of those scripts are 0, otherwise |
| make will stop after calling them. |
| |
| config BR2_ROOTFS_POST_FAKEROOT_SCRIPT |
| string "Custom scripts to run inside the fakeroot environment" |
| default "" |
| help |
| Specify a space-separated list of scripts to be run at the end |
| of the fakeroot script right before the image(s) are actually |
| generated. |
| |
| This gives users the opportunity to do customisations of the |
| content of the rootfs, which would otherwise require root |
| rights. |
| |
| These scripts are called with the target directory name as |
| first argument. The build will fail on the first scripts that |
| exits with a non-zero exit code. |
| |
| Note that Buildroot already provides mechanisms to customise |
| the content of the rootfs: |
| |
| - BR2_ROOTFS_STATIC_DEVICE_TABLE |
| to create arbitrary entries statically in /dev |
| |
| - BR2_ROOTFS_DEVICE_TABLE |
| to set arbitrary permissions as well as extended attributes |
| (such as capabilities) on files and directories, |
| |
| - BR2_ROOTFS_USERS_TABLES: |
| to create arbitrary users and their home directories |
| |
| It is highly recommended to use those mechanisms if possible, |
| rather than using custom fakeroot scripts. |
| |
| config BR2_ROOTFS_POST_IMAGE_SCRIPT |
| string "Custom scripts to run after creating filesystem images" |
| default "" |
| help |
| Specify a space-separated list of scripts to be run after |
| the build has finished and after Buildroot has packed the |
| files into selected filesystem images. |
| |
| This can for example be used to call a tool building a |
| firmware image from different images generated by Buildroot, |
| or automatically extract the tarball root filesystem image |
| into some location exported by NFS, or any other custom |
| action. |
| |
| These scripts are called with the images directory name as |
| first argument. The script is executed from the main Buildroot |
| source directory as the current directory. |
| |
| config BR2_ROOTFS_POST_SCRIPT_ARGS |
| string "Extra arguments passed to custom scripts" |
| depends on BR2_ROOTFS_POST_BUILD_SCRIPT != "" \ |
| || BR2_ROOTFS_POST_FAKEROOT_SCRIPT != "" \ |
| || BR2_ROOTFS_POST_IMAGE_SCRIPT != "" |
| help |
| Pass these additional arguments to each post-build or post-image |
| scripts. |
| |
| Note that all the post-build and post-image scripts will be passed |
| the same set of arguments, you can not pass different arguments to |
| each script. |
| |
| Note also, as stated in their respective help text, that the first |
| argument to each post-build or post-image script is the target |
| directory / images directory. The arguments in this option will be |
| passed *after* those. |
| |
| endmenu |