Config.src 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. #
  2. # For a description of the syntax of this configuration file,
  3. # see scripts/kbuild/config-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_FAST_TOP
  54. bool "Faster /proc scanning code (+100 bytes)"
  55. default n # all "fast or small" options default to small
  56. help
  57. This option makes top and ps ~20% faster (or 20% less CPU hungry),
  58. but code size is slightly bigger.
  59. config FEATURE_ETC_NETWORKS
  60. bool "Support /etc/networks"
  61. default n
  62. help
  63. Enable support for network names in /etc/networks. This is
  64. a rarely used feature which allows you to use names
  65. instead of IP/mask pairs in route command.
  66. config FEATURE_EDITING
  67. bool "Command line editing"
  68. default y
  69. help
  70. Enable line editing (mainly for shell command line).
  71. config FEATURE_EDITING_MAX_LEN
  72. int "Maximum length of input"
  73. range 128 8192
  74. default 1024
  75. depends on FEATURE_EDITING
  76. help
  77. Line editing code uses on-stack buffers for storage.
  78. You may want to decrease this parameter if your target machine
  79. benefits from smaller stack usage.
  80. config FEATURE_EDITING_VI
  81. bool "vi-style line editing commands"
  82. default n
  83. depends on FEATURE_EDITING
  84. help
  85. Enable vi-style line editing. In shells, this mode can be
  86. turned on and off with "set -o vi" and "set +o vi".
  87. config FEATURE_EDITING_HISTORY
  88. int "History size"
  89. # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
  90. range 0 9999
  91. default 255
  92. depends on FEATURE_EDITING
  93. help
  94. Specify command history size (0 - disable).
  95. config FEATURE_EDITING_SAVEHISTORY
  96. bool "History saving"
  97. default y
  98. depends on FEATURE_EDITING
  99. help
  100. Enable history saving in shells.
  101. config FEATURE_EDITING_SAVE_ON_EXIT
  102. bool "Save history on shell exit, not after every command"
  103. default n
  104. depends on FEATURE_EDITING_SAVEHISTORY
  105. help
  106. Save history on shell exit, not after every command.
  107. config FEATURE_REVERSE_SEARCH
  108. bool "Reverse history search"
  109. default y
  110. depends on FEATURE_EDITING
  111. help
  112. Enable readline-like Ctrl-R combination for reverse history search.
  113. Increases code by about 0.5k.
  114. config FEATURE_TAB_COMPLETION
  115. bool "Tab completion"
  116. default y
  117. depends on FEATURE_EDITING
  118. config FEATURE_USERNAME_COMPLETION
  119. bool "Username completion"
  120. default y
  121. depends on FEATURE_TAB_COMPLETION
  122. config FEATURE_EDITING_FANCY_PROMPT
  123. bool "Fancy shell prompts"
  124. default y
  125. depends on FEATURE_EDITING
  126. help
  127. Setting this option allows for prompts to use things like \w and
  128. \$ and escape codes.
  129. config FEATURE_EDITING_ASK_TERMINAL
  130. bool "Query cursor position from terminal"
  131. default n
  132. depends on FEATURE_EDITING
  133. help
  134. Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
  135. current cursor position. This information is used to make line
  136. editing more robust in some cases.
  137. If you are not sure whether your terminals respond to this code
  138. correctly, or want to save on code size (about 400 bytes),
  139. then do not turn this option on.
  140. config LOCALE_SUPPORT
  141. bool "Enable locale support (system needs locale for this to work)"
  142. default n
  143. help
  144. Enable this if your system has locale support and you would like
  145. busybox to support locale settings.
  146. config UNICODE_SUPPORT
  147. bool "Support Unicode"
  148. default y
  149. help
  150. This makes various applets aware that one byte is not
  151. one character on screen.
  152. Busybox aims to eventually work correctly with Unicode displays.
  153. Any older encodings are not guaranteed to work.
  154. Probably by the time when busybox will be fully Unicode-clean,
  155. other encodings will be mainly of historic interest.
  156. config UNICODE_USING_LOCALE
  157. bool "Use libc routines for Unicode (else uses internal ones)"
  158. default n
  159. depends on UNICODE_SUPPORT && LOCALE_SUPPORT
  160. help
  161. With this option on, Unicode support is implemented using libc
  162. routines. Otherwise, internal implementation is used.
  163. Internal implementation is smaller.
  164. config FEATURE_CHECK_UNICODE_IN_ENV
  165. bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
  166. default n
  167. depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
  168. help
  169. With this option on, Unicode support is activated
  170. only if locale-related variables have the value of the form
  171. "xxxx.utf8"
  172. Otherwise, Unicode support will be always enabled and active.
  173. config SUBST_WCHAR
  174. int "Character code to substitute unprintable characters with"
  175. depends on UNICODE_SUPPORT
  176. default 63
  177. help
  178. Typical values are 63 for '?' (works with any output device),
  179. 30 for ASCII substitute control code,
  180. 65533 (0xfffd) for Unicode replacement character.
  181. config LAST_SUPPORTED_WCHAR
  182. int "Range of supported Unicode characters"
  183. depends on UNICODE_SUPPORT
  184. default 767
  185. help
  186. Any character with Unicode value bigger than this is assumed
  187. to be non-printable on output device. Many applets replace
  188. such characters with substitution character.
  189. The idea is that many valid printable Unicode chars
  190. nevertheless are not displayed correctly. Think about
  191. combining charachers, double-wide hieroglyphs, obscure
  192. characters in dozens of ancient scripts...
  193. Many terminals, terminal emulators, xterms etc will fail
  194. to handle them correctly. Choose the smallest value
  195. which suits your needs.
  196. Typical values are:
  197. 126 - ASCII only
  198. 767 (0x2ff) - there are no combining chars in [0..767] range
  199. (the range includes Latin 1, Latin Ext. A and B),
  200. code is ~700 bytes smaller for this case.
  201. 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
  202. code is ~300 bytes smaller for this case.
  203. 12799 (0x31ff) - nearly all non-ideographic characters are
  204. available in [0..12799] range, including
  205. East Asian scripts like katakana, hiragana, hangul,
  206. bopomofo...
  207. 0 - off, any valid printable Unicode character will be printed.
  208. config UNICODE_COMBINING_WCHARS
  209. bool "Allow zero-width Unicode characters on output"
  210. default n
  211. depends on UNICODE_SUPPORT
  212. help
  213. With this option off, any Unicode char with width of 0
  214. is substituted on output.
  215. config UNICODE_WIDE_WCHARS
  216. bool "Allow wide Unicode characters on output"
  217. default n
  218. depends on UNICODE_SUPPORT
  219. help
  220. With this option off, any Unicode char with width > 1
  221. is substituted on output.
  222. config UNICODE_BIDI_SUPPORT
  223. bool "Bidirectional character-aware line input"
  224. default n
  225. depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
  226. help
  227. With this option on, right-to-left Unicode characters
  228. are treated differently on input (e.g. cursor movement).
  229. config UNICODE_NEUTRAL_TABLE
  230. bool "In bidi input, support non-ASCII neutral chars too"
  231. default n
  232. depends on UNICODE_BIDI_SUPPORT
  233. help
  234. In most cases it's enough to treat only ASCII non-letters
  235. (i.e. punctuation, numbers and space) as characters
  236. with neutral directionality.
  237. With this option on, more extensive (and bigger) table
  238. of neutral chars will be used.
  239. config UNICODE_PRESERVE_BROKEN
  240. bool "Make it possible to enter sequences of chars which are not Unicode"
  241. default n
  242. depends on UNICODE_SUPPORT
  243. help
  244. With this option on, on line-editing input (such as used by shells)
  245. invalid UTF-8 bytes are not substituted with the selected
  246. substitution character.
  247. For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
  248. at shell prompt will list file named 0xff (single char name
  249. with char value 255), not file named '?'.
  250. config FEATURE_NON_POSIX_CP
  251. bool "Non-POSIX, but safer, copying to special nodes"
  252. default y
  253. help
  254. With this option, "cp file symlink" will delete symlink
  255. and create a regular file. This does not conform to POSIX,
  256. but prevents a symlink attack.
  257. Similarly, "cp file device" will not send file's data
  258. to the device. (To do that, use "cat file >device")
  259. config FEATURE_VERBOSE_CP_MESSAGE
  260. bool "Give more precise messages when copy fails (cp, mv etc)"
  261. default n
  262. help
  263. Error messages with this feature enabled:
  264. $ cp file /does_not_exist/file
  265. cp: cannot create '/does_not_exist/file': Path does not exist
  266. $ cp file /vmlinuz/file
  267. cp: cannot stat '/vmlinuz/file': Path has non-directory component
  268. If this feature is not enabled, they will be, respectively:
  269. cp: cannot create '/does_not_exist/file': No such file or directory
  270. cp: cannot stat '/vmlinuz/file': Not a directory
  271. This will cost you ~60 bytes.
  272. config FEATURE_USE_SENDFILE
  273. bool "Use sendfile system call"
  274. default y
  275. select PLATFORM_LINUX
  276. help
  277. When enabled, busybox will use the kernel sendfile() function
  278. instead of read/write loops to copy data between file descriptors
  279. (for example, cp command does this a lot).
  280. If sendfile() doesn't work, copying code falls back to read/write
  281. loop. sendfile() was originally implemented for faster I/O
  282. from files to sockets, but since Linux 2.6.33 it was extended
  283. to work for many more file types.
  284. config FEATURE_COPYBUF_KB
  285. int "Copy buffer size, in kilobytes"
  286. range 1 1024
  287. default 4
  288. help
  289. Size of buffer used by cp, mv, install, wget etc.
  290. Buffers which are 4 kb or less will be allocated on stack.
  291. Bigger buffers will be allocated with mmap, with fallback to 4 kb
  292. stack buffer if mmap fails.
  293. config FEATURE_SKIP_ROOTFS
  294. bool "Skip rootfs in mount table"
  295. default y
  296. help
  297. Ignore rootfs entry in mount table.
  298. In Linux, kernel has a special filesystem, rootfs, which is initially
  299. mounted on /. It contains initramfs data, if kernel is configured
  300. to have one. Usually, another file system is mounted over / early
  301. in boot process, and therefore most tools which manipulate
  302. mount table, such as df, will skip rootfs entry.
  303. However, some systems do not mount anything on /.
  304. If you need to configure busybox for one of these systems,
  305. you may find it useful to turn this option off to make df show
  306. initramfs statistics.
  307. Otherwise, choose Y.
  308. config MONOTONIC_SYSCALL
  309. bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
  310. default y
  311. select PLATFORM_LINUX
  312. help
  313. Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
  314. time intervals (time, ping, traceroute etc need this).
  315. Probably requires Linux 2.6+. If not selected, gettimeofday
  316. will be used instead (which gives wrong results if date/time
  317. is reset).
  318. config IOCTL_HEX2STR_ERROR
  319. bool "Use ioctl names rather than hex values in error messages"
  320. default y
  321. help
  322. Use ioctl names rather than hex values in error messages
  323. (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
  324. saves about 1400 bytes.
  325. config FEATURE_HWIB
  326. bool "Support infiniband HW"
  327. default y
  328. help
  329. Support for printing infiniband addresses in network applets.