INSERT
+choice
+ prompt "Buffer allocation policy"
+ default FEATURE_BUFFERS_USE_MALLOC
+ help
+ There are 3 ways BusyBox can handle buffer allocations:
+ - Use malloc. This costs code size for the call to xmalloc.
+ - Put them on stack. For some very small machines with limited stack
+ space, this can be deadly. For most folks, this works just fine.
+ - Put them in BSS. This works beautifully for computers with a real
+ MMU (and OS support), but wastes runtime RAM for uCLinux. This
+ behavior was the only one available for BusyBox versions 0.48 and
+ earlier.
+
+config FEATURE_BUFFERS_USE_MALLOC
+ bool "Allocate with Malloc"
+
+config FEATURE_BUFFERS_GO_ON_STACK
+ bool "Allocate on the Stack"
+
+config FEATURE_BUFFERS_GO_IN_BSS
+ bool "Allocate in the .bss section"
+
+endchoice
+
config PASSWORD_MINLEN
int "Minimum password length"
default 6
help
Minimum allowable password length.
-config MD5_SIZE_VS_SPEED
+config MD5_SMALL
int "MD5: Trade bytes for speed (0:fast, 3:slow)"
- default 2
+ default 1 # all "fast or small" options default to small
range 0 3
help
Trade binary size versus speed for the md5sum algorithm.
2 3.0 5088
3 (smallest) 5.1 4912
+config SHA3_SMALL
+ int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
+ default 1 # all "fast or small" options default to small
+ range 0 1
+ help
+ Trade binary size versus speed for the sha3sum algorithm.
+ SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
+ 64-bit x86: +270 bytes of code, 45% faster
+ 32-bit x86: +450 bytes of code, 75% faster
+
config FEATURE_FAST_TOP
bool "Faster /proc scanning code (+100 bytes)"
- default y
+ default n # all "fast or small" options default to small
help
This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
but code size is slightly bigger.
config FEATURE_ETC_NETWORKS
- bool "Support for /etc/networks"
+ bool "Support /etc/networks"
default n
help
Enable support for network names in /etc/networks. This is
config FEATURE_EDITING_HISTORY
int "History size"
- range 0 99999
+ # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
+ range 0 9999
default 255
depends on FEATURE_EDITING
help
- Specify command history size.
+ Specify command history size (0 - disable).
config FEATURE_EDITING_SAVEHISTORY
bool "History saving"
help
Enable history saving in shells.
+config FEATURE_EDITING_SAVE_ON_EXIT
+ bool "Save history on shell exit, not after every command"
+ default n
+ depends on FEATURE_EDITING_SAVEHISTORY
+ help
+ Save history on shell exit, not after every command.
+
+config FEATURE_REVERSE_SEARCH
+ bool "Reverse history search"
+ default y
+ depends on FEATURE_EDITING
+ help
+ Enable readline-like Ctrl-R combination for reverse history search.
+ Increases code by about 0.5k.
+
config FEATURE_TAB_COMPLETION
bool "Tab completion"
default y
depends on FEATURE_EDITING
- help
- Enable tab completion.
config FEATURE_USERNAME_COMPLETION
bool "Username completion"
- default n
+ default y
depends on FEATURE_TAB_COMPLETION
- help
- Enable username completion.
config FEATURE_EDITING_FANCY_PROMPT
bool "Fancy shell prompts"
correctly, or want to save on code size (about 400 bytes),
then do not turn this option on.
+config LOCALE_SUPPORT
+ bool "Enable locale support (system needs locale for this to work)"
+ default n
+ help
+ Enable this if your system has locale support and you would like
+ busybox to support locale settings.
+
+config UNICODE_SUPPORT
+ bool "Support Unicode"
+ default y
+ help
+ This makes various applets aware that one byte is not
+ one character on screen.
+
+ Busybox aims to eventually work correctly with Unicode displays.
+ Any older encodings are not guaranteed to work.
+ Probably by the time when busybox will be fully Unicode-clean,
+ other encodings will be mainly of historic interest.
+
+config UNICODE_USING_LOCALE
+ bool "Use libc routines for Unicode (else uses internal ones)"
+ default n
+ depends on UNICODE_SUPPORT && LOCALE_SUPPORT
+ help
+ With this option on, Unicode support is implemented using libc
+ routines. Otherwise, internal implementation is used.
+ Internal implementation is smaller.
+
+config FEATURE_CHECK_UNICODE_IN_ENV
+ bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
+ default n
+ depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
+ help
+ With this option on, Unicode support is activated
+ only if locale-related variables have the value of the form
+ "xxxx.utf8"
+
+ Otherwise, Unicode support will be always enabled and active.
+
+config SUBST_WCHAR
+ int "Character code to substitute unprintable characters with"
+ depends on UNICODE_SUPPORT
+ default 63
+ help
+ Typical values are 63 for '?' (works with any output device),
+ 30 for ASCII substitute control code,
+ 65533 (0xfffd) for Unicode replacement character.
+
+config LAST_SUPPORTED_WCHAR
+ int "Range of supported Unicode characters"
+ depends on UNICODE_SUPPORT
+ default 767
+ help
+ Any character with Unicode value bigger than this is assumed
+ to be non-printable on output device. Many applets replace
+ such characters with substitution character.
+
+ The idea is that many valid printable Unicode chars
+ nevertheless are not displayed correctly. Think about
+ combining charachers, double-wide hieroglyphs, obscure
+ characters in dozens of ancient scripts...
+ Many terminals, terminal emulators, xterms etc will fail
+ to handle them correctly. Choose the smallest value
+ which suits your needs.
+
+ Typical values are:
+ 126 - ASCII only
+ 767 (0x2ff) - there are no combining chars in [0..767] range
+ (the range includes Latin 1, Latin Ext. A and B),
+ code is ~700 bytes smaller for this case.
+ 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+ code is ~300 bytes smaller for this case.
+ 12799 (0x31ff) - nearly all non-ideographic characters are
+ available in [0..12799] range, including
+ East Asian scripts like katakana, hiragana, hangul,
+ bopomofo...
+ 0 - off, any valid printable Unicode character will be printed.
+
+config UNICODE_COMBINING_WCHARS
+ bool "Allow zero-width Unicode characters on output"
+ default n
+ depends on UNICODE_SUPPORT
+ help
+ With this option off, any Unicode char with width of 0
+ is substituted on output.
+
+config UNICODE_WIDE_WCHARS
+ bool "Allow wide Unicode characters on output"
+ default n
+ depends on UNICODE_SUPPORT
+ help
+ With this option off, any Unicode char with width > 1
+ is substituted on output.
+
+config UNICODE_BIDI_SUPPORT
+ bool "Bidirectional character-aware line input"
+ default n
+ depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
+ help
+ With this option on, right-to-left Unicode characters
+ are treated differently on input (e.g. cursor movement).
+
+config UNICODE_NEUTRAL_TABLE
+ bool "In bidi input, support non-ASCII neutral chars too"
+ default n
+ depends on UNICODE_BIDI_SUPPORT
+ help
+ In most cases it's enough to treat only ASCII non-letters
+ (i.e. punctuation, numbers and space) as characters
+ with neutral directionality.
+ With this option on, more extensive (and bigger) table
+ of neutral chars will be used.
+
+config UNICODE_PRESERVE_BROKEN
+ bool "Make it possible to enter sequences of chars which are not Unicode"
+ default n
+ depends on UNICODE_SUPPORT
+ help
+ With this option on, on line-editing input (such as used by shells)
+ invalid UTF-8 bytes are not substituted with the selected
+ substitution character.
+ For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+ at shell prompt will list file named 0xff (single char name
+ with char value 255), not file named '?'.
+
config FEATURE_NON_POSIX_CP
bool "Non-POSIX, but safer, copying to special nodes"
default y
and create a regular file. This does not conform to POSIX,
but prevents a symlink attack.
Similarly, "cp file device" will not send file's data
- to the device.
+ to the device. (To do that, use "cat file >device")
config FEATURE_VERBOSE_CP_MESSAGE
bool "Give more precise messages when copy fails (cp, mv etc)"
cp: cannot stat '/vmlinuz/file': Not a directory
This will cost you ~60 bytes.
+config FEATURE_USE_SENDFILE
+ bool "Use sendfile system call"
+ default y
+ select PLATFORM_LINUX
+ help
+ When enabled, busybox will use the kernel sendfile() function
+ instead of read/write loops to copy data between file descriptors
+ (for example, cp command does this a lot).
+ If sendfile() doesn't work, copying code falls back to read/write
+ loop. sendfile() was originally implemented for faster I/O
+ from files to sockets, but since Linux 2.6.33 it was extended
+ to work for many more file types.
+
config FEATURE_COPYBUF_KB
int "Copy buffer size, in kilobytes"
range 1 1024
default 4
help
- Size of buffer used by cp, mv, install etc.
+ Size of buffer used by cp, mv, install, wget etc.
Buffers which are 4 kb or less will be allocated on stack.
Bigger buffers will be allocated with mmap, with fallback to 4 kb
stack buffer if mmap fails.
+config FEATURE_SKIP_ROOTFS
+ bool "Skip rootfs in mount table"
+ default y
+ help
+ Ignore rootfs entry in mount table.
+
+ In Linux, kernel has a special filesystem, rootfs, which is initially
+ mounted on /. It contains initramfs data, if kernel is configured
+ to have one. Usually, another file system is mounted over / early
+ in boot process, and therefore most tools which manipulate
+ mount table, such as df, will skip rootfs entry.
+
+ However, some systems do not mount anything on /.
+ If you need to configure busybox for one of these systems,
+ you may find it useful to turn this option off to make df show
+ initramfs statistics.
+
+ Otherwise, choose Y.
+
config MONOTONIC_SYSCALL
bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
- default n
- depends on PLATFORM_LINUX
+ default y
+ select PLATFORM_LINUX
help
Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
time intervals (time, ping, traceroute etc need this).