Config.in 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. #
  2. # For a description of the syntax of this configuration file,
  3. # see scripts/kbuild/config-language.txt.
  4. #
  5. config BUSYBOX_CONFIG_HAVE_DOT_CONFIG
  6. bool
  7. default y
  8. menu "Busybox Settings"
  9. menu "General Configuration"
  10. config BUSYBOX_CONFIG_NITPICK
  11. bool "See lots more (probably unnecessary) configuration options."
  12. default n
  13. help
  14. Some BusyBox applets have more configuration options than anyone
  15. will ever care about. To avoid drowining people in complexity, most
  16. of the applet features that can be set to a sane default value are
  17. hidden, unless you hit the above switch.
  18. This is better than to telling people to edit the busybox source
  19. code, but not by much.
  20. See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet
  21. You have been warned.
  22. config BUSYBOX_CONFIG_DESKTOP
  23. bool "Enable options for full-blown desktop systems"
  24. default n
  25. help
  26. Enable options and features which are not essential.
  27. Select this only if you plan to use busybox on full-blown
  28. desktop machine with common Linux distro, not on an embedded box.
  29. choice
  30. prompt "Buffer allocation policy"
  31. default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
  32. depends on BUSYBOX_CONFIG_NITPICK
  33. help
  34. There are 3 ways BusyBox can handle buffer allocations:
  35. - Use malloc. This costs code size for the call to xmalloc.
  36. - Put them on stack. For some very small machines with limited stack
  37. space, this can be deadly. For most folks, this works just fine.
  38. - Put them in BSS. This works beautifully for computers with a real
  39. MMU (and OS support), but wastes runtime RAM for uCLinux. This
  40. behavior was the only one available for BusyBox versions 0.48 and
  41. earlier.
  42. config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
  43. bool "Allocate with Malloc"
  44. config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
  45. bool "Allocate on the Stack"
  46. config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
  47. bool "Allocate in the .bss section"
  48. endchoice
  49. config BUSYBOX_CONFIG_SHOW_USAGE
  50. bool "Show terse applet usage messages"
  51. default y
  52. help
  53. All BusyBox applets will show help messages when invoked with
  54. wrong arguments. You can turn off printing these terse usage
  55. messages if you say no here.
  56. This will save you up to 7k.
  57. config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
  58. bool "Show verbose applet usage messages"
  59. default y
  60. select BUSYBOX_CONFIG_SHOW_USAGE
  61. help
  62. All BusyBox applets will show more verbose help messages when
  63. busybox is invoked with --help. This will add a lot of text to the
  64. busybox binary. In the default configuration, this will add about
  65. 13k, but it can add much more depending on your configuration.
  66. config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
  67. bool "Store applet usage messages in compressed form"
  68. default y
  69. depends on BUSYBOX_CONFIG_SHOW_USAGE
  70. help
  71. Store usage messages in compressed form, uncompress them on-the-fly
  72. when <applet> --help is called.
  73. If you have a really tiny busybox with few applets enabled (and
  74. bunzip2 isn't one of them), the overhead of the decompressor might
  75. be noticeable. Also, if you run executables directly from ROM
  76. and have very little memory, this might not be a win. Otherwise,
  77. you probably want this.
  78. config BUSYBOX_CONFIG_FEATURE_INSTALLER
  79. bool "Support --install [-s] to install applet links at runtime"
  80. default n
  81. help
  82. Enable 'busybox --install [-s]' support. This will allow you to use
  83. busybox at runtime to create hard links or symlinks for all the
  84. applets that are compiled into busybox.
  85. config BUSYBOX_CONFIG_LOCALE_SUPPORT
  86. bool "Enable locale support (system needs locale for this to work)"
  87. default n
  88. help
  89. Enable this if your system has locale support and you would like
  90. busybox to support locale settings.
  91. config BUSYBOX_CONFIG_GETOPT_LONG
  92. bool "Enable support for --long-options"
  93. default y
  94. help
  95. Enable this if you want busybox applets to use the gnu --long-option
  96. style, in addition to single character -a -b -c style options.
  97. config BUSYBOX_CONFIG_FEATURE_DEVPTS
  98. bool "Use the devpts filesystem for Unix98 PTYs"
  99. default y
  100. help
  101. Enable if you want BusyBox to use Unix98 PTY support. If enabled,
  102. busybox will use /dev/ptmx for the master side of the pseudoterminal
  103. and /dev/pts/<number> for the slave side. Otherwise, BSD style
  104. /dev/ttyp<number> will be used. To use this option, you should have
  105. devpts mounted.
  106. config BUSYBOX_CONFIG_FEATURE_CLEAN_UP
  107. bool "Clean up all memory before exiting (usually not needed)"
  108. default n
  109. depends on BUSYBOX_CONFIG_NITPICK
  110. help
  111. As a size optimization, busybox normally exits without explicitly
  112. freeing dynamically allocated memory or closing files. This saves
  113. space since the OS will clean up for us, but it can confuse debuggers
  114. like valgrind, which report tons of memory and resource leaks.
  115. Don't enable this unless you have a really good reason to clean
  116. things up manually.
  117. config BUSYBOX_CONFIG_FEATURE_PIDFILE
  118. bool "Support writing pidfiles"
  119. default y
  120. help
  121. This option makes some applets (e.g. crond, syslogd, inetd) write
  122. a pidfile in /var/run. Some applications rely on them.
  123. config BUSYBOX_CONFIG_FEATURE_SUID
  124. bool "Support for SUID/SGID handling"
  125. default y
  126. help
  127. With this option you can install the busybox binary belonging
  128. to root with the suid bit set, and it'll and it'll automatically drop
  129. priviledges for applets that don't need root access.
  130. If you're really paranoid and don't want to do this, build two
  131. busybox binaries with different applets in them (and the appropriate
  132. symlinks pointing to each binary), and only set the suid bit on the
  133. one that needs it. The applets currently marked to need the suid bit
  134. are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
  135. and vlock.
  136. config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
  137. bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
  138. default n if BUSYBOX_CONFIG_FEATURE_SUID
  139. depends on BUSYBOX_CONFIG_FEATURE_SUID
  140. help
  141. Allow the SUID / SGID state of an applet to be determined at runtime
  142. by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
  143. The format of this file is as follows:
  144. <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
  145. An example might help:
  146. [SUID]
  147. su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0
  148. su = ssx # exactly the same
  149. mount = sx- root.disk # applet mount can be run by root and members of group disk
  150. # and runs with euid=0
  151. cp = --- # disable applet cp for everyone
  152. The file has to be owned by user root, group root and has to be
  153. writeable only by root:
  154. (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
  155. The busybox executable has to be owned by user root, group
  156. root and has to be setuid root for this to work:
  157. (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
  158. Robert 'sandman' Griebl has more information here:
  159. <url: http://www.softforge.de/bb/suid.html >.
  160. config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET
  161. bool "Suppress warning message if /etc/busybox.conf is not readable"
  162. default n
  163. depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
  164. help
  165. /etc/busybox.conf should be readable by the user needing the SUID, check
  166. this option to avoid users to be notified about missing permissions.
  167. config BUSYBOX_CONFIG_SELINUX
  168. bool "Support NSA Security Enhanced Linux"
  169. default n
  170. help
  171. Enable support for SELinux in applets ls, ps, and id. Also provide
  172. the option of compiling in SELinux applets.
  173. If you do not have a complete SELinux userland installed, this stuff
  174. will not compile. Go visit
  175. http://www.nsa.gov/selinux/index.html
  176. to download the necessary stuff to allow busybox to compile with
  177. this option enabled. Specifially, libselinux 1.28 or better is
  178. directly required by busybox. If the installation is located in a
  179. non-standard directory, provide it by invoking make as follows:
  180. CFLAGS=-I<libselinux-include-path> \
  181. LDFLAGS=-L<libselinux-lib-path> \
  182. make
  183. Most people will leave this set to 'N'.
  184. config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
  185. bool "exec prefers applets"
  186. default y
  187. help
  188. This is an experimental option which directs applets about to
  189. call 'exec' to try and find an applicable busybox applet before
  190. searching the PATH. This is typically done by exec'ing
  191. /proc/self/exe.
  192. This may affect shell, find -exec, xargs and similar applets.
  193. They will use applets even if /bin/<applet> -> busybox link
  194. is missing (or is not a link to busybox). However, this causes
  195. problems in chroot jails without mounted /proc and with ps/top
  196. (command name can be shown as 'exe' for applets started this way).
  197. config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH
  198. string "Path to BusyBox executable"
  199. default "/proc/self/exe"
  200. help
  201. When Busybox applets need to run other busybox applets, BusyBox
  202. sometimes needs to exec() itself. When the /proc filesystem is
  203. mounted, /proc/self/exe always points to the currently running
  204. executable. If you haven't got /proc, set this to wherever you
  205. want to run BusyBox from.
  206. # These are auto-selected by other options
  207. config BUSYBOX_CONFIG_FEATURE_SYSLOG
  208. bool "Support for logging to syslog"
  209. default y
  210. help
  211. This option is auto-selected when you select any applet which may
  212. send its output to syslog. You do not need to select it manually.
  213. config BUSYBOX_CONFIG_FEATURE_HAVE_RPC
  214. bool "RPC support"
  215. default y
  216. help
  217. This is automatically selected if any of enabled applets need it.
  218. You do not need to select it manually.
  219. endmenu
  220. menu 'Build Options'
  221. config BUSYBOX_CONFIG_STATIC
  222. bool "Build BusyBox as a static binary (no shared libs)"
  223. default n
  224. help
  225. If you want to build a static BusyBox binary, which does not
  226. use or require any shared libraries, then enable this option.
  227. This can cause BusyBox to be considerably larger, so you should
  228. leave this option false unless you have a good reason (i.e.
  229. your target platform does not support shared libraries, or
  230. you are building an initrd which doesn't need anything but
  231. BusyBox, etc).
  232. Most people will leave this set to 'N'.
  233. config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
  234. bool "Build shared libbusybox"
  235. default n
  236. depends on !BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
  237. help
  238. Build a shared library libbusybox.so.N.N.N which contains all
  239. busybox code.
  240. This feature allows every applet to be built as a tiny
  241. separate executable. Enabling it for "one big busybox binary"
  242. approach serves no purpose and increases code size.
  243. You should almost certainly say "no" to this.
  244. ### config FEATURE_FULL_LIBBUSYBOX
  245. ### bool "Feature-complete libbusybox"
  246. ### default n if !FEATURE_SHARED_BUSYBOX
  247. ### depends on BUILD_LIBBUSYBOX
  248. ### help
  249. ### Build a libbusybox with the complete feature-set, disregarding
  250. ### the actually selected config.
  251. ###
  252. ### Normally, libbusybox will only contain the features which are
  253. ### used by busybox itself. If you plan to write a separate
  254. ### standalone application which uses libbusybox say 'Y'.
  255. ###
  256. ### Note: libbusybox is GPL, not LGPL, and exports no stable API that
  257. ### might act as a copyright barrier. We can and will modify the
  258. ### exported function set between releases (even minor version number
  259. ### changes), and happily break out-of-tree features.
  260. ###
  261. ### Say 'N' if in doubt.
  262. config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL
  263. bool "Produce a binary for each applet, linked against libbusybox"
  264. default n
  265. depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
  266. help
  267. If your CPU architecture doesn't allow for sharing text/rodata
  268. sections of running binaries, but allows for runtime dynamic
  269. libraries, this option will allow you to reduce memory footprint
  270. when you have many different applets running at once.
  271. If your CPU architecture allows for sharing text/rodata,
  272. having single binary is more optimal.
  273. Each applet will be a tiny program, dynamically linked
  274. against libbusybox.so.N.N.N.
  275. You need to have a working dynamic linker.
  276. config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
  277. bool "Produce additional busybox binary linked against libbusybox"
  278. default n
  279. depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
  280. help
  281. Build busybox, dynamically linked against libbusybox.so.N.N.N.
  282. You need to have a working dynamic linker.
  283. ### config BUILD_AT_ONCE
  284. ### bool "Compile all sources at once"
  285. ### default n
  286. ### help
  287. ### Normally each source-file is compiled with one invocation of
  288. ### the compiler.
  289. ### If you set this option, all sources are compiled at once.
  290. ### This gives the compiler more opportunities to optimize which can
  291. ### result in smaller and/or faster binaries.
  292. ###
  293. ### Setting this option will consume alot of memory, e.g. if you
  294. ### enable all applets with all features, gcc uses more than 300MB
  295. ### RAM during compilation of busybox.
  296. ###
  297. ### This option is most likely only beneficial for newer compilers
  298. ### such as gcc-4.1 and above.
  299. ###
  300. ### Say 'N' unless you know what you are doing.
  301. config BUSYBOX_CONFIG_LFS
  302. bool
  303. default y
  304. select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
  305. help
  306. If you want to build BusyBox with large file support, then enable
  307. this option. This will have no effect if your kernel or your C
  308. library lacks large file support for large files. Some of the
  309. programs that can benefit from large file support include dd, gzip,
  310. cp, mount, tar, and many others. If you want to access files larger
  311. than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
  312. endmenu
  313. menu 'Debugging Options'
  314. config BUSYBOX_CONFIG_DEBUG
  315. bool "Build BusyBox with extra Debugging symbols"
  316. default n
  317. help
  318. Say Y here if you wish to examine BusyBox internals while applets are
  319. running. This increases the size of the binary considerably, and
  320. should only be used when doing development. If you are doing
  321. development and want to debug BusyBox, answer Y.
  322. Most people should answer N.
  323. config BUSYBOX_CONFIG_WERROR
  324. bool "Abort compilation on any warning"
  325. default n
  326. help
  327. Selecting this will add -Werror to gcc command line.
  328. Most people should answer N.
  329. # Seems to be unused
  330. #config DEBUG_PESSIMIZE
  331. # bool "Disable compiler optimizations."
  332. # default n
  333. # depends on DEBUG
  334. # help
  335. # The compiler's optimization of source code can eliminate and reorder
  336. # code, resulting in an executable that's hard to understand when
  337. # stepping through it with a debugger. This switches it off, resulting
  338. # in a much bigger executable that more closely matches the source
  339. # code.
  340. choice
  341. prompt "Additional debugging library"
  342. default BUSYBOX_CONFIG_NO_DEBUG_LIB
  343. help
  344. Using an additional debugging library will make BusyBox become
  345. considerable larger and will cause it to run more slowly. You
  346. should always leave this option disabled for production use.
  347. dmalloc support:
  348. ----------------
  349. This enables compiling with dmalloc ( http://dmalloc.com/ )
  350. which is an excellent public domain mem leak and malloc problem
  351. detector. To enable dmalloc, before running busybox you will
  352. want to properly set your environment, for example:
  353. export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
  354. The 'debug=' value is generated using the following command
  355. dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
  356. -p check-fence -p check-heap -p check-lists -p check-blank \
  357. -p check-funcs -p realloc-copy -p allow-free-null
  358. Electric-fence support:
  359. -----------------------
  360. This enables compiling with Electric-fence support. Electric
  361. fence is another very useful malloc debugging library which uses
  362. your computer's virtual memory hardware to detect illegal memory
  363. accesses. This support will make BusyBox be considerable larger
  364. and run slower, so you should leave this option disabled unless
  365. you are hunting a hard to find memory problem.
  366. config BUSYBOX_CONFIG_NO_DEBUG_LIB
  367. bool "None"
  368. config BUSYBOX_CONFIG_DMALLOC
  369. bool "Dmalloc"
  370. config BUSYBOX_CONFIG_EFENCE
  371. bool "Electric-fence"
  372. endchoice
  373. config BUSYBOX_CONFIG_INCLUDE_SUSv2
  374. bool "Enable obsolete features removed before SUSv3?"
  375. default y
  376. help
  377. This option will enable backwards compatibility with SuSv2,
  378. specifically, old-style numeric options ('command -1 <file>')
  379. will be supported in head, tail, and fold. (Note: should
  380. affect renice too.)
  381. endmenu
  382. menu 'Installation Options'
  383. config BUSYBOX_CONFIG_INSTALL_NO_USR
  384. bool "Don't use /usr"
  385. default n
  386. help
  387. Disable use of /usr. Don't activate this option if you don't know
  388. that you really want this behaviour.
  389. choice
  390. prompt "Applets links"
  391. default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
  392. help
  393. Choose how you install applets links.
  394. config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
  395. bool "as soft-links"
  396. help
  397. Install applets as soft-links to the busybox binary. This needs some
  398. free inodes on the filesystem, but might help with filesystem
  399. generators that can't cope with hard-links.
  400. config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
  401. bool "as hard-links"
  402. help
  403. Install applets as hard-links to the busybox binary. This might count
  404. on a filesystem with few inodes.
  405. config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
  406. bool "as script wrappers"
  407. help
  408. Install applets as script wrappers that call the busybox binary.
  409. config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
  410. bool "not installed"
  411. depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE || BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
  412. help
  413. Do not install applet links. Useful when using the -install feature
  414. or a standalone shell for rescue purposes.
  415. endchoice
  416. choice
  417. prompt "/bin/sh applet link"
  418. default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
  419. depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
  420. help
  421. Choose how you install /bin/sh applet link.
  422. config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
  423. bool "as soft-link"
  424. help
  425. Install /bin/sh applet as soft-link to the busybox binary.
  426. config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
  427. bool "as hard-link"
  428. help
  429. Install /bin/sh applet as hard-link to the busybox binary.
  430. config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
  431. bool "as script wrapper"
  432. help
  433. Install /bin/sh applet as script wrapper that call the busybox binary.
  434. endchoice
  435. config BUSYBOX_CONFIG_PREFIX
  436. string "BusyBox installation prefix"
  437. default "./_install"
  438. help
  439. Define your directory to install BusyBox files/subdirs in.
  440. endmenu
  441. source package/busybox/config/libbb/Config.in
  442. endmenu
  443. comment "Applets"
  444. source package/busybox/config/archival/Config.in
  445. source package/busybox/config/coreutils/Config.in
  446. source package/busybox/config/console-tools/Config.in
  447. source package/busybox/config/debianutils/Config.in
  448. source package/busybox/config/editors/Config.in
  449. source package/busybox/config/findutils/Config.in
  450. source package/busybox/config/init/Config.in
  451. source package/busybox/config/loginutils/Config.in
  452. source package/busybox/config/e2fsprogs/Config.in
  453. source package/busybox/config/modutils/Config.in
  454. source package/busybox/config/util-linux/Config.in
  455. source package/busybox/config/miscutils/Config.in
  456. source package/busybox/config/networking/Config.in
  457. source package/busybox/config/procps/Config.in
  458. source package/busybox/config/shell/Config.in
  459. source package/busybox/config/sysklogd/Config.in
  460. source package/busybox/config/runit/Config.in
  461. source package/busybox/config/selinux/Config.in
  462. source package/busybox/config/ipsvd/Config.in