Config.src 13 KB

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