1# 2# For a description of the syntax of this configuration file, 3# see docs/Kconfig-language.txt. 4# 5 6comment "Library Tuning" 7 8INSERT 9 10choice 11 prompt "Buffer allocation policy" 12 default FEATURE_BUFFERS_USE_MALLOC 13 help 14 There are 3 ways busybox can handle buffer allocations: 15 - Use malloc. This costs code size for the call to xmalloc. 16 - Put them on stack. For some very small machines with limited stack 17 space, this can be deadly. For most folks, this works just fine. 18 - Put them in BSS. This works beautifully for computers with a real 19 MMU (and OS support), but wastes runtime RAM for uCLinux. This 20 behavior was the only one available for versions 0.48 and earlier. 21 22config FEATURE_BUFFERS_USE_MALLOC 23 bool "Allocate with Malloc" 24 25config FEATURE_BUFFERS_GO_ON_STACK 26 bool "Allocate on the Stack" 27 28config FEATURE_BUFFERS_GO_IN_BSS 29 bool "Allocate in the .bss section" 30 31endchoice 32 33config PASSWORD_MINLEN 34 int "Minimum password length" 35 default 6 36 range 5 32 37 help 38 Minimum allowable password length. 39 40config MD5_SMALL 41 int "MD5: Trade bytes for speed (0:fast, 3:slow)" 42 default 1 # all "fast or small" options default to small 43 range 0 3 44 help 45 Trade binary size versus speed for the md5sum algorithm. 46 Approximate values running uClibc and hashing 47 linux-2.4.4.tar.bz2 were: 48 value user times (sec) text size (386) 49 0 (fastest) 1.1 6144 50 1 1.4 5392 51 2 3.0 5088 52 3 (smallest) 5.1 4912 53 54config SHA3_SMALL 55 int "SHA3: Trade bytes for speed (0:fast, 1:slow)" 56 default 1 # all "fast or small" options default to small 57 range 0 1 58 help 59 Trade binary size versus speed for the sha3sum algorithm. 60 SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate): 61 64-bit x86: +270 bytes of code, 45% faster 62 32-bit x86: +450 bytes of code, 75% faster 63 64config FEATURE_FAST_TOP 65 bool "Faster /proc scanning code (+100 bytes)" 66 default n # all "fast or small" options default to small 67 help 68 This option makes top and ps ~20% faster (or 20% less CPU hungry), 69 but code size is slightly bigger. 70 71config FEATURE_ETC_NETWORKS 72 bool "Support /etc/networks" 73 default n 74 help 75 Enable support for network names in /etc/networks. This is 76 a rarely used feature which allows you to use names 77 instead of IP/mask pairs in route command. 78 79config FEATURE_ETC_SERVICES 80 bool "Consult /etc/services even for well-known ports" 81 default n 82 help 83 Look up e.g. "telnet" and "http" in /etc/services file 84 instead of assuming ports 23 and 80. 85 This is almost never necessary (everybody uses standard ports), 86 and it makes sense to avoid reading this file. 87 If you disable this option, in the cases where port is explicitly 88 specified as a service name (e.g. "telnet HOST PORTNAME"), 89 it will still be looked up in /etc/services. 90 91config FEATURE_EDITING 92 bool "Command line editing" 93 default y 94 help 95 Enable line editing (mainly for shell command line). 96 97config FEATURE_EDITING_MAX_LEN 98 int "Maximum length of input" 99 range 128 8192 100 default 1024 101 depends on FEATURE_EDITING 102 help 103 Line editing code uses on-stack buffers for storage. 104 You may want to decrease this parameter if your target machine 105 benefits from smaller stack usage. 106 107config FEATURE_EDITING_VI 108 bool "vi-style line editing commands" 109 default n 110 depends on FEATURE_EDITING 111 help 112 Enable vi-style line editing. In shells, this mode can be 113 turned on and off with "set -o vi" and "set +o vi". 114 115config FEATURE_EDITING_HISTORY 116 int "History size" 117 # Don't allow way too big values here, code uses fixed "char *history[N]" struct member 118 range 0 9999 119 default 255 120 depends on FEATURE_EDITING 121 help 122 Specify command history size (0 - disable). 123 124config FEATURE_EDITING_SAVEHISTORY 125 bool "History saving" 126 default y 127 depends on FEATURE_EDITING 128 help 129 Enable history saving in shells. 130 131config FEATURE_EDITING_SAVE_ON_EXIT 132 bool "Save history on shell exit, not after every command" 133 default n 134 depends on FEATURE_EDITING_SAVEHISTORY 135 help 136 Save history on shell exit, not after every command. 137 138config FEATURE_REVERSE_SEARCH 139 bool "Reverse history search" 140 default y 141 depends on FEATURE_EDITING 142 help 143 Enable readline-like Ctrl-R combination for reverse history search. 144 Increases code by about 0.5k. 145 146config FEATURE_TAB_COMPLETION 147 bool "Tab completion" 148 default y 149 depends on FEATURE_EDITING 150 151config FEATURE_USERNAME_COMPLETION 152 bool "Username completion" 153 default y 154 depends on FEATURE_TAB_COMPLETION 155 156config FEATURE_EDITING_FANCY_PROMPT 157 bool "Fancy shell prompts" 158 default y 159 depends on FEATURE_EDITING 160 help 161 Setting this option allows for prompts to use things like \w and 162 \$ and escape codes. 163 164config FEATURE_EDITING_WINCH 165 bool "Enable automatic tracking of window size changes" 166 default y 167 depends on FEATURE_EDITING 168 169config FEATURE_EDITING_ASK_TERMINAL 170 bool "Query cursor position from terminal" 171 default n 172 depends on FEATURE_EDITING 173 help 174 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with 175 current cursor position. This information is used to make line 176 editing more robust in some cases. 177 If you are not sure whether your terminals respond to this code 178 correctly, or want to save on code size (about 400 bytes), 179 then do not turn this option on. 180 181config LOCALE_SUPPORT 182 bool "Enable locale support (system needs locale for this to work)" 183 default n 184 help 185 Enable this if your system has locale support and you would like 186 busybox to support locale settings. 187 188config UNICODE_SUPPORT 189 bool "Support Unicode" 190 default y 191 help 192 This makes various applets aware that one byte is not 193 one character on screen. 194 195 Busybox aims to eventually work correctly with Unicode displays. 196 Any older encodings are not guaranteed to work. 197 Probably by the time when busybox will be fully Unicode-clean, 198 other encodings will be mainly of historic interest. 199 200config UNICODE_USING_LOCALE 201 bool "Use libc routines for Unicode (else uses internal ones)" 202 default n 203 depends on UNICODE_SUPPORT && LOCALE_SUPPORT 204 help 205 With this option on, Unicode support is implemented using libc 206 routines. Otherwise, internal implementation is used. 207 Internal implementation is smaller. 208 209config FEATURE_CHECK_UNICODE_IN_ENV 210 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables" 211 default n 212 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE 213 help 214 With this option on, Unicode support is activated 215 only if locale-related variables have the value of the form 216 "xxxx.utf8" 217 218 Otherwise, Unicode support will be always enabled and active. 219 220config SUBST_WCHAR 221 int "Character code to substitute unprintable characters with" 222 depends on UNICODE_SUPPORT 223 default 63 224 help 225 Typical values are 63 for '?' (works with any output device), 226 30 for ASCII substitute control code, 227 65533 (0xfffd) for Unicode replacement character. 228 229config LAST_SUPPORTED_WCHAR 230 int "Range of supported Unicode characters" 231 depends on UNICODE_SUPPORT 232 default 767 233 help 234 Any character with Unicode value bigger than this is assumed 235 to be non-printable on output device. Many applets replace 236 such characters with substitution character. 237 238 The idea is that many valid printable Unicode chars 239 nevertheless are not displayed correctly. Think about 240 combining charachers, double-wide hieroglyphs, obscure 241 characters in dozens of ancient scripts... 242 Many terminals, terminal emulators, xterms etc will fail 243 to handle them correctly. Choose the smallest value 244 which suits your needs. 245 246 Typical values are: 247 126 - ASCII only 248 767 (0x2ff) - there are no combining chars in [0..767] range 249 (the range includes Latin 1, Latin Ext. A and B), 250 code is ~700 bytes smaller for this case. 251 4351 (0x10ff) - there are no double-wide chars in [0..4351] range, 252 code is ~300 bytes smaller for this case. 253 12799 (0x31ff) - nearly all non-ideographic characters are 254 available in [0..12799] range, including 255 East Asian scripts like katakana, hiragana, hangul, 256 bopomofo... 257 0 - off, any valid printable Unicode character will be printed. 258 259config UNICODE_COMBINING_WCHARS 260 bool "Allow zero-width Unicode characters on output" 261 default n 262 depends on UNICODE_SUPPORT 263 help 264 With this option off, any Unicode char with width of 0 265 is substituted on output. 266 267config UNICODE_WIDE_WCHARS 268 bool "Allow wide Unicode characters on output" 269 default n 270 depends on UNICODE_SUPPORT 271 help 272 With this option off, any Unicode char with width > 1 273 is substituted on output. 274 275config UNICODE_BIDI_SUPPORT 276 bool "Bidirectional character-aware line input" 277 default n 278 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE 279 help 280 With this option on, right-to-left Unicode characters 281 are treated differently on input (e.g. cursor movement). 282 283config UNICODE_NEUTRAL_TABLE 284 bool "In bidi input, support non-ASCII neutral chars too" 285 default n 286 depends on UNICODE_BIDI_SUPPORT 287 help 288 In most cases it's enough to treat only ASCII non-letters 289 (i.e. punctuation, numbers and space) as characters 290 with neutral directionality. 291 With this option on, more extensive (and bigger) table 292 of neutral chars will be used. 293 294config UNICODE_PRESERVE_BROKEN 295 bool "Make it possible to enter sequences of chars which are not Unicode" 296 default n 297 depends on UNICODE_SUPPORT 298 help 299 With this option on, on line-editing input (such as used by shells) 300 invalid UTF-8 bytes are not substituted with the selected 301 substitution character. 302 For example, this means that entering 'l', 's', ' ', 0xff, [Enter] 303 at shell prompt will list file named 0xff (single char name 304 with char value 255), not file named '?'. 305 306config FEATURE_NON_POSIX_CP 307 bool "Non-POSIX, but safer, copying to special nodes" 308 default y 309 help 310 With this option, "cp file symlink" will delete symlink 311 and create a regular file. This does not conform to POSIX, 312 but prevents a symlink attack. 313 Similarly, "cp file device" will not send file's data 314 to the device. (To do that, use "cat file >device") 315 316config FEATURE_VERBOSE_CP_MESSAGE 317 bool "Give more precise messages when copy fails (cp, mv etc)" 318 default n 319 help 320 Error messages with this feature enabled: 321 322 $ cp file /does_not_exist/file 323 cp: cannot create '/does_not_exist/file': Path does not exist 324 $ cp file /vmlinuz/file 325 cp: cannot stat '/vmlinuz/file': Path has non-directory component 326 327 If this feature is not enabled, they will be, respectively: 328 329 cp: cannot create '/does_not_exist/file': No such file or directory 330 cp: cannot stat '/vmlinuz/file': Not a directory 331 332 This will cost you ~60 bytes. 333 334config FEATURE_USE_SENDFILE 335 bool "Use sendfile system call" 336 default y 337 help 338 When enabled, busybox will use the kernel sendfile() function 339 instead of read/write loops to copy data between file descriptors 340 (for example, cp command does this a lot). 341 If sendfile() doesn't work, copying code falls back to read/write 342 loop. sendfile() was originally implemented for faster I/O 343 from files to sockets, but since Linux 2.6.33 it was extended 344 to work for many more file types. 345 346config FEATURE_COPYBUF_KB 347 int "Copy buffer size, in kilobytes" 348 range 1 1024 349 default 4 350 help 351 Size of buffer used by cp, mv, install, wget etc. 352 Buffers which are 4 kb or less will be allocated on stack. 353 Bigger buffers will be allocated with mmap, with fallback to 4 kb 354 stack buffer if mmap fails. 355 356config FEATURE_SKIP_ROOTFS 357 bool "Skip rootfs in mount table" 358 default y 359 help 360 Ignore rootfs entry in mount table. 361 362 In Linux, kernel has a special filesystem, rootfs, which is initially 363 mounted on /. It contains initramfs data, if kernel is configured 364 to have one. Usually, another file system is mounted over / early 365 in boot process, and therefore most tools which manipulate 366 mount table, such as df, will skip rootfs entry. 367 368 However, some systems do not mount anything on /. 369 If you need to configure busybox for one of these systems, 370 you may find it useful to turn this option off to make df show 371 initramfs statistics. 372 373 Otherwise, choose Y. 374 375config MONOTONIC_SYSCALL 376 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall" 377 default y 378 help 379 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring 380 time intervals (time, ping, traceroute etc need this). 381 Probably requires Linux 2.6+. If not selected, gettimeofday 382 will be used instead (which gives wrong results if date/time 383 is reset). 384 385config IOCTL_HEX2STR_ERROR 386 bool "Use ioctl names rather than hex values in error messages" 387 default y 388 help 389 Use ioctl names rather than hex values in error messages 390 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this 391 saves about 1400 bytes. 392 393config FEATURE_HWIB 394 bool "Support infiniband HW" 395 default y 396 help 397 Support for printing infiniband addresses in network applets. 398