Config.src 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  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_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_ETC_SERVICES
  67. bool "Consult /etc/services even for well-known ports"
  68. default n
  69. help
  70. Look up e.g. "telnet" and "http" in /etc/services file
  71. instead of assuming ports 23 and 80.
  72. This is almost never necessary (everybody uses standard ports),
  73. and it makes sense to avoid reading this file.
  74. If you disable this option, in the cases where port is explicitly
  75. specified as a service name (e.g. "telnet HOST PORTNAME"),
  76. it will still be looked up in /etc/services.
  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. config FEATURE_USERNAME_COMPLETION
  130. bool "Username completion"
  131. default y
  132. depends on FEATURE_TAB_COMPLETION
  133. config FEATURE_EDITING_FANCY_PROMPT
  134. bool "Fancy shell prompts"
  135. default y
  136. depends on FEATURE_EDITING
  137. help
  138. Setting this option allows for prompts to use things like \w and
  139. \$ and escape codes.
  140. config FEATURE_EDITING_WINCH
  141. bool "Enable automatic tracking of window size changes"
  142. default y
  143. depends on FEATURE_EDITING
  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. help
  291. When enabled, busybox will use the kernel sendfile() function
  292. instead of read/write loops to copy data between file descriptors
  293. (for example, cp command does this a lot).
  294. If sendfile() doesn't work, copying code falls back to read/write
  295. loop. sendfile() was originally implemented for faster I/O
  296. from files to sockets, but since Linux 2.6.33 it was extended
  297. to work for many more file types.
  298. config FEATURE_COPYBUF_KB
  299. int "Copy buffer size, in kilobytes"
  300. range 1 1024
  301. default 4
  302. help
  303. Size of buffer used by cp, mv, install, wget etc.
  304. Buffers which are 4 kb or less will be allocated on stack.
  305. Bigger buffers will be allocated with mmap, with fallback to 4 kb
  306. stack buffer if mmap fails.
  307. config FEATURE_SKIP_ROOTFS
  308. bool "Skip rootfs in mount table"
  309. default y
  310. help
  311. Ignore rootfs entry in mount table.
  312. In Linux, kernel has a special filesystem, rootfs, which is initially
  313. mounted on /. It contains initramfs data, if kernel is configured
  314. to have one. Usually, another file system is mounted over / early
  315. in boot process, and therefore most tools which manipulate
  316. mount table, such as df, will skip rootfs entry.
  317. However, some systems do not mount anything on /.
  318. If you need to configure busybox for one of these systems,
  319. you may find it useful to turn this option off to make df show
  320. initramfs statistics.
  321. Otherwise, choose Y.
  322. config MONOTONIC_SYSCALL
  323. bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
  324. default y
  325. help
  326. Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
  327. time intervals (time, ping, traceroute etc need this).
  328. Probably requires Linux 2.6+. If not selected, gettimeofday
  329. will be used instead (which gives wrong results if date/time
  330. is reset).
  331. config IOCTL_HEX2STR_ERROR
  332. bool "Use ioctl names rather than hex values in error messages"
  333. default y
  334. help
  335. Use ioctl names rather than hex values in error messages
  336. (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
  337. saves about 1400 bytes.
  338. config FEATURE_HWIB
  339. bool "Support infiniband HW"
  340. default y
  341. help
  342. Support for printing infiniband addresses in network applets.