Config.in 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608
  1. # DO NOT EDIT. This file is generated from Config.src
  2. #
  3. # For a description of the syntax of this configuration file,
  4. # see docs/Kconfig-language.txt.
  5. #
  6. menu "Shells"
  7. choice
  8. prompt "Choose which shell is aliased to 'sh' name"
  9. default BUSYBOX_SH_IS_ASH
  10. help
  11. Choose which shell you want to be executed by 'sh' alias.
  12. The ash shell is the most bash compatible and full featured one.
  13. # note: cannot use "select BUSYBOX_ASH" here, it breaks "make allnoconfig"
  14. config BUSYBOX_SH_IS_ASH
  15. depends on !BUSYBOX_NOMMU
  16. bool "ash"
  17. select BUSYBOX_SHELL_ASH
  18. help
  19. Choose ash to be the shell executed by 'sh' name.
  20. The ash code will be built into busybox. If you don't select
  21. "ash" choice (CONFIG_ASH), this shell may only be invoked by
  22. the name 'sh' (and not 'ash').
  23. config BUSYBOX_SH_IS_HUSH
  24. bool "hush"
  25. select BUSYBOX_SHELL_HUSH
  26. help
  27. Choose hush to be the shell executed by 'sh' name.
  28. The hush code will be built into busybox. If you don't select
  29. "hush" choice (CONFIG_HUSH), this shell may only be invoked by
  30. the name 'sh' (and not 'hush').
  31. config BUSYBOX_SH_IS_NONE
  32. bool "none"
  33. endchoice
  34. choice
  35. prompt "Choose which shell is aliased to 'bash' name"
  36. default BUSYBOX_BASH_IS_NONE
  37. help
  38. Choose which shell you want to be executed by 'bash' alias.
  39. The ash shell is the most bash compatible and full featured one,
  40. although compatibility is far from being complete.
  41. Note that selecting this option does not switch on any bash
  42. compatibility code. It merely makes it possible to install
  43. /bin/bash (sym)link and run scripts which start with
  44. #!/bin/bash line.
  45. Many systems use it in scripts which use bash-specific features,
  46. even simple ones like $RANDOM. Without this option, busybox
  47. can't be used for running them because it won't recongnize
  48. "bash" as a supported applet name.
  49. config BUSYBOX_BASH_IS_ASH
  50. depends on !BUSYBOX_NOMMU
  51. bool "ash"
  52. select BUSYBOX_SHELL_ASH
  53. help
  54. Choose ash to be the shell executed by 'bash' name.
  55. The ash code will be built into busybox. If you don't select
  56. "ash" choice (CONFIG_ASH), this shell may only be invoked by
  57. the name 'bash' (and not 'ash').
  58. config BUSYBOX_BASH_IS_HUSH
  59. bool "hush"
  60. select BUSYBOX_SHELL_HUSH
  61. help
  62. Choose hush to be the shell executed by 'bash' name.
  63. The hush code will be built into busybox. If you don't select
  64. "hush" choice (CONFIG_HUSH), this shell may only be invoked by
  65. the name 'bash' (and not 'hush').
  66. config BUSYBOX_BASH_IS_NONE
  67. bool "none"
  68. endchoice
  69. config BUSYBOX_SHELL_ASH
  70. bool #hidden option
  71. depends on !BUSYBOX_NOMMU
  72. config BUSYBOX_ASH
  73. bool "ash (78 kb)"
  74. default y
  75. depends on !BUSYBOX_NOMMU
  76. select BUSYBOX_SHELL_ASH
  77. help
  78. The most complete and most pedantically correct shell included with
  79. busybox. This shell is actually a derivative of the Debian 'dash'
  80. shell (by Herbert Xu), which was created by porting the 'ash' shell
  81. (written by Kenneth Almquist) from NetBSD.
  82. # ash options
  83. # note: Don't remove !NOMMU part in the next line; it would break
  84. # menuconfig's indenting.
  85. if !BUSYBOX_NOMMU && (BUSYBOX_SHELL_ASH || BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH)
  86. config BUSYBOX_ASH_OPTIMIZE_FOR_SIZE
  87. bool "Optimize for size instead of speed"
  88. default y
  89. depends on BUSYBOX_SHELL_ASH
  90. config BUSYBOX_ASH_INTERNAL_GLOB
  91. bool "Use internal glob() implementation"
  92. default y # Y is bigger, but because of uclibc glob() bug, let Y be default for now
  93. depends on BUSYBOX_SHELL_ASH
  94. help
  95. Do not use glob() function from libc, use internal implementation.
  96. Use this if you are getting "glob.h: No such file or directory"
  97. or similar build errors.
  98. Note that as of now (2017-01), uclibc and musl glob() both have bugs
  99. which would break ash if you select N here.
  100. config BUSYBOX_ASH_BASH_COMPAT
  101. bool "bash-compatible extensions"
  102. default y
  103. depends on BUSYBOX_SHELL_ASH
  104. config BUSYBOX_ASH_BASH_SOURCE_CURDIR
  105. bool "'source' and '.' builtins search current directory after $PATH"
  106. default n # do not encourage non-standard behavior
  107. depends on BUSYBOX_ASH_BASH_COMPAT
  108. help
  109. This is not compliant with standards. Avoid if possible.
  110. config BUSYBOX_ASH_BASH_NOT_FOUND_HOOK
  111. bool "command_not_found_handle hook support"
  112. default y
  113. depends on BUSYBOX_ASH_BASH_COMPAT
  114. help
  115. Enable support for the 'command_not_found_handle' hook function,
  116. from GNU bash, which allows for alternative command not found
  117. handling.
  118. config BUSYBOX_ASH_JOB_CONTROL
  119. bool "Job control"
  120. default y
  121. depends on BUSYBOX_SHELL_ASH
  122. config BUSYBOX_ASH_ALIAS
  123. bool "Alias support"
  124. default y
  125. depends on BUSYBOX_SHELL_ASH
  126. config BUSYBOX_ASH_RANDOM_SUPPORT
  127. bool "Pseudorandom generator and $RANDOM variable"
  128. default y
  129. depends on BUSYBOX_SHELL_ASH
  130. help
  131. Enable pseudorandom generator and dynamic variable "$RANDOM".
  132. Each read of "$RANDOM" will generate a new pseudorandom value.
  133. You can reset the generator by using a specified start value.
  134. After "unset RANDOM" the generator will switch off and this
  135. variable will no longer have special treatment.
  136. config BUSYBOX_ASH_EXPAND_PRMT
  137. bool "Expand prompt string"
  138. default y
  139. depends on BUSYBOX_SHELL_ASH
  140. help
  141. $PS# may contain volatile content, such as backquote commands.
  142. This option recreates the prompt string from the environment
  143. variable each time it is displayed.
  144. config BUSYBOX_ASH_IDLE_TIMEOUT
  145. bool "Idle timeout variable $TMOUT"
  146. default y
  147. depends on BUSYBOX_SHELL_ASH
  148. help
  149. Enable bash-like auto-logout after $TMOUT seconds of idle time.
  150. config BUSYBOX_ASH_MAIL
  151. bool "Check for new mail in interactive shell"
  152. default y
  153. depends on BUSYBOX_SHELL_ASH
  154. help
  155. Enable "check for new mail" function:
  156. if set, $MAIL file and $MAILPATH list of files
  157. are checked for mtime changes, and "you have mail"
  158. message is printed if change is detected.
  159. config BUSYBOX_ASH_ECHO
  160. bool "echo builtin"
  161. default y
  162. depends on BUSYBOX_SHELL_ASH
  163. config BUSYBOX_ASH_PRINTF
  164. bool "printf builtin"
  165. default y
  166. depends on BUSYBOX_SHELL_ASH
  167. config BUSYBOX_ASH_TEST
  168. bool "test builtin"
  169. default y
  170. depends on BUSYBOX_SHELL_ASH
  171. config BUSYBOX_ASH_SLEEP
  172. bool "sleep builtin"
  173. default y
  174. depends on BUSYBOX_SHELL_ASH
  175. config BUSYBOX_ASH_HELP
  176. bool "help builtin"
  177. default y
  178. depends on BUSYBOX_SHELL_ASH
  179. config BUSYBOX_ASH_GETOPTS
  180. bool "getopts builtin"
  181. default y
  182. depends on BUSYBOX_SHELL_ASH
  183. config BUSYBOX_ASH_CMDCMD
  184. bool "command builtin"
  185. default y
  186. depends on BUSYBOX_SHELL_ASH
  187. help
  188. Enable support for the 'command' builtin, which allows
  189. you to run the specified command or builtin,
  190. even when there is a function with the same name.
  191. endif # ash options
  192. config BUSYBOX_CTTYHACK
  193. bool "cttyhack (2.4 kb)"
  194. default y
  195. help
  196. One common problem reported on the mailing list is the "can't
  197. access tty; job control turned off" error message, which typically
  198. appears when one tries to use a shell with stdin/stdout on
  199. /dev/console.
  200. This device is special - it cannot be a controlling tty.
  201. The proper solution is to use the correct device instead of
  202. /dev/console.
  203. cttyhack provides a "quick and dirty" solution to this problem.
  204. It analyzes stdin with various ioctls, trying to determine whether
  205. it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
  206. On Linux it also checks sysfs for a pointer to the active console.
  207. If cttyhack is able to find the real console device, it closes
  208. stdin/out/err and reopens that device.
  209. Then it executes the given program. Opening the device will make
  210. that device a controlling tty. This may require cttyhack
  211. to be a session leader.
  212. Example for /etc/inittab (for busybox init):
  213. ::respawn:/bin/cttyhack /bin/sh
  214. Starting an interactive shell from boot shell script:
  215. setsid cttyhack sh
  216. Giving controlling tty to shell running with PID 1:
  217. # exec cttyhack sh
  218. Without cttyhack, you need to know exact tty name,
  219. and do something like this:
  220. # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
  221. Starting getty on a controlling tty from a shell script:
  222. # getty 115200 $(cttyhack)
  223. config BUSYBOX_HUSH
  224. bool "hush (68 kb)"
  225. default y
  226. select BUSYBOX_SHELL_HUSH
  227. help
  228. hush is a small shell. It handles the normal flow control
  229. constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
  230. case/esac. Redirections, here documents, $((arithmetic))
  231. and functions are supported.
  232. It will compile and work on no-mmu systems.
  233. It does not handle select, aliases, tilde expansion,
  234. &>file and >&file redirection of stdout+stderr.
  235. config BUSYBOX_SHELL_HUSH
  236. bool "Internal shell for embedded script support"
  237. default n
  238. # hush options
  239. # It's only needed to get "nice" menuconfig indenting.
  240. if BUSYBOX_SHELL_HUSH || BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
  241. config BUSYBOX_HUSH_BASH_COMPAT
  242. bool "bash-compatible extensions"
  243. default y
  244. depends on BUSYBOX_SHELL_HUSH
  245. config BUSYBOX_HUSH_BRACE_EXPANSION
  246. bool "Brace expansion"
  247. default y
  248. depends on BUSYBOX_HUSH_BASH_COMPAT
  249. help
  250. Enable {abc,def} extension.
  251. config BUSYBOX_HUSH_BASH_SOURCE_CURDIR
  252. bool "'source' and '.' builtins search current directory after $PATH"
  253. default n # do not encourage non-standard behavior
  254. depends on BUSYBOX_HUSH_BASH_COMPAT
  255. help
  256. This is not compliant with standards. Avoid if possible.
  257. config BUSYBOX_HUSH_LINENO_VAR
  258. bool "$LINENO variable (bashism)"
  259. default y
  260. depends on BUSYBOX_SHELL_HUSH
  261. config BUSYBOX_HUSH_INTERACTIVE
  262. bool "Interactive mode"
  263. default y
  264. depends on BUSYBOX_SHELL_HUSH
  265. help
  266. Enable interactive mode (prompt and command editing).
  267. Without this, hush simply reads and executes commands
  268. from stdin just like a shell script from a file.
  269. No prompt, no PS1/PS2 magic shell variables.
  270. config BUSYBOX_HUSH_SAVEHISTORY
  271. bool "Save command history to .hush_history"
  272. default y
  273. depends on BUSYBOX_HUSH_INTERACTIVE && BUSYBOX_FEATURE_EDITING_SAVEHISTORY
  274. config BUSYBOX_HUSH_JOB
  275. bool "Job control"
  276. default y
  277. depends on BUSYBOX_HUSH_INTERACTIVE
  278. help
  279. Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
  280. command (not entire shell), fg/bg builtins work. Without this option,
  281. "cmd &" still works by simply spawning a process and immediately
  282. prompting for next command (or executing next command in a script),
  283. but no separate process group is formed.
  284. config BUSYBOX_HUSH_TICK
  285. bool "Support command substitution"
  286. default y
  287. depends on BUSYBOX_SHELL_HUSH
  288. help
  289. Enable `command` and $(command).
  290. config BUSYBOX_HUSH_IF
  291. bool "Support if/then/elif/else/fi"
  292. default y
  293. depends on BUSYBOX_SHELL_HUSH
  294. config BUSYBOX_HUSH_LOOPS
  295. bool "Support for, while and until loops"
  296. default y
  297. depends on BUSYBOX_SHELL_HUSH
  298. config BUSYBOX_HUSH_CASE
  299. bool "Support case ... esac statement"
  300. default y
  301. depends on BUSYBOX_SHELL_HUSH
  302. help
  303. Enable case ... esac statement. +400 bytes.
  304. config BUSYBOX_HUSH_FUNCTIONS
  305. bool "Support funcname() { commands; } syntax"
  306. default y
  307. depends on BUSYBOX_SHELL_HUSH
  308. help
  309. Enable support for shell functions. +800 bytes.
  310. config BUSYBOX_HUSH_LOCAL
  311. bool "local builtin"
  312. default y
  313. depends on BUSYBOX_HUSH_FUNCTIONS
  314. help
  315. Enable support for local variables in functions.
  316. config BUSYBOX_HUSH_RANDOM_SUPPORT
  317. bool "Pseudorandom generator and $RANDOM variable"
  318. default y
  319. depends on BUSYBOX_SHELL_HUSH
  320. help
  321. Enable pseudorandom generator and dynamic variable "$RANDOM".
  322. Each read of "$RANDOM" will generate a new pseudorandom value.
  323. config BUSYBOX_HUSH_MODE_X
  324. bool "Support 'hush -x' option and 'set -x' command"
  325. default y
  326. depends on BUSYBOX_SHELL_HUSH
  327. help
  328. This instructs hush to print commands before execution.
  329. Adds ~300 bytes.
  330. config BUSYBOX_HUSH_ECHO
  331. bool "echo builtin"
  332. default y
  333. depends on BUSYBOX_SHELL_HUSH
  334. config BUSYBOX_HUSH_PRINTF
  335. bool "printf builtin"
  336. default y
  337. depends on BUSYBOX_SHELL_HUSH
  338. config BUSYBOX_HUSH_TEST
  339. bool "test builtin"
  340. default y
  341. depends on BUSYBOX_SHELL_HUSH
  342. config BUSYBOX_HUSH_HELP
  343. bool "help builtin"
  344. default y
  345. depends on BUSYBOX_SHELL_HUSH
  346. config BUSYBOX_HUSH_EXPORT
  347. bool "export builtin"
  348. default y
  349. depends on BUSYBOX_SHELL_HUSH
  350. config BUSYBOX_HUSH_EXPORT_N
  351. bool "Support 'export -n' option"
  352. default y
  353. depends on BUSYBOX_HUSH_EXPORT
  354. help
  355. export -n unexports variables. It is a bash extension.
  356. config BUSYBOX_HUSH_READONLY
  357. bool "readonly builtin"
  358. default y
  359. depends on BUSYBOX_SHELL_HUSH
  360. help
  361. Enable support for read-only variables.
  362. config BUSYBOX_HUSH_KILL
  363. bool "kill builtin (supports kill %jobspec)"
  364. default y
  365. depends on BUSYBOX_SHELL_HUSH
  366. config BUSYBOX_HUSH_WAIT
  367. bool "wait builtin"
  368. default y
  369. depends on BUSYBOX_SHELL_HUSH
  370. config BUSYBOX_HUSH_COMMAND
  371. bool "command builtin"
  372. default y
  373. depends on BUSYBOX_SHELL_HUSH
  374. config BUSYBOX_HUSH_TRAP
  375. bool "trap builtin"
  376. default y
  377. depends on BUSYBOX_SHELL_HUSH
  378. config BUSYBOX_HUSH_TYPE
  379. bool "type builtin"
  380. default y
  381. depends on BUSYBOX_SHELL_HUSH
  382. config BUSYBOX_HUSH_TIMES
  383. bool "times builtin"
  384. default y
  385. depends on BUSYBOX_SHELL_HUSH
  386. config BUSYBOX_HUSH_READ
  387. bool "read builtin"
  388. default y
  389. depends on BUSYBOX_SHELL_HUSH
  390. config BUSYBOX_HUSH_SET
  391. bool "set builtin"
  392. default y
  393. depends on BUSYBOX_SHELL_HUSH
  394. config BUSYBOX_HUSH_UNSET
  395. bool "unset builtin"
  396. default y
  397. depends on BUSYBOX_SHELL_HUSH
  398. config BUSYBOX_HUSH_ULIMIT
  399. bool "ulimit builtin"
  400. default y
  401. depends on BUSYBOX_SHELL_HUSH
  402. config BUSYBOX_HUSH_UMASK
  403. bool "umask builtin"
  404. default y
  405. depends on BUSYBOX_SHELL_HUSH
  406. config BUSYBOX_HUSH_GETOPTS
  407. bool "getopts builtin"
  408. default y
  409. depends on BUSYBOX_SHELL_HUSH
  410. config BUSYBOX_HUSH_MEMLEAK
  411. bool "memleak builtin (debugging)"
  412. default n
  413. depends on BUSYBOX_SHELL_HUSH
  414. endif # hush options
  415. comment "Options common to all shells"
  416. if BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  417. config BUSYBOX_FEATURE_SH_MATH
  418. bool "POSIX math support"
  419. default y
  420. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  421. help
  422. Enable math support in the shell via $((...)) syntax.
  423. config BUSYBOX_FEATURE_SH_MATH_64
  424. bool "Extend POSIX math support to 64 bit"
  425. default y
  426. depends on BUSYBOX_FEATURE_SH_MATH
  427. help
  428. Enable 64-bit math support in the shell. This will make the shell
  429. slightly larger, but will allow computation with very large numbers.
  430. This is not in POSIX, so do not rely on this in portable code.
  431. config BUSYBOX_FEATURE_SH_MATH_BASE
  432. bool "Support BASE#nnnn literals"
  433. default y
  434. depends on BUSYBOX_FEATURE_SH_MATH
  435. config BUSYBOX_FEATURE_SH_EXTRA_QUIET
  436. bool "Hide message on interactive shell startup"
  437. default y
  438. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  439. help
  440. Remove the busybox introduction when starting a shell.
  441. config BUSYBOX_FEATURE_SH_STANDALONE
  442. bool "Standalone shell"
  443. default n
  444. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  445. help
  446. This option causes busybox shells to use busybox applets
  447. in preference to executables in the PATH whenever possible. For
  448. example, entering the command 'ifconfig' into the shell would cause
  449. busybox to use the ifconfig busybox applet. Specifying the fully
  450. qualified executable name, such as '/sbin/ifconfig' will still
  451. execute the /sbin/ifconfig executable on the filesystem. This option
  452. is generally used when creating a statically linked version of busybox
  453. for use as a rescue shell, in the event that you screw up your system.
  454. This is implemented by re-execing /proc/self/exe (typically)
  455. with right parameters.
  456. However, there are drawbacks: it is problematic in chroot jails
  457. without mounted /proc, and ps/top may show command name as 'exe'
  458. for applets started this way.
  459. config BUSYBOX_FEATURE_SH_NOFORK
  460. bool "Run 'nofork' applets directly"
  461. default n
  462. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  463. help
  464. This option causes busybox shells to not execute typical
  465. fork/exec/wait sequence, but call <applet>_main directly,
  466. if possible. (Sometimes it is not possible: for example,
  467. this is not possible in pipes).
  468. This will be done only for some applets (those which are marked
  469. NOFORK in include/applets.h).
  470. This may significantly speed up some shell scripts.
  471. This feature is relatively new. Use with care. Report bugs
  472. to project mailing list.
  473. config BUSYBOX_FEATURE_SH_READ_FRAC
  474. bool "read -t N.NNN support (+110 bytes)"
  475. default y
  476. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  477. help
  478. Enable support for fractional second timeout in read builtin.
  479. config BUSYBOX_FEATURE_SH_HISTFILESIZE
  480. bool "Use $HISTFILESIZE"
  481. default y
  482. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  483. help
  484. This option makes busybox shells to use $HISTFILESIZE variable
  485. to set shell history size. Note that its max value is capped
  486. by "History size" setting in library tuning section.
  487. config BUSYBOX_FEATURE_SH_EMBEDDED_SCRIPTS
  488. bool "Embed scripts in the binary"
  489. default y
  490. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  491. help
  492. Allow scripts to be compressed and embedded in the busybox
  493. binary. The scripts should be placed in the 'embed' directory
  494. at build time. Like applets, scripts can be run as
  495. 'busybox SCRIPT ...' or by linking their name to the binary.
  496. This also allows applets to be implemented as scripts: place
  497. the script in 'applets_sh' and a stub C file containing
  498. configuration in the appropriate subsystem directory.
  499. endif # Options common to all shells
  500. endmenu