1 # DO NOT EDIT. This file is generated from Config.src
3 # For a description of the syntax of this configuration file,
4 # see scripts/kbuild/config-language.txt.
11 prompt "Choose which shell is aliased to 'sh' name"
12 default BUSYBOX_CONFIG_SH_IS_ASH
14 Choose which shell you want to be executed by 'sh' alias.
15 The ash shell is the most bash compatible and full featured one.
17 # note: cannot use "select ASH" here, it breaks "make allnoconfig"
18 config BUSYBOX_CONFIG_SH_IS_ASH
19 depends on !BUSYBOX_CONFIG_NOMMU
22 config BUSYBOX_CONFIG_SH_IS_HUSH
25 config BUSYBOX_CONFIG_SH_IS_NONE
31 prompt "Choose which shell is aliased to 'bash' name"
32 default BUSYBOX_CONFIG_BASH_IS_NONE
34 Choose which shell you want to be executed by 'bash' alias.
35 The ash shell is the most bash compatible and full featured one.
37 Note that selecting this option does not switch on any bash
38 compatibility code. It merely makes it possible to install
39 /bin/bash (sym)link and run scripts which start with
42 Many systems use it in scripts which use bash-specific features,
43 even simple ones like $RANDOM. Without this option, busybox
44 can't be used for running them because it won't recongnize
45 "bash" as a supported applet name.
47 config BUSYBOX_CONFIG_BASH_IS_ASH
48 depends on !BUSYBOX_CONFIG_NOMMU
51 config BUSYBOX_CONFIG_BASH_IS_HUSH
54 config BUSYBOX_CONFIG_BASH_IS_NONE
60 config BUSYBOX_CONFIG_ASH
62 default BUSYBOX_DEFAULT_ASH
63 depends on !BUSYBOX_CONFIG_NOMMU
65 Tha 'ash' shell adds about 60k in the default configuration and is
66 the most complete and most pedantically correct shell included with
67 busybox. This shell is actually a derivative of the Debian 'dash'
68 shell (by Herbert Xu), which was created by porting the 'ash' shell
69 (written by Kenneth Almquist) from NetBSD.
71 config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
72 bool "Optimize for size instead of speed"
73 default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
74 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
76 Compile ash for reduced size at the price of speed.
78 config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
79 bool "Use internal glob() implementation"
80 default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB # Y is bigger, but because of uclibc glob() bug, let Y be default for now
81 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
83 Do not use glob() function from libc, use internal implementation.
84 Use this if you are getting "glob.h: No such file or directory"
85 or similar build errors.
87 config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
88 bool "Pseudorandom generator and $RANDOM variable"
89 default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
90 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
92 Enable pseudorandom generator and dynamic variable "$RANDOM".
93 Each read of "$RANDOM" will generate a new pseudorandom value.
94 You can reset the generator by using a specified start value.
95 After "unset RANDOM" the generator will switch off and this
96 variable will no longer have special treatment.
98 config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
99 bool "Expand prompt string"
100 default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
101 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
103 "PS#" may contain volatile content, such as backquote commands.
104 This option recreates the prompt string from the environment
105 variable each time it is displayed.
107 config BUSYBOX_CONFIG_ASH_BASH_COMPAT
108 bool "bash-compatible extensions"
109 default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
110 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
112 Enable bash-compatible extensions.
114 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
115 bool "Idle timeout variable"
116 default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
117 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
119 Enables bash-like auto-logout after $TMOUT seconds of idle time.
121 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
123 default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
124 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
126 Enable job control in the ash shell.
128 config BUSYBOX_CONFIG_ASH_ALIAS
130 default BUSYBOX_DEFAULT_ASH_ALIAS
131 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
133 Enable alias support in the ash shell.
135 config BUSYBOX_CONFIG_ASH_GETOPTS
136 bool "Builtin getopt to parse positional parameters"
137 default BUSYBOX_DEFAULT_ASH_GETOPTS
138 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
140 Enable support for getopts builtin in ash.
142 config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
143 bool "Builtin version of 'echo'"
144 default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO
145 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
147 Enable support for echo builtin in ash.
149 config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
150 bool "Builtin version of 'printf'"
151 default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
152 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
154 Enable support for printf builtin in ash.
156 config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
157 bool "Builtin version of 'test'"
158 default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
159 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
161 Enable support for test builtin in ash.
163 config BUSYBOX_CONFIG_ASH_HELP
165 default BUSYBOX_DEFAULT_ASH_HELP
166 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
168 Enable help builtin in ash.
170 config BUSYBOX_CONFIG_ASH_CMDCMD
171 bool "'command' command to override shell builtins"
172 default BUSYBOX_DEFAULT_ASH_CMDCMD
173 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
175 Enable support for the ash 'command' builtin, which allows
176 you to run the specified command with the specified arguments,
177 even when there is an ash builtin command with the same name.
179 config BUSYBOX_CONFIG_ASH_MAIL
180 bool "Check for new mail on interactive shells"
181 default BUSYBOX_DEFAULT_ASH_MAIL
182 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
184 Enable "check for new mail" function in the ash shell.
185 config BUSYBOX_CONFIG_CTTYHACK
187 default BUSYBOX_DEFAULT_CTTYHACK
189 One common problem reported on the mailing list is the "can't
190 access tty; job control turned off" error message, which typically
191 appears when one tries to use a shell with stdin/stdout on
193 This device is special - it cannot be a controlling tty.
195 The proper solution is to use the correct device instead of
198 cttyhack provides a "quick and dirty" solution to this problem.
199 It analyzes stdin with various ioctls, trying to determine whether
200 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
201 On Linux it also checks sysfs for a pointer to the active console.
202 If cttyhack is able to find the real console device, it closes
203 stdin/out/err and reopens that device.
204 Then it executes the given program. Opening the device will make
205 that device a controlling tty. This may require cttyhack
206 to be a session leader.
208 Example for /etc/inittab (for busybox init):
210 ::respawn:/bin/cttyhack /bin/sh
212 Starting an interactive shell from boot shell script:
216 Giving controlling tty to shell running with PID 1:
220 Without cttyhack, you need to know exact tty name,
221 and do something like this:
223 # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
225 Starting getty on a controlling tty from a shell script:
227 # getty 115200 $(cttyhack)
228 config BUSYBOX_CONFIG_HUSH
230 default BUSYBOX_DEFAULT_HUSH
232 hush is a small shell (25k). It handles the normal flow control
233 constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
234 case/esac. Redirections, here documents, $((arithmetic))
235 and functions are supported.
237 It will compile and work on no-mmu systems.
239 It does not handle select, aliases, tilde expansion,
240 &>file and >&file redirection of stdout+stderr.
242 config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
243 bool "bash-compatible extensions"
244 default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
245 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
247 Enable bash-compatible extensions.
249 config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
250 bool "Brace expansion"
251 default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
252 depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
254 Enable {abc,def} extension.
256 config BUSYBOX_CONFIG_HUSH_HELP
258 default BUSYBOX_DEFAULT_HUSH_HELP
259 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
261 Enable help builtin in hush. Code size + ~1 kbyte.
263 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
264 bool "Interactive mode"
265 default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
266 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
268 Enable interactive mode (prompt and command editing).
269 Without this, hush simply reads and executes commands
270 from stdin just like a shell script from a file.
271 No prompt, no PS1/PS2 magic shell variables.
273 config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
274 bool "Save command history to .hush_history"
275 default BUSYBOX_DEFAULT_HUSH_SAVEHISTORY
276 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
278 Enable history saving in hush.
280 config BUSYBOX_CONFIG_HUSH_JOB
282 default BUSYBOX_DEFAULT_HUSH_JOB
283 depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
285 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
286 command (not entire shell), fg/bg builtins work. Without this option,
287 "cmd &" still works by simply spawning a process and immediately
288 prompting for next command (or executing next command in a script),
289 but no separate process group is formed.
291 config BUSYBOX_CONFIG_HUSH_TICK
292 bool "Process substitution"
293 default BUSYBOX_DEFAULT_HUSH_TICK
294 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
296 Enable process substitution `command` and $(command) in hush.
298 config BUSYBOX_CONFIG_HUSH_IF
299 bool "Support if/then/elif/else/fi"
300 default BUSYBOX_DEFAULT_HUSH_IF
301 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
303 Enable if/then/elif/else/fi in hush.
305 config BUSYBOX_CONFIG_HUSH_LOOPS
306 bool "Support for, while and until loops"
307 default BUSYBOX_DEFAULT_HUSH_LOOPS
308 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
310 Enable for, while and until loops in hush.
312 config BUSYBOX_CONFIG_HUSH_CASE
313 bool "Support case ... esac statement"
314 default BUSYBOX_DEFAULT_HUSH_CASE
315 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
317 Enable case ... esac statement in hush. +400 bytes.
319 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
320 bool "Support funcname() { commands; } syntax"
321 default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
322 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
324 Enable support for shell functions in hush. +800 bytes.
326 config BUSYBOX_CONFIG_HUSH_LOCAL
327 bool "Support local builtin"
328 default BUSYBOX_DEFAULT_HUSH_LOCAL
329 depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
331 Enable support for local variables in functions.
333 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
334 bool "Pseudorandom generator and $RANDOM variable"
335 default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
336 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
338 Enable pseudorandom generator and dynamic variable "$RANDOM".
339 Each read of "$RANDOM" will generate a new pseudorandom value.
341 config BUSYBOX_CONFIG_HUSH_EXPORT_N
342 bool "Support 'export -n' option"
343 default BUSYBOX_DEFAULT_HUSH_EXPORT_N
344 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
346 export -n unexports variables. It is a bash extension.
348 config BUSYBOX_CONFIG_HUSH_MODE_X
349 bool "Support 'hush -x' option and 'set -x' command"
350 default BUSYBOX_DEFAULT_HUSH_MODE_X
351 depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
353 This instructs hush to print commands before execution.
356 config BUSYBOX_CONFIG_MSH
357 bool "msh (deprecated: aliased to hush)"
358 default BUSYBOX_DEFAULT_MSH
359 select BUSYBOX_CONFIG_HUSH
361 msh is deprecated and will be removed, please migrate to hush.
364 config BUSYBOX_CONFIG_FEATURE_SH_MATH
365 bool "POSIX math support"
366 default BUSYBOX_DEFAULT_FEATURE_SH_MATH
367 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
369 Enable math support in the shell via $((...)) syntax.
371 config BUSYBOX_CONFIG_FEATURE_SH_MATH_64
372 bool "Extend POSIX math support to 64 bit"
373 default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
374 depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
376 Enable 64-bit math support in the shell. This will make the shell
377 slightly larger, but will allow computation with very large numbers.
378 This is not in POSIX, so do not rely on this in portable code.
380 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
381 bool "Hide message on interactive shell startup"
382 default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
383 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
385 Remove the busybox introduction when starting a shell.
387 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
388 bool "Standalone shell"
389 default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
390 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
392 This option causes busybox shells to use busybox applets
393 in preference to executables in the PATH whenever possible. For
394 example, entering the command 'ifconfig' into the shell would cause
395 busybox to use the ifconfig busybox applet. Specifying the fully
396 qualified executable name, such as '/sbin/ifconfig' will still
397 execute the /sbin/ifconfig executable on the filesystem. This option
398 is generally used when creating a statically linked version of busybox
399 for use as a rescue shell, in the event that you screw up your system.
401 This is implemented by re-execing /proc/self/exe (typically)
402 with right parameters. Some selected applets ("NOFORK" applets)
403 can even be executed without creating new process.
404 Instead, busybox will call <applet>_main() internally.
406 However, this causes problems in chroot jails without mounted /proc
407 and with ps/top (command name can be shown as 'exe' for applets
410 # Note that this will *also* cause applets to take precedence
411 # over shell builtins of the same name. So turning this on will
412 # eliminate any performance gained by turning on the builtin "echo"
413 # and "test" commands in ash.
415 # Note that when using this option, the shell will attempt to directly
416 # run '/bin/busybox'. If you do not have the busybox binary sitting in
417 # that exact location with that exact name, this option will not work at
420 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
421 bool "Run 'nofork' applets directly"
422 default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
423 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
425 This option causes busybox shells to not execute typical
426 fork/exec/wait sequence, but call <applet>_main directly,
427 if possible. (Sometimes it is not possible: for example,
428 this is not possible in pipes).
430 This will be done only for some applets (those which are marked
431 NOFORK in include/applets.h).
433 This may significantly speed up some shell scripts.
435 This feature is relatively new. Use with care. Report bugs
436 to project mailing list.
438 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
439 bool "Use $HISTFILESIZE"
440 default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
441 depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
443 This option makes busybox shells to use $HISTFILESIZE variable
444 to set shell history size. Note that its max value is capped
445 by "History size" setting in library tuning section.