Config.in 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603
  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_HELP
  172. bool "help builtin"
  173. default y
  174. depends on BUSYBOX_SHELL_ASH
  175. config BUSYBOX_ASH_GETOPTS
  176. bool "getopts builtin"
  177. default y
  178. depends on BUSYBOX_SHELL_ASH
  179. config BUSYBOX_ASH_CMDCMD
  180. bool "command builtin"
  181. default y
  182. depends on BUSYBOX_SHELL_ASH
  183. help
  184. Enable support for the 'command' builtin, which allows
  185. you to run the specified command or builtin,
  186. even when there is a function with the same name.
  187. endif # ash options
  188. config BUSYBOX_CTTYHACK
  189. bool "cttyhack (2.4 kb)"
  190. default y
  191. help
  192. One common problem reported on the mailing list is the "can't
  193. access tty; job control turned off" error message, which typically
  194. appears when one tries to use a shell with stdin/stdout on
  195. /dev/console.
  196. This device is special - it cannot be a controlling tty.
  197. The proper solution is to use the correct device instead of
  198. /dev/console.
  199. cttyhack provides a "quick and dirty" solution to this problem.
  200. It analyzes stdin with various ioctls, trying to determine whether
  201. it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
  202. On Linux it also checks sysfs for a pointer to the active console.
  203. If cttyhack is able to find the real console device, it closes
  204. stdin/out/err and reopens that device.
  205. Then it executes the given program. Opening the device will make
  206. that device a controlling tty. This may require cttyhack
  207. to be a session leader.
  208. Example for /etc/inittab (for busybox init):
  209. ::respawn:/bin/cttyhack /bin/sh
  210. Starting an interactive shell from boot shell script:
  211. setsid cttyhack sh
  212. Giving controlling tty to shell running with PID 1:
  213. # exec cttyhack sh
  214. Without cttyhack, you need to know exact tty name,
  215. and do something like this:
  216. # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
  217. Starting getty on a controlling tty from a shell script:
  218. # getty 115200 $(cttyhack)
  219. config BUSYBOX_HUSH
  220. bool "hush (68 kb)"
  221. default y
  222. select BUSYBOX_SHELL_HUSH
  223. help
  224. hush is a small shell. It handles the normal flow control
  225. constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
  226. case/esac. Redirections, here documents, $((arithmetic))
  227. and functions are supported.
  228. It will compile and work on no-mmu systems.
  229. It does not handle select, aliases, tilde expansion,
  230. &>file and >&file redirection of stdout+stderr.
  231. config BUSYBOX_SHELL_HUSH
  232. bool "Internal shell for embedded script support"
  233. default n
  234. # hush options
  235. # It's only needed to get "nice" menuconfig indenting.
  236. if BUSYBOX_SHELL_HUSH || BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
  237. config BUSYBOX_HUSH_BASH_COMPAT
  238. bool "bash-compatible extensions"
  239. default y
  240. depends on BUSYBOX_SHELL_HUSH
  241. config BUSYBOX_HUSH_BRACE_EXPANSION
  242. bool "Brace expansion"
  243. default y
  244. depends on BUSYBOX_HUSH_BASH_COMPAT
  245. help
  246. Enable {abc,def} extension.
  247. config BUSYBOX_HUSH_BASH_SOURCE_CURDIR
  248. bool "'source' and '.' builtins search current directory after $PATH"
  249. default n # do not encourage non-standard behavior
  250. depends on BUSYBOX_HUSH_BASH_COMPAT
  251. help
  252. This is not compliant with standards. Avoid if possible.
  253. config BUSYBOX_HUSH_LINENO_VAR
  254. bool "$LINENO variable (bashism)"
  255. default y
  256. depends on BUSYBOX_SHELL_HUSH
  257. config BUSYBOX_HUSH_INTERACTIVE
  258. bool "Interactive mode"
  259. default y
  260. depends on BUSYBOX_SHELL_HUSH
  261. help
  262. Enable interactive mode (prompt and command editing).
  263. Without this, hush simply reads and executes commands
  264. from stdin just like a shell script from a file.
  265. No prompt, no PS1/PS2 magic shell variables.
  266. config BUSYBOX_HUSH_SAVEHISTORY
  267. bool "Save command history to .hush_history"
  268. default y
  269. depends on BUSYBOX_HUSH_INTERACTIVE && BUSYBOX_FEATURE_EDITING_SAVEHISTORY
  270. config BUSYBOX_HUSH_JOB
  271. bool "Job control"
  272. default y
  273. depends on BUSYBOX_HUSH_INTERACTIVE
  274. help
  275. Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
  276. command (not entire shell), fg/bg builtins work. Without this option,
  277. "cmd &" still works by simply spawning a process and immediately
  278. prompting for next command (or executing next command in a script),
  279. but no separate process group is formed.
  280. config BUSYBOX_HUSH_TICK
  281. bool "Support command substitution"
  282. default y
  283. depends on BUSYBOX_SHELL_HUSH
  284. help
  285. Enable `command` and $(command).
  286. config BUSYBOX_HUSH_IF
  287. bool "Support if/then/elif/else/fi"
  288. default y
  289. depends on BUSYBOX_SHELL_HUSH
  290. config BUSYBOX_HUSH_LOOPS
  291. bool "Support for, while and until loops"
  292. default y
  293. depends on BUSYBOX_SHELL_HUSH
  294. config BUSYBOX_HUSH_CASE
  295. bool "Support case ... esac statement"
  296. default y
  297. depends on BUSYBOX_SHELL_HUSH
  298. help
  299. Enable case ... esac statement. +400 bytes.
  300. config BUSYBOX_HUSH_FUNCTIONS
  301. bool "Support funcname() { commands; } syntax"
  302. default y
  303. depends on BUSYBOX_SHELL_HUSH
  304. help
  305. Enable support for shell functions. +800 bytes.
  306. config BUSYBOX_HUSH_LOCAL
  307. bool "local builtin"
  308. default y
  309. depends on BUSYBOX_HUSH_FUNCTIONS
  310. help
  311. Enable support for local variables in functions.
  312. config BUSYBOX_HUSH_RANDOM_SUPPORT
  313. bool "Pseudorandom generator and $RANDOM variable"
  314. default y
  315. depends on BUSYBOX_SHELL_HUSH
  316. help
  317. Enable pseudorandom generator and dynamic variable "$RANDOM".
  318. Each read of "$RANDOM" will generate a new pseudorandom value.
  319. config BUSYBOX_HUSH_MODE_X
  320. bool "Support 'hush -x' option and 'set -x' command"
  321. default y
  322. depends on BUSYBOX_SHELL_HUSH
  323. help
  324. This instructs hush to print commands before execution.
  325. Adds ~300 bytes.
  326. config BUSYBOX_HUSH_ECHO
  327. bool "echo builtin"
  328. default y
  329. depends on BUSYBOX_SHELL_HUSH
  330. config BUSYBOX_HUSH_PRINTF
  331. bool "printf builtin"
  332. default y
  333. depends on BUSYBOX_SHELL_HUSH
  334. config BUSYBOX_HUSH_TEST
  335. bool "test builtin"
  336. default y
  337. depends on BUSYBOX_SHELL_HUSH
  338. config BUSYBOX_HUSH_HELP
  339. bool "help builtin"
  340. default y
  341. depends on BUSYBOX_SHELL_HUSH
  342. config BUSYBOX_HUSH_EXPORT
  343. bool "export builtin"
  344. default y
  345. depends on BUSYBOX_SHELL_HUSH
  346. config BUSYBOX_HUSH_EXPORT_N
  347. bool "Support 'export -n' option"
  348. default y
  349. depends on BUSYBOX_HUSH_EXPORT
  350. help
  351. export -n unexports variables. It is a bash extension.
  352. config BUSYBOX_HUSH_READONLY
  353. bool "readonly builtin"
  354. default y
  355. depends on BUSYBOX_SHELL_HUSH
  356. help
  357. Enable support for read-only variables.
  358. config BUSYBOX_HUSH_KILL
  359. bool "kill builtin (supports kill %jobspec)"
  360. default y
  361. depends on BUSYBOX_SHELL_HUSH
  362. config BUSYBOX_HUSH_WAIT
  363. bool "wait builtin"
  364. default y
  365. depends on BUSYBOX_SHELL_HUSH
  366. config BUSYBOX_HUSH_COMMAND
  367. bool "command builtin"
  368. default y
  369. depends on BUSYBOX_SHELL_HUSH
  370. config BUSYBOX_HUSH_TRAP
  371. bool "trap builtin"
  372. default y
  373. depends on BUSYBOX_SHELL_HUSH
  374. config BUSYBOX_HUSH_TYPE
  375. bool "type builtin"
  376. default y
  377. depends on BUSYBOX_SHELL_HUSH
  378. config BUSYBOX_HUSH_TIMES
  379. bool "times builtin"
  380. default y
  381. depends on BUSYBOX_SHELL_HUSH
  382. config BUSYBOX_HUSH_READ
  383. bool "read builtin"
  384. default y
  385. depends on BUSYBOX_SHELL_HUSH
  386. config BUSYBOX_HUSH_SET
  387. bool "set builtin"
  388. default y
  389. depends on BUSYBOX_SHELL_HUSH
  390. config BUSYBOX_HUSH_UNSET
  391. bool "unset builtin"
  392. default y
  393. depends on BUSYBOX_SHELL_HUSH
  394. config BUSYBOX_HUSH_ULIMIT
  395. bool "ulimit builtin"
  396. default y
  397. depends on BUSYBOX_SHELL_HUSH
  398. config BUSYBOX_HUSH_UMASK
  399. bool "umask builtin"
  400. default y
  401. depends on BUSYBOX_SHELL_HUSH
  402. config BUSYBOX_HUSH_GETOPTS
  403. bool "getopts builtin"
  404. default y
  405. depends on BUSYBOX_SHELL_HUSH
  406. config BUSYBOX_HUSH_MEMLEAK
  407. bool "memleak builtin (debugging)"
  408. default n
  409. depends on BUSYBOX_SHELL_HUSH
  410. endif # hush options
  411. comment "Options common to all shells"
  412. if BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  413. config BUSYBOX_FEATURE_SH_MATH
  414. bool "POSIX math support"
  415. default y
  416. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  417. help
  418. Enable math support in the shell via $((...)) syntax.
  419. config BUSYBOX_FEATURE_SH_MATH_64
  420. bool "Extend POSIX math support to 64 bit"
  421. default y
  422. depends on BUSYBOX_FEATURE_SH_MATH
  423. help
  424. Enable 64-bit math support in the shell. This will make the shell
  425. slightly larger, but will allow computation with very large numbers.
  426. This is not in POSIX, so do not rely on this in portable code.
  427. config BUSYBOX_FEATURE_SH_MATH_BASE
  428. bool "Support BASE#nnnn literals"
  429. default y
  430. depends on BUSYBOX_FEATURE_SH_MATH
  431. config BUSYBOX_FEATURE_SH_EXTRA_QUIET
  432. bool "Hide message on interactive shell startup"
  433. default y
  434. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  435. help
  436. Remove the busybox introduction when starting a shell.
  437. config BUSYBOX_FEATURE_SH_STANDALONE
  438. bool "Standalone shell"
  439. default n
  440. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  441. help
  442. This option causes busybox shells to use busybox applets
  443. in preference to executables in the PATH whenever possible. For
  444. example, entering the command 'ifconfig' into the shell would cause
  445. busybox to use the ifconfig busybox applet. Specifying the fully
  446. qualified executable name, such as '/sbin/ifconfig' will still
  447. execute the /sbin/ifconfig executable on the filesystem. This option
  448. is generally used when creating a statically linked version of busybox
  449. for use as a rescue shell, in the event that you screw up your system.
  450. This is implemented by re-execing /proc/self/exe (typically)
  451. with right parameters.
  452. However, there are drawbacks: it is problematic in chroot jails
  453. without mounted /proc, and ps/top may show command name as 'exe'
  454. for applets started this way.
  455. config BUSYBOX_FEATURE_SH_NOFORK
  456. bool "Run 'nofork' applets directly"
  457. default n
  458. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  459. help
  460. This option causes busybox shells to not execute typical
  461. fork/exec/wait sequence, but call <applet>_main directly,
  462. if possible. (Sometimes it is not possible: for example,
  463. this is not possible in pipes).
  464. This will be done only for some applets (those which are marked
  465. NOFORK in include/applets.h).
  466. This may significantly speed up some shell scripts.
  467. This feature is relatively new. Use with care. Report bugs
  468. to project mailing list.
  469. config BUSYBOX_FEATURE_SH_READ_FRAC
  470. bool "read -t N.NNN support (+110 bytes)"
  471. default y
  472. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  473. help
  474. Enable support for fractional second timeout in read builtin.
  475. config BUSYBOX_FEATURE_SH_HISTFILESIZE
  476. bool "Use $HISTFILESIZE"
  477. default y
  478. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  479. help
  480. This option makes busybox shells to use $HISTFILESIZE variable
  481. to set shell history size. Note that its max value is capped
  482. by "History size" setting in library tuning section.
  483. config BUSYBOX_FEATURE_SH_EMBEDDED_SCRIPTS
  484. bool "Embed scripts in the binary"
  485. default y
  486. depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
  487. help
  488. Allow scripts to be compressed and embedded in the busybox
  489. binary. The scripts should be placed in the 'embed' directory
  490. at build time. Like applets, scripts can be run as
  491. 'busybox SCRIPT ...' or by linking their name to the binary.
  492. This also allows applets to be implemented as scripts: place
  493. the script in 'applets_sh' and a stub C file containing
  494. configuration in the appropriate subsystem directory.
  495. endif # Options common to all shells
  496. endmenu