blob: 3a661e274ebe9873df86fda39343a8654db24a3f [file] [log] [blame]
Eric Andersenc9f20d92002-12-05 08:41:41 +00001#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
6mainmenu "BusyBox Configuration"
7
Eric Andersen068b6b02002-12-13 22:53:28 +00008config HAVE_DOT_CONFIG
9 bool
10 default y
11
Rob Landley9dc69132006-03-13 02:52:23 +000012menu "Busybox Settings"
Mike Frysinger72d59db2006-03-10 23:17:17 +000013
Eric Andersen23b51462002-12-05 21:25:20 +000014menu "General Configuration"
15
Rob Landleyd5b9b602006-05-31 23:23:42 +000016config CONFIG_NITPICK
17 bool "See lots more (probably unnecessary) configuration options."
18 default n
19 help
20 Some BusyBox applets have more configuration options than anyone
21 will ever care about. To avoid drowining people in complexity, most
22 of the applet features that can be set to a sane default value are
23 hidden, unless you hit the above switch.
24
25 This is better than to telling people to edit the busybox source
26 code, but not by much.
27
28 See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet
29
30 You have been warned.
31
Eric Andersenc9f20d92002-12-05 08:41:41 +000032choice
33 prompt "Buffer allocation policy"
Eric Andersen72d8e442003-08-05 02:18:25 +000034 default CONFIG_FEATURE_BUFFERS_USE_MALLOC
Rob Landleyc7ddefc2006-06-14 01:24:33 +000035 depends on CONFIG_NITPICK
Eric Andersenc9f20d92002-12-05 08:41:41 +000036 help
Eric Andersen53601822002-12-05 21:12:42 +000037 There are 3 ways BusyBox can handle buffer allocations:
38 - Use malloc. This costs code size for the call to xmalloc.
39 - Put them on stack. For some very small machines with limited stack
40 space, this can be deadly. For most folks, this works just fine.
41 - Put them in BSS. This works beautifully for computers with a real
42 MMU (and OS support), but wastes runtime RAM for uCLinux. This
43 behavior was the only one available for BusyBox versions 0.48 and
44 earlier.
Eric Andersenc9f20d92002-12-05 08:41:41 +000045
46config CONFIG_FEATURE_BUFFERS_USE_MALLOC
47 bool "Allocate with Malloc"
48
49config CONFIG_FEATURE_BUFFERS_GO_ON_STACK
50 bool "Allocate on the Stack"
51
52config CONFIG_FEATURE_BUFFERS_GO_IN_BSS
53 bool "Allocate in the .bss section"
54
55endchoice
56
Bernhard Reutner-Fischer81901a02006-03-31 18:43:55 +000057config CONFIG_SHOW_USAGE
58 bool "Show terse applet usage messages"
59 default y
60 help
61 All BusyBox applets will show help messages when invoked with
62 wrong arguments. You can turn off printing these terse usage
63 messages if you say no here.
64 This will save you up to 7k.
65
Eric Andersenc9f20d92002-12-05 08:41:41 +000066config CONFIG_FEATURE_VERBOSE_USAGE
67 bool "Show verbose applet usage messages"
68 default n
Bernhard Reutner-Fischer81901a02006-03-31 18:43:55 +000069 select CONFIG_SHOW_USAGE
Eric Andersenc9f20d92002-12-05 08:41:41 +000070 help
Eric Andersen53601822002-12-05 21:12:42 +000071 All BusyBox applets will show more verbose help messages when
Eric Andersen88c916b2003-10-22 09:58:56 +000072 busybox is invoked with --help. This will add a lot of text to the
Eric Andersen53601822002-12-05 21:12:42 +000073 busybox binary. In the default configuration, this will add about
74 13k, but it can add much more depending on your configuration.
Eric Andersenc9f20d92002-12-05 08:41:41 +000075
Rob Landley7e21d5f2006-04-27 23:34:46 +000076config CONFIG_FEATURE_COMPRESS_USAGE
77 bool "Store applet usage messages in compressed form"
78 default y
Rob Landleyc7ddefc2006-06-14 01:24:33 +000079 depends on CONFIG_SHOW_USAGE && CONFIG_NITPICK
Rob Landley7e21d5f2006-04-27 23:34:46 +000080 help
81 Store usage messages in compressed form, uncompress them on-the-fly
82 when <applet> --help is called.
83
Rob Landleyc7ddefc2006-06-14 01:24:33 +000084 If you have a really tiny busybox with few applets enabled (and
85 bunzip2 isn't one of them), the overhead of the decompressor might
86 be noticeable. Also, if you run executables directly from ROM
87 and have very little memory, this might not be a win. Otherwise,
88 you probably want this.
89
Eric Andersenc9f20d92002-12-05 08:41:41 +000090config CONFIG_FEATURE_INSTALLER
91 bool "Support --install [-s] to install applet links at runtime"
92 default n
93 help
Eric Andersen53601822002-12-05 21:12:42 +000094 Enable 'busybox --install [-s]' support. This will allow you to use
95 busybox at runtime to create hard links or symlinks for all the
96 applets that are compiled into busybox. This feature requires the
97 /proc filesystem.
Eric Andersenc9f20d92002-12-05 08:41:41 +000098
99config CONFIG_LOCALE_SUPPORT
100 bool "Enable locale support (system needs locale for this to work)"
101 default n
102 help
Eric Andersen88c916b2003-10-22 09:58:56 +0000103 Enable this if your system has locale support and you would like
Eric Andersen53601822002-12-05 21:12:42 +0000104 busybox to support locale settings.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000105
Bernhard Reutner-Fischer01d23ad2006-05-26 20:19:22 +0000106config CONFIG_GETOPT_LONG
Bernhard Reutner-Fischer74704192006-06-16 14:03:23 +0000107 bool
108 default y
109# bool "Enable support for --long-options"
110# default n
111# help
112# Enable this if you want busybox applets to use the gnu --long-option
113# style, in addition to single character -a -b -c style options.
Bernhard Reutner-Fischer01d23ad2006-05-26 20:19:22 +0000114
Eric Andersenc9f20d92002-12-05 08:41:41 +0000115config CONFIG_FEATURE_DEVPTS
116 bool "Use the devpts filesystem for Unix98 PTYs"
Rob Landleyc7ddefc2006-06-14 01:24:33 +0000117 default y
Eric Andersenc9f20d92002-12-05 08:41:41 +0000118 help
Eric Andersen53601822002-12-05 21:12:42 +0000119 Enable if you want BusyBox to use Unix98 PTY support. If enabled,
120 busybox will use /dev/ptmx for the master side of the pseudoterminal
121 and /dev/pts/<number> for the slave side. Otherwise, BSD style
122 /dev/ttyp<number> will be used. To use this option, you should have
Rob Landleyd5b9b602006-05-31 23:23:42 +0000123 devpts mounted.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000124
125config CONFIG_FEATURE_CLEAN_UP
126 bool "Clean up all memory before exiting (usually not needed)"
127 default n
Rob Landleyc7ddefc2006-06-14 01:24:33 +0000128 depends on CONFIG_NITPICK
Eric Andersenc9f20d92002-12-05 08:41:41 +0000129 help
Rob Landley1ab4c3d2006-02-08 18:50:17 +0000130 As a size optimization, busybox normally exits without explicitly
131 freeing dynamically allocated memory or closing files. This saves
132 space since the OS will clean up for us, but it can confuse debuggers
133 like valgrind, which report tons of memory and resource leaks.
134
135 Don't enable this unless you have a really good reason to clean
Eric Andersene5642112003-07-14 19:37:08 +0000136 things up manually.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000137
138config CONFIG_FEATURE_SUID
139 bool "Support for SUID/SGID handling"
140 default n
141 help
Rob Landleyd5b9b602006-05-31 23:23:42 +0000142 With this option you can install the busybox binary belonging
143 to root with the suid bit set, and it'll and it'll automatically drop
144 priviledges for applets that don't need root access.
145
146 If you're really paranoid and don't want to do this, build two
147 busybox binaries with different applets in them (and the appropriate
148 symlinks pointing to each binary), and only set the suid bit on the
149 one that needs it. The applets currently marked to need the suid bit
150 are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
151 and vlock.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000152
153config CONFIG_FEATURE_SUID_CONFIG
154 bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
Eric Andersen5043ea12005-06-23 19:15:40 +0000155 default n if CONFIG_FEATURE_SUID
Eric Andersenc9f20d92002-12-05 08:41:41 +0000156 depends on CONFIG_FEATURE_SUID
157 help
Rob Landleyd5b9b602006-05-31 23:23:42 +0000158 Allow the SUID / SGID state of an applet to be determined at runtime
159 by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
160 The format of this file is as follows:
Eric Andersene5272072003-07-22 22:15:21 +0000161
162 <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
Eric Andersen5043ea12005-06-23 19:15:40 +0000163
Eric Andersene5272072003-07-22 22:15:21 +0000164 An example might help:
165
166 [SUID]
167 su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0
168 su = ssx # exactly the same
169
170 mount = sx- root.disk # applet mount can be run by root and members of group disk
171 # and runs with euid=0
172
173 cp = --- # disable applet cp for everyone
174
Rob Landleyfdc4c202005-04-29 19:48:29 +0000175 The file has to be owned by user root, group root and has to be
176 writeable only by root:
177 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
178 The busybox executable has to be owned by user root, group
179 root and has to be setuid root for this to work:
180 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
181
Eric Andersene5272072003-07-22 22:15:21 +0000182 Robert 'sandman' Griebl has more information here:
183 <url: http://www.softforge.de/bb/suid.html >.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000184
185config CONFIG_FEATURE_SUID_CONFIG_QUIET
186 bool "Suppress warning message if /etc/busybox.conf is not readable"
Rob Landleyd5b9b602006-05-31 23:23:42 +0000187 default y
Eric Andersenc9f20d92002-12-05 08:41:41 +0000188 depends on CONFIG_FEATURE_SUID_CONFIG
189 help
Eric Andersene5272072003-07-22 22:15:21 +0000190 /etc/busybox.conf should be readable by the user needing the SUID, check
191 this option to avoid users to be notified about missing permissions.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000192
Eric Andersen9e480452003-07-03 10:07:04 +0000193config CONFIG_SELINUX
194 bool "Support NSA Security Enhanced Linux"
195 default n
196 help
Rob Landley24b0a952006-03-29 15:35:23 +0000197 Enable support for SELinux in applets ls, ps, and id. Also provide
198 the option of compiling in SELinux applets.
Eric Andersen9e480452003-07-03 10:07:04 +0000199
Rob Landley24b0a952006-03-29 15:35:23 +0000200 If you do not have a complete SELinux userland installed, this stuff
201 will not compile. Go visit
Eric Andersen31d898f2004-02-05 00:18:26 +0000202 http://www.nsa.gov/selinux/index.html
Rob Landley24b0a952006-03-29 15:35:23 +0000203 to download the necessary stuff to allow busybox to compile with
204 this option enabled. Specifially, libselinux 1.28 or better is
205 directly required by busybox. If the installation is located in a
206 non-standard directory, provide it by invoking make as follows:
207 CFLAGS=-I<libselinux-include-path> \
208 LDFLAGS=-L<libselinux-lib-path> \
209 make
Eric Andersen31d898f2004-02-05 00:18:26 +0000210
211 Most people will leave this set to 'N'.
212
Rob Landleyc7ddefc2006-06-14 01:24:33 +0000213config CONFIG_BUSYBOX_EXEC_PATH
214 string "Path to BusyBox executable"
215 default "/proc/self/exe"
216 help
217 When Busybox applets need to run other busybox applets, BusyBox
218 sometimes needs to exec() itself. When the /proc filesystem is
219 mounted, /proc/self/exe always points to the currently running
220 executable. If you haven't got /proc, set this to wherever you
221 want to run BusyBox from.
222
Eric Andersenc9f20d92002-12-05 08:41:41 +0000223endmenu
224
225menu 'Build Options'
226
Eric Andersene5272072003-07-22 22:15:21 +0000227config CONFIG_STATIC
Eric Andersenc9f20d92002-12-05 08:41:41 +0000228 bool "Build BusyBox as a static binary (no shared libs)"
229 default n
230 help
Eric Andersenc7bda1c2004-03-15 08:29:22 +0000231 If you want to build a static BusyBox binary, which does not
232 use or require any shared libraries, then enable this option.
Eric Andersen88c916b2003-10-22 09:58:56 +0000233 This can cause BusyBox to be considerably larger, so you should
Eric Andersene5272072003-07-22 22:15:21 +0000234 leave this option false unless you have a good reason (i.e.
235 your target platform does not support shared libraries, or
236 you are building an initrd which doesn't need anything but
237 BusyBox, etc).
Eric Andersenc9f20d92002-12-05 08:41:41 +0000238
Eric Andersene5272072003-07-22 22:15:21 +0000239 Most people will leave this set to 'N'.
240
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000241config CONFIG_BUILD_LIBBUSYBOX
242 bool "Build shared libbusybox"
Rob Landleyc7ddefc2006-06-14 01:24:33 +0000243 default n
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000244 help
245 Build a shared library libbusybox.so which contains all
246 libraries used inside busybox.
247
Rob Landleyd6e50832006-06-15 15:04:53 +0000248 This is an experimental feature intended to support the upcoming
249 "make standalone" mode. Enabling it against the one big busybox
250 binary serves no purpose (and increases the size). You should
251 almost certainly say "no" to this right now.
252
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000253config CONFIG_FEATURE_FULL_LIBBUSYBOX
254 bool "Feature-complete libbusybox"
255 default n if !CONFIG_FEATURE_SHARED_BUSYBOX
256 depends on CONFIG_BUILD_LIBBUSYBOX
257 help
258 Build a libbusybox with the complete feature-set, disregarding
259 the actually selected config.
260
261 Normally, libbusybox will only contain the features which are
262 used by busybox itself. If you plan to write a separate
263 standalone application which uses libbusybox say 'Y'.
264
Rob Landley9e275e32006-01-31 03:45:26 +0000265 Note: libbusybox is GPL, not LGPL, and exports no stable API that
266 might act as a copyright barrier. We can and will modify the
267 exported function set between releases (even minor version number
268 changes), and happily break out-of-tree features.
269
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000270 Say 'N' if in doubt.
271
272config CONFIG_FEATURE_SHARED_BUSYBOX
273 bool "Use shared libbusybox for busybox"
274 default y if CONFIG_BUILD_LIBBUSYBOX
275 depends on !CONFIG_STATIC && CONFIG_BUILD_LIBBUSYBOX
276 help
277 Use libbusybox.so also for busybox itself.
278 You need to have a working dynamic linker to use this variant.
279
Eric Andersene5272072003-07-22 22:15:21 +0000280config CONFIG_LFS
Eric Andersenc7bda1c2004-03-15 08:29:22 +0000281 bool "Build with Large File Support (for accessing files > 2 GB)"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000282 default n
Eric Andersenf086ed82004-05-25 11:30:22 +0000283 select FDISK_SUPPORT_LARGE_DISKS
Eric Andersenc9f20d92002-12-05 08:41:41 +0000284 help
285 If you want to build BusyBox with large file support, then enable
286 this option. This will have no effect if your kernel or your C
287 library lacks large file support for large files. Some of the
288 programs that can benefit from large file support include dd, gzip,
289 cp, mount, tar, and many others. If you want to access files larger
290 than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
291
Bernhard Reutner-Fischer2aba3952006-01-24 16:14:14 +0000292config CONFIG_BUILD_AT_ONCE
293 bool "Compile all sources at once"
294 default n
295 help
296 Normally each source-file is compiled with one invocation of
297 the compiler.
298 If you set this option, all sources are compiled at once.
299 This gives the compiler more opportunities to optimize which can
300 result in smaller and/or faster binaries.
301
302 Setting this option will consume alot of memory, e.g. if you
303 enable all applets with all features, gcc uses more than 300MB
304 RAM during compilation of busybox.
305
306 This option is most likely only beneficial for newer compilers
307 such as gcc-4.1 and above.
308
309 Say 'N' unless you know what you are doing.
310
Eric Andersenc9f20d92002-12-05 08:41:41 +0000311endmenu
312
Eric Andersenc9f20d92002-12-05 08:41:41 +0000313menu 'Debugging Options'
314
Eric Andersene5272072003-07-22 22:15:21 +0000315config CONFIG_DEBUG
Rob Landleyc503df52006-05-09 22:08:56 +0000316 bool "Build BusyBox with extra Debugging symbols"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000317 default n
318 help
Rob Landleyc503df52006-05-09 22:08:56 +0000319 Say Y here if you wish to examine BusyBox internals while applets are
320 running. This increases the size of the binary considerably, and
321 should only be used when doing development. If you are doing
322 development and want to debug BusyBox, answer Y.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000323
Eric Andersenf086ed82004-05-25 11:30:22 +0000324 Most people should answer N.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000325
Rob Landleyc503df52006-05-09 22:08:56 +0000326config CONFIG_DEBUG_PESSIMIZE
327 bool "Disable compiler optimizations."
328 default n
329 depends on CONFIG_DEBUG
330 help
331 The compiler's optimization of source code can eliminate and reorder
332 code, resulting in an executable that's hard to understand when
333 stepping through it with a debugger. This switches it off, resulting
334 in a much bigger executable that more closely matches the source
335 code.
336
Eric Andersenf086ed82004-05-25 11:30:22 +0000337choice
338 prompt "Additional debugging library"
339 default CONFIG_NO_DEBUG_LIB
340 depends on CONFIG_DEBUG
Eric Andersenc9f20d92002-12-05 08:41:41 +0000341 help
Eric Andersenf086ed82004-05-25 11:30:22 +0000342 Using an additional debugging library will make BusyBox become
343 considerable larger and will cause it to run more slowly. You
344 should always leave this option disabled for production use.
345
346 dmalloc support:
347 ----------------
Eric Andersenc9f20d92002-12-05 08:41:41 +0000348 This enables compiling with dmalloc ( http://dmalloc.com/ )
349 which is an excellent public domain mem leak and malloc problem
350 detector. To enable dmalloc, before running busybox you will
351 want to properly set your environment, for example:
352 export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
353 The 'debug=' value is generated using the following command
354 dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
355 -p check-fence -p check-heap -p check-lists -p check-blank \
356 -p check-funcs -p realloc-copy -p allow-free-null
357
Eric Andersenf086ed82004-05-25 11:30:22 +0000358 Electric-fence support:
359 -----------------------
Eric Andersenc9f20d92002-12-05 08:41:41 +0000360 This enables compiling with Electric-fence support. Electric
Eric Andersen88c916b2003-10-22 09:58:56 +0000361 fence is another very useful malloc debugging library which uses
Eric Andersenc7bda1c2004-03-15 08:29:22 +0000362 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
Eric Andersenc9f20d92002-12-05 08:41:41 +0000365 you are hunting a hard to find memory problem.
366
Eric Andersenf086ed82004-05-25 11:30:22 +0000367
368config CONFIG_NO_DEBUG_LIB
369 bool "None"
370
371config CONFIG_DMALLOC
372 bool "Dmalloc"
373
374config CONFIG_EFENCE
375 bool "Electric-fence"
376
377endchoice
378
Rob Landleyf8fd4db2006-01-30 01:30:39 +0000379config CONFIG_DEBUG_YANK_SUSv2
380 bool "Disable obsolete features removed before SUSv3?"
381 default y
382 help
Bernhard Reutner-Fischera1bccc02006-04-02 20:17:55 +0000383 This option will disable backwards compatibility with SuSv2,
Rob Landleyf8fd4db2006-01-30 01:30:39 +0000384 specifically, old-style numeric options ('command -1 <file>')
385 will not be supported in head, tail, and fold. (Note: should
386 yank from renice too.)
Eric Andersenf086ed82004-05-25 11:30:22 +0000387
Eric Andersenc9f20d92002-12-05 08:41:41 +0000388endmenu
Mike Frysinger72d59db2006-03-10 23:17:17 +0000389
390menu 'Installation Options'
391
392config CONFIG_INSTALL_NO_USR
393 bool "Don't use /usr"
394 default n
395 help
396 Disable use of /usr. Don't activate this option if you don't know
397 that you really want this behaviour.
398
399choice
400 prompt "Applets links"
401 default CONFIG_INSTALL_APPLET_SYMLINKS
402 help
403 Choose how you install applets links.
404
405config CONFIG_INSTALL_APPLET_SYMLINKS
406 bool "as soft-links"
407 help
408 Install applets as soft-links to the busybox binary. This needs some
409 free inodes on the filesystem, but might help with filesystem
410 generators that can't cope with hard-links.
411
412config CONFIG_INSTALL_APPLET_HARDLINKS
413 bool "as hard-links"
414 help
415 Install applets as hard-links to the busybox binary. This might count
416 on a filesystem with few inodes.
417
418config CONFIG_INSTALL_APPLET_DONT
419 bool
420 prompt "not installed"
421 depends on CONFIG_FEATURE_INSTALLER || CONFIG_FEATURE_SH_STANDALONE_SHELL
422 help
423 Do not install applets links. Usefull when using the -install feature
424 or a standalone shell for rescue pruposes.
425
426endchoice
427
428config PREFIX
429 string "BusyBox installation prefix"
430 default "./_install"
431 help
432 Define your directory to install BusyBox files/subdirs in.
433
434endmenu
435
436source libbb/Config.in
437
Rob Landley9dc69132006-03-13 02:52:23 +0000438endmenu
439
Mike Frysinger72d59db2006-03-10 23:17:17 +0000440comment "Applets"
441
442source archival/Config.in
443source coreutils/Config.in
444source console-tools/Config.in
445source debianutils/Config.in
446source editors/Config.in
447source findutils/Config.in
448source init/Config.in
449source loginutils/Config.in
450source e2fsprogs/Config.in
451source modutils/Config.in
452source util-linux/Config.in
453source miscutils/Config.in
454source networking/Config.in
455source procps/Config.in
456source shell/Config.in
457source sysklogd/Config.in