398 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			398 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# For a description of the syntax of this configuration file,
 | 
						|
# see scripts/kbuild/config-language.txt.
 | 
						|
#
 | 
						|
 | 
						|
menu "Busybox Library Tuning"
 | 
						|
 | 
						|
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
 | 
						|
	range 5 32
 | 
						|
	help
 | 
						|
	  Minimum allowable password length.
 | 
						|
 | 
						|
config MD5_SMALL
 | 
						|
	int "MD5: Trade bytes for speed (0:fast, 3:slow)"
 | 
						|
	default 1  # all "fast or small" options default to small
 | 
						|
	range 0 3
 | 
						|
	help
 | 
						|
	  Trade binary size versus speed for the md5sum algorithm.
 | 
						|
	  Approximate values running uClibc and hashing
 | 
						|
	  linux-2.4.4.tar.bz2 were:
 | 
						|
	                    user times (sec)  text size (386)
 | 
						|
	  0 (fastest)         1.1                6144
 | 
						|
	  1                   1.4                5392
 | 
						|
	  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 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"
 | 
						|
	default n
 | 
						|
	help
 | 
						|
	  Enable support for network names in /etc/networks. This is
 | 
						|
	  a rarely used feature which allows you to use names
 | 
						|
	  instead of IP/mask pairs in route command.
 | 
						|
 | 
						|
config FEATURE_USE_TERMIOS
 | 
						|
	bool "Use termios to manipulate the screen"
 | 
						|
	default y
 | 
						|
	depends on MORE || TOP || POWERTOP
 | 
						|
	help
 | 
						|
	  This option allows utilities such as 'more' and 'top' to determine
 | 
						|
	  the size of the screen. If you leave this disabled, your utilities
 | 
						|
	  that display things on the screen will be especially primitive and
 | 
						|
	  will be unable to determine the current screen size, and will be
 | 
						|
	  unable to move the cursor.
 | 
						|
 | 
						|
config FEATURE_EDITING
 | 
						|
	bool "Command line editing"
 | 
						|
	default y
 | 
						|
	help
 | 
						|
	  Enable line editing (mainly for shell command line).
 | 
						|
 | 
						|
config FEATURE_EDITING_MAX_LEN
 | 
						|
	int "Maximum length of input"
 | 
						|
	range 128 8192
 | 
						|
	default 1024
 | 
						|
	depends on FEATURE_EDITING
 | 
						|
	help
 | 
						|
	  Line editing code uses on-stack buffers for storage.
 | 
						|
	  You may want to decrease this parameter if your target machine
 | 
						|
	  benefits from smaller stack usage.
 | 
						|
 | 
						|
config FEATURE_EDITING_VI
 | 
						|
	bool "vi-style line editing commands"
 | 
						|
	default n
 | 
						|
	depends on FEATURE_EDITING
 | 
						|
	help
 | 
						|
	  Enable vi-style line editing. In shells, this mode can be
 | 
						|
	  turned on and off with "set -o vi" and "set +o vi".
 | 
						|
 | 
						|
config FEATURE_EDITING_HISTORY
 | 
						|
	int "History size"
 | 
						|
	# 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 (0 - disable).
 | 
						|
 | 
						|
config FEATURE_EDITING_SAVEHISTORY
 | 
						|
	bool "History saving"
 | 
						|
	default y
 | 
						|
	depends on FEATURE_EDITING
 | 
						|
	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
 | 
						|
	depends on FEATURE_TAB_COMPLETION
 | 
						|
	help
 | 
						|
	  Enable username completion.
 | 
						|
 | 
						|
config FEATURE_EDITING_FANCY_PROMPT
 | 
						|
	bool "Fancy shell prompts"
 | 
						|
	default y
 | 
						|
	depends on FEATURE_EDITING
 | 
						|
	help
 | 
						|
	  Setting this option allows for prompts to use things like \w and
 | 
						|
	  \$ and escape codes.
 | 
						|
 | 
						|
config FEATURE_EDITING_ASK_TERMINAL
 | 
						|
	bool "Query cursor position from terminal"
 | 
						|
	default n
 | 
						|
	depends on FEATURE_EDITING
 | 
						|
	help
 | 
						|
	  Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
 | 
						|
	  current cursor position. This information is used to make line
 | 
						|
	  editing more robust in some cases.
 | 
						|
	  If you are not sure whether your terminals respond to this code
 | 
						|
	  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
 | 
						|
	help
 | 
						|
	  With this option, "cp file symlink" will delete symlink
 | 
						|
	  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 do that, use "cat file >device")
 | 
						|
 | 
						|
config FEATURE_VERBOSE_CP_MESSAGE
 | 
						|
	bool "Give more precise messages when copy fails (cp, mv etc)"
 | 
						|
	default n
 | 
						|
	help
 | 
						|
	  Error messages with this feature enabled:
 | 
						|
	    $ cp file /does_not_exist/file
 | 
						|
	    cp: cannot create '/does_not_exist/file': Path does not exist
 | 
						|
	    $ cp file /vmlinuz/file
 | 
						|
	    cp: cannot stat '/vmlinuz/file': Path has non-directory component
 | 
						|
	  If this feature is not enabled, they will be, respectively:
 | 
						|
	    cp: cannot create '/does_not_exist/file': No such file or directory
 | 
						|
	    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, 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 y
 | 
						|
	select PLATFORM_LINUX
 | 
						|
	help
 | 
						|
	  Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
 | 
						|
	  time intervals (time, ping, traceroute etc need this).
 | 
						|
	  Probably requires Linux 2.6+. If not selected, gettimeofday
 | 
						|
	  will be used instead (which gives wrong results if date/time
 | 
						|
	  is reset).
 | 
						|
 | 
						|
config IOCTL_HEX2STR_ERROR
 | 
						|
	bool "Use ioctl names rather than hex values in error messages"
 | 
						|
	default y
 | 
						|
	help
 | 
						|
	  Use ioctl names rather than hex values in error messages
 | 
						|
	  (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
 | 
						|
	  saves about 1400 bytes.
 | 
						|
 | 
						|
config FEATURE_HWIB
 | 
						|
	bool "Support infiniband HW"
 | 
						|
	default y
 | 
						|
	help
 | 
						|
	  Support for printing infiniband addresses in
 | 
						|
	  network applets.
 | 
						|
 | 
						|
endmenu
 |