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