blob: 24b31fad9ca2eb05ee4bdacd121ae12f28241a0f [file] [log] [blame]
Rob Landley5cf7c2d2006-02-21 06:44:43 +00001#
2# For a description of the syntax of this configuration file,
Kartik Agaram43b17b12018-05-31 22:15:55 -07003# see docs/Kconfig-language.txt.
Rob Landley5cf7c2d2006-02-21 06:44:43 +00004#
5
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +02006comment "Library Tuning"
Rob Landley5cf7c2d2006-02-21 06:44:43 +00007
Denys Vlasenkod70e0e92010-06-08 12:15:11 +02008INSERT
9
Denys Vlasenko24860fa2016-11-24 22:30:52 +010010choice
11 prompt "Buffer allocation policy"
12 default FEATURE_BUFFERS_USE_MALLOC
13 help
Denys Vlasenko86d5bf42017-07-27 02:59:13 +020014 There are 3 ways busybox can handle buffer allocations:
Denys Vlasenko72089cf2017-07-21 09:50:55 +020015 - 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
Denys Vlasenko86d5bf42017-07-27 02:59:13 +020020 behavior was the only one available for versions 0.48 and earlier.
Denys Vlasenko24860fa2016-11-24 22:30:52 +010021
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
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000033config PASSWORD_MINLEN
"Robert P. J. Day"087b9d62006-07-02 18:35:39 +000034 int "Minimum password length"
35 default 6
36 range 5 32
37 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020038 Minimum allowable password length.
"Robert P. J. Day"087b9d62006-07-02 18:35:39 +000039
Denys Vlasenko522041e2011-09-10 13:25:57 +020040config MD5_SMALL
Denys Vlasenko7e7e08f2009-07-06 23:24:20 +020041 int "MD5: Trade bytes for speed (0:fast, 3:slow)"
Denys Vlasenkodb700332015-10-25 20:36:03 +010042 default 1 # all "fast or small" options default to small
Rob Landley5cf7c2d2006-02-21 06:44:43 +000043 range 0 3
44 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020045 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
Rob Landley5cf7c2d2006-02-21 06:44:43 +000053
Denys Vlasenko30a86522013-01-15 01:12:26 +010054config SHA3_SMALL
55 int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
Denys Vlasenkodb700332015-10-25 20:36:03 +010056 default 1 # all "fast or small" options default to small
Denys Vlasenko30a86522013-01-15 01:12:26 +010057 range 0 1
58 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020059 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
Denys Vlasenko30a86522013-01-15 01:12:26 +010063
Denys Vlasenko94c78aa2021-10-12 13:23:29 +020064config FEATURE_NON_POSIX_CP
65 bool "Non-POSIX, but safer, copying to special nodes"
66 default y
Denis Vlasenko3afac4c2007-06-19 13:46:24 +000067 help
Denys Vlasenko94c78aa2021-10-12 13:23:29 +020068 With this option, "cp file symlink" will delete symlink
69 and create a regular file. This does not conform to POSIX,
70 but prevents a symlink attack.
71 Similarly, "cp file device" will not send file's data
72 to the device. (To do that, use "cat file >device")
Denis Vlasenko3afac4c2007-06-19 13:46:24 +000073
Denys Vlasenko94c78aa2021-10-12 13:23:29 +020074config FEATURE_VERBOSE_CP_MESSAGE
75 bool "Give more precise messages when copy fails (cp, mv etc)"
Denis Vlasenkoa61cb922007-06-19 11:24:47 +000076 default n
77 help
Denys Vlasenko94c78aa2021-10-12 13:23:29 +020078 Error messages with this feature enabled:
Denis Vlasenkoa61cb922007-06-19 11:24:47 +000079
Denys Vlasenko94c78aa2021-10-12 13:23:29 +020080 $ cp file /does_not_exist/file
81 cp: cannot create '/does_not_exist/file': Path does not exist
82 $ cp file /vmlinuz/file
83 cp: cannot stat '/vmlinuz/file': Path has non-directory component
84
85 If this feature is not enabled, they will be, respectively:
86
87 cp: cannot create '/does_not_exist/file': No such file or directory
88 cp: cannot stat '/vmlinuz/file': Not a directory
89
90 This will cost you ~60 bytes.
91
92config FEATURE_USE_SENDFILE
93 bool "Use sendfile system call"
94 default y
Denys Vlasenko2aeb2012018-04-17 12:43:54 +020095 help
Denys Vlasenko94c78aa2021-10-12 13:23:29 +020096 When enabled, busybox will use the kernel sendfile() function
97 instead of read/write loops to copy data between file descriptors
98 (for example, cp command does this a lot).
99 If sendfile() doesn't work, copying code falls back to read/write
100 loop. sendfile() was originally implemented for faster I/O
101 from files to sockets, but since Linux 2.6.33 it was extended
102 to work for many more file types.
103
104config FEATURE_COPYBUF_KB
105 int "Copy buffer size, in kilobytes"
106 range 1 1024
107 default 4
108 help
109 Size of buffer used by cp, mv, install, wget etc.
110 Buffers which are 4 kb or less will be allocated on stack.
111 Bigger buffers will be allocated with mmap, with fallback to 4 kb
112 stack buffer if mmap fails.
113
114config MONOTONIC_SYSCALL
115 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
116 default y
117 help
118 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
119 time intervals (time, ping, traceroute etc need this).
120 Probably requires Linux 2.6+. If not selected, gettimeofday
121 will be used instead (which gives wrong results if date/time
122 is reset).
123
124config IOCTL_HEX2STR_ERROR
125 bool "Use ioctl names rather than hex values in error messages"
126 default y
127 help
128 Use ioctl names rather than hex values in error messages
129 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
130 saves about 1400 bytes.
Denys Vlasenko2aeb2012018-04-17 12:43:54 +0200131
Denis Vlasenko38f63192007-01-22 09:03:07 +0000132config FEATURE_EDITING
133 bool "Command line editing"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200134 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000135 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200136 Enable line editing (mainly for shell command line).
Denis Vlasenkoe8a07882007-06-10 15:08:44 +0000137
138config FEATURE_EDITING_MAX_LEN
139 int "Maximum length of input"
140 range 128 8192
141 default 1024
142 depends on FEATURE_EDITING
143 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200144 Line editing code uses on-stack buffers for storage.
145 You may want to decrease this parameter if your target machine
146 benefits from smaller stack usage.
Denis Vlasenko38f63192007-01-22 09:03:07 +0000147
Denis Vlasenko38f63192007-01-22 09:03:07 +0000148config FEATURE_EDITING_VI
149 bool "vi-style line editing commands"
150 default n
151 depends on FEATURE_EDITING
152 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200153 Enable vi-style line editing. In shells, this mode can be
154 turned on and off with "set -o vi" and "set +o vi".
Denis Vlasenko38f63192007-01-22 09:03:07 +0000155
156config FEATURE_EDITING_HISTORY
157 int "History size"
Denys Vlasenko2c4de5b2011-03-31 13:16:52 +0200158 # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
159 range 0 9999
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200160 default 255
Denis Vlasenko38f63192007-01-22 09:03:07 +0000161 depends on FEATURE_EDITING
162 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200163 Specify command history size (0 - disable).
Denis Vlasenko38f63192007-01-22 09:03:07 +0000164
165config FEATURE_EDITING_SAVEHISTORY
166 bool "History saving"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200167 default y
Denys Vlasenko99862cb2010-09-12 17:34:13 +0200168 depends on FEATURE_EDITING
Denis Vlasenko38f63192007-01-22 09:03:07 +0000169 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200170 Enable history saving in shells.
Denis Vlasenko38f63192007-01-22 09:03:07 +0000171
Denys Vlasenkobede2152011-09-04 16:12:33 +0200172config FEATURE_EDITING_SAVE_ON_EXIT
173 bool "Save history on shell exit, not after every command"
174 default n
175 depends on FEATURE_EDITING_SAVEHISTORY
176 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200177 Save history on shell exit, not after every command.
Denys Vlasenkobede2152011-09-04 16:12:33 +0200178
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200179config FEATURE_REVERSE_SEARCH
180 bool "Reverse history search"
181 default y
Denys Vlasenkofe0dc342015-10-30 21:39:19 +0100182 depends on FEATURE_EDITING
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200183 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200184 Enable readline-like Ctrl-R combination for reverse history search.
185 Increases code by about 0.5k.
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200186
Denis Vlasenko38f63192007-01-22 09:03:07 +0000187config FEATURE_TAB_COMPLETION
188 bool "Tab completion"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200189 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000190 depends on FEATURE_EDITING
Denis Vlasenko38f63192007-01-22 09:03:07 +0000191
192config FEATURE_USERNAME_COMPLETION
193 bool "Username completion"
Denys Vlasenko1afa4942016-12-23 13:40:24 +0100194 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000195 depends on FEATURE_TAB_COMPLETION
Denis Vlasenko38f63192007-01-22 09:03:07 +0000196
197config FEATURE_EDITING_FANCY_PROMPT
198 bool "Fancy shell prompts"
Denys Vlasenko5d26df62010-07-16 15:31:38 +0200199 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000200 depends on FEATURE_EDITING
201 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200202 Setting this option allows for prompts to use things like \w and
203 \$ and escape codes.
Denis Vlasenko38f63192007-01-22 09:03:07 +0000204
Ron Yorston23286902018-02-25 20:09:54 +0100205config FEATURE_EDITING_WINCH
206 bool "Enable automatic tracking of window size changes"
207 default y
208 depends on FEATURE_EDITING
209
Denys Vlasenko020f4062009-05-17 16:44:54 +0200210config FEATURE_EDITING_ASK_TERMINAL
211 bool "Query cursor position from terminal"
212 default n
213 depends on FEATURE_EDITING
214 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200215 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
216 current cursor position. This information is used to make line
217 editing more robust in some cases.
218 If you are not sure whether your terminals respond to this code
219 correctly, or want to save on code size (about 400 bytes),
220 then do not turn this option on.
Denys Vlasenko020f4062009-05-17 16:44:54 +0200221
Denys Vlasenko12559252016-11-24 22:18:55 +0100222config LOCALE_SUPPORT
223 bool "Enable locale support (system needs locale for this to work)"
224 default n
225 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200226 Enable this if your system has locale support and you would like
227 busybox to support locale settings.
Denys Vlasenko12559252016-11-24 22:18:55 +0100228
229config UNICODE_SUPPORT
230 bool "Support Unicode"
231 default y
232 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200233 This makes various applets aware that one byte is not
234 one character on screen.
Denys Vlasenko12559252016-11-24 22:18:55 +0100235
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200236 Busybox aims to eventually work correctly with Unicode displays.
237 Any older encodings are not guaranteed to work.
238 Probably by the time when busybox will be fully Unicode-clean,
239 other encodings will be mainly of historic interest.
Denys Vlasenko12559252016-11-24 22:18:55 +0100240
241config UNICODE_USING_LOCALE
242 bool "Use libc routines for Unicode (else uses internal ones)"
243 default n
244 depends on UNICODE_SUPPORT && LOCALE_SUPPORT
245 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200246 With this option on, Unicode support is implemented using libc
247 routines. Otherwise, internal implementation is used.
248 Internal implementation is smaller.
Denys Vlasenko12559252016-11-24 22:18:55 +0100249
250config FEATURE_CHECK_UNICODE_IN_ENV
251 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
252 default n
253 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
254 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200255 With this option on, Unicode support is activated
256 only if locale-related variables have the value of the form
257 "xxxx.utf8"
Denys Vlasenko12559252016-11-24 22:18:55 +0100258
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200259 Otherwise, Unicode support will be always enabled and active.
Denys Vlasenko12559252016-11-24 22:18:55 +0100260
261config SUBST_WCHAR
262 int "Character code to substitute unprintable characters with"
263 depends on UNICODE_SUPPORT
264 default 63
265 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200266 Typical values are 63 for '?' (works with any output device),
267 30 for ASCII substitute control code,
268 65533 (0xfffd) for Unicode replacement character.
Denys Vlasenko12559252016-11-24 22:18:55 +0100269
270config LAST_SUPPORTED_WCHAR
271 int "Range of supported Unicode characters"
272 depends on UNICODE_SUPPORT
273 default 767
274 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200275 Any character with Unicode value bigger than this is assumed
276 to be non-printable on output device. Many applets replace
277 such characters with substitution character.
Denys Vlasenko12559252016-11-24 22:18:55 +0100278
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200279 The idea is that many valid printable Unicode chars
280 nevertheless are not displayed correctly. Think about
281 combining charachers, double-wide hieroglyphs, obscure
282 characters in dozens of ancient scripts...
283 Many terminals, terminal emulators, xterms etc will fail
284 to handle them correctly. Choose the smallest value
285 which suits your needs.
Denys Vlasenko12559252016-11-24 22:18:55 +0100286
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200287 Typical values are:
288 126 - ASCII only
289 767 (0x2ff) - there are no combining chars in [0..767] range
Denys Vlasenko12559252016-11-24 22:18:55 +0100290 (the range includes Latin 1, Latin Ext. A and B),
291 code is ~700 bytes smaller for this case.
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200292 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
Denys Vlasenko12559252016-11-24 22:18:55 +0100293 code is ~300 bytes smaller for this case.
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200294 12799 (0x31ff) - nearly all non-ideographic characters are
Denys Vlasenko12559252016-11-24 22:18:55 +0100295 available in [0..12799] range, including
296 East Asian scripts like katakana, hiragana, hangul,
297 bopomofo...
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200298 0 - off, any valid printable Unicode character will be printed.
Denys Vlasenko12559252016-11-24 22:18:55 +0100299
300config UNICODE_COMBINING_WCHARS
301 bool "Allow zero-width Unicode characters on output"
302 default n
303 depends on UNICODE_SUPPORT
304 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200305 With this option off, any Unicode char with width of 0
306 is substituted on output.
Denys Vlasenko12559252016-11-24 22:18:55 +0100307
308config UNICODE_WIDE_WCHARS
309 bool "Allow wide Unicode characters on output"
310 default n
311 depends on UNICODE_SUPPORT
312 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200313 With this option off, any Unicode char with width > 1
314 is substituted on output.
Denys Vlasenko12559252016-11-24 22:18:55 +0100315
316config UNICODE_BIDI_SUPPORT
317 bool "Bidirectional character-aware line input"
318 default n
319 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
320 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200321 With this option on, right-to-left Unicode characters
322 are treated differently on input (e.g. cursor movement).
Denys Vlasenko12559252016-11-24 22:18:55 +0100323
324config UNICODE_NEUTRAL_TABLE
325 bool "In bidi input, support non-ASCII neutral chars too"
326 default n
327 depends on UNICODE_BIDI_SUPPORT
328 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200329 In most cases it's enough to treat only ASCII non-letters
330 (i.e. punctuation, numbers and space) as characters
331 with neutral directionality.
332 With this option on, more extensive (and bigger) table
333 of neutral chars will be used.
Denys Vlasenko12559252016-11-24 22:18:55 +0100334
335config UNICODE_PRESERVE_BROKEN
336 bool "Make it possible to enter sequences of chars which are not Unicode"
337 default n
338 depends on UNICODE_SUPPORT
339 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200340 With this option on, on line-editing input (such as used by shells)
341 invalid UTF-8 bytes are not substituted with the selected
342 substitution character.
343 For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
344 at shell prompt will list file named 0xff (single char name
345 with char value 255), not file named '?'.