Config.src 11 KB

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