2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
6 mainmenu "BusyBox Configuration"
12 menu "Busybox Settings"
14 menu "General Configuration"
17 bool "See lots more (probably unnecessary) configuration options."
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.
25 This is better than to telling people to edit the busybox source
26 code, but not by much.
28 See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet
33 prompt "Buffer allocation policy"
34 default CONFIG_FEATURE_BUFFERS_USE_MALLOC
36 There are 3 ways BusyBox can handle buffer allocations:
37 - Use malloc. This costs code size for the call to xmalloc.
38 - Put them on stack. For some very small machines with limited stack
39 space, this can be deadly. For most folks, this works just fine.
40 - Put them in BSS. This works beautifully for computers with a real
41 MMU (and OS support), but wastes runtime RAM for uCLinux. This
42 behavior was the only one available for BusyBox versions 0.48 and
45 config CONFIG_FEATURE_BUFFERS_USE_MALLOC
46 bool "Allocate with Malloc"
48 config CONFIG_FEATURE_BUFFERS_GO_ON_STACK
49 bool "Allocate on the Stack"
51 config CONFIG_FEATURE_BUFFERS_GO_IN_BSS
52 bool "Allocate in the .bss section"
56 config CONFIG_SHOW_USAGE
57 bool "Show terse applet usage messages"
60 All BusyBox applets will show help messages when invoked with
61 wrong arguments. You can turn off printing these terse usage
62 messages if you say no here.
63 This will save you up to 7k.
65 config CONFIG_FEATURE_VERBOSE_USAGE
66 bool "Show verbose applet usage messages"
68 select CONFIG_SHOW_USAGE
70 All BusyBox applets will show more verbose help messages when
71 busybox is invoked with --help. This will add a lot of text to the
72 busybox binary. In the default configuration, this will add about
73 13k, but it can add much more depending on your configuration.
75 config CONFIG_FEATURE_COMPRESS_USAGE
76 bool "Store applet usage messages in compressed form"
78 depends on CONFIG_SHOW_USAGE
80 Store usage messages in compressed form, uncompress them on-the-fly
81 when <applet> --help is called.
83 config CONFIG_FEATURE_INSTALLER
84 bool "Support --install [-s] to install applet links at runtime"
87 Enable 'busybox --install [-s]' support. This will allow you to use
88 busybox at runtime to create hard links or symlinks for all the
89 applets that are compiled into busybox. This feature requires the
92 config CONFIG_LOCALE_SUPPORT
93 bool "Enable locale support (system needs locale for this to work)"
96 Enable this if your system has locale support and you would like
97 busybox to support locale settings.
99 config CONFIG_GETOPT_LONG
100 bool "Enable support for --long-options"
102 depends on !CONFIG_NO_GETOPT_LONG
104 Enable this if you want busybox applets to use the gnu --long-option
105 style, in addition to single character -a -b -c style options.
107 config CONFIG_FEATURE_DEVPTS
108 bool "Use the devpts filesystem for Unix98 PTYs"
109 default y if CONFIG_FEATURE_DEVFS
111 Enable if you want BusyBox to use Unix98 PTY support. If enabled,
112 busybox will use /dev/ptmx for the master side of the pseudoterminal
113 and /dev/pts/<number> for the slave side. Otherwise, BSD style
114 /dev/ttyp<number> will be used. To use this option, you should have
117 config CONFIG_FEATURE_CLEAN_UP
118 bool "Clean up all memory before exiting (usually not needed)"
121 As a size optimization, busybox normally exits without explicitly
122 freeing dynamically allocated memory or closing files. This saves
123 space since the OS will clean up for us, but it can confuse debuggers
124 like valgrind, which report tons of memory and resource leaks.
126 Don't enable this unless you have a really good reason to clean
129 config CONFIG_FEATURE_SUID
130 bool "Support for SUID/SGID handling"
133 With this option you can install the busybox binary belonging
134 to root with the suid bit set, and it'll and it'll automatically drop
135 priviledges for applets that don't need root access.
137 If you're really paranoid and don't want to do this, build two
138 busybox binaries with different applets in them (and the appropriate
139 symlinks pointing to each binary), and only set the suid bit on the
140 one that needs it. The applets currently marked to need the suid bit
141 are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
144 config CONFIG_FEATURE_SUID_CONFIG
145 bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
146 default n if CONFIG_FEATURE_SUID
147 depends on CONFIG_FEATURE_SUID
149 Allow the SUID / SGID state of an applet to be determined at runtime
150 by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
151 The format of this file is as follows:
153 <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
155 An example might help:
158 su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0
159 su = ssx # exactly the same
161 mount = sx- root.disk # applet mount can be run by root and members of group disk
162 # and runs with euid=0
164 cp = --- # disable applet cp for everyone
166 The file has to be owned by user root, group root and has to be
167 writeable only by root:
168 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
169 The busybox executable has to be owned by user root, group
170 root and has to be setuid root for this to work:
171 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
173 Robert 'sandman' Griebl has more information here:
174 <url: http://www.softforge.de/bb/suid.html >.
176 config CONFIG_FEATURE_SUID_CONFIG_QUIET
177 bool "Suppress warning message if /etc/busybox.conf is not readable"
179 depends on CONFIG_FEATURE_SUID_CONFIG
181 /etc/busybox.conf should be readable by the user needing the SUID, check
182 this option to avoid users to be notified about missing permissions.
184 config CONFIG_SELINUX
185 bool "Support NSA Security Enhanced Linux"
188 Enable support for SELinux in applets ls, ps, and id. Also provide
189 the option of compiling in SELinux applets.
191 If you do not have a complete SELinux userland installed, this stuff
192 will not compile. Go visit
193 http://www.nsa.gov/selinux/index.html
194 to download the necessary stuff to allow busybox to compile with
195 this option enabled. Specifially, libselinux 1.28 or better is
196 directly required by busybox. If the installation is located in a
197 non-standard directory, provide it by invoking make as follows:
198 CFLAGS=-I<libselinux-include-path> \
199 LDFLAGS=-L<libselinux-lib-path> \
202 Most people will leave this set to 'N'.
209 bool "Build BusyBox as a static binary (no shared libs)"
212 If you want to build a static BusyBox binary, which does not
213 use or require any shared libraries, then enable this option.
214 This can cause BusyBox to be considerably larger, so you should
215 leave this option false unless you have a good reason (i.e.
216 your target platform does not support shared libraries, or
217 you are building an initrd which doesn't need anything but
220 Most people will leave this set to 'N'.
222 config CONFIG_BUILD_LIBBUSYBOX
223 bool "Build shared libbusybox"
226 Build a shared library libbusybox.so which contains all
227 libraries used inside busybox.
229 config CONFIG_FEATURE_FULL_LIBBUSYBOX
230 bool "Feature-complete libbusybox"
231 default n if !CONFIG_FEATURE_SHARED_BUSYBOX
232 depends on CONFIG_BUILD_LIBBUSYBOX
234 Build a libbusybox with the complete feature-set, disregarding
235 the actually selected config.
237 Normally, libbusybox will only contain the features which are
238 used by busybox itself. If you plan to write a separate
239 standalone application which uses libbusybox say 'Y'.
241 Note: libbusybox is GPL, not LGPL, and exports no stable API that
242 might act as a copyright barrier. We can and will modify the
243 exported function set between releases (even minor version number
244 changes), and happily break out-of-tree features.
248 config CONFIG_FEATURE_SHARED_BUSYBOX
249 bool "Use shared libbusybox for busybox"
250 default y if CONFIG_BUILD_LIBBUSYBOX
251 depends on !CONFIG_STATIC && CONFIG_BUILD_LIBBUSYBOX
253 Use libbusybox.so also for busybox itself.
254 You need to have a working dynamic linker to use this variant.
257 bool "Build with Large File Support (for accessing files > 2 GB)"
259 select FDISK_SUPPORT_LARGE_DISKS
261 If you want to build BusyBox with large file support, then enable
262 this option. This will have no effect if your kernel or your C
263 library lacks large file support for large files. Some of the
264 programs that can benefit from large file support include dd, gzip,
265 cp, mount, tar, and many others. If you want to access files larger
266 than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
268 config USING_CROSS_COMPILER
269 bool "Do you want to build BusyBox with a Cross Compiler?"
272 Do you want to build BusyBox with a Cross Compiler? If so,
273 then enable this option. Otherwise leave it set to 'N'.
275 config CROSS_COMPILER_PREFIX
276 string "Cross Compiler prefix"
277 default "/usr/i386-linux-uclibc/bin/i386-uclibc-"
278 depends on USING_CROSS_COMPILER
280 If you want to build BusyBox with a cross compiler, then you
281 will need to set this to the cross-compiler prefix. For example,
282 if my cross-compiler is /usr/i386-linux-uclibc/bin/i386-uclibc-gcc
283 then I would enter '/usr/i386-linux-uclibc/bin/i386-uclibc-' here,
284 which will ensure the correct compiler is used.
286 config EXTRA_CFLAGS_OPTIONS
287 string "Any extra CFLAGS options for the compiler?"
290 Do you want to pass any extra CFLAGS options to the compiler as
291 you build BusyBox? If so, this is the option for you... For example,
292 if you want to add some simple compiler switches (like -march=i686),
293 or check for warnings using -Werror, just those options here.
295 config CONFIG_BUILD_AT_ONCE
296 bool "Compile all sources at once"
299 Normally each source-file is compiled with one invocation of
301 If you set this option, all sources are compiled at once.
302 This gives the compiler more opportunities to optimize which can
303 result in smaller and/or faster binaries.
305 Setting this option will consume alot of memory, e.g. if you
306 enable all applets with all features, gcc uses more than 300MB
307 RAM during compilation of busybox.
309 This option is most likely only beneficial for newer compilers
310 such as gcc-4.1 and above.
312 Say 'N' unless you know what you are doing.
316 menu 'Debugging Options'
319 bool "Build BusyBox with extra Debugging symbols"
322 Say Y here if you wish to examine BusyBox internals while applets are
323 running. This increases the size of the binary considerably, and
324 should only be used when doing development. If you are doing
325 development and want to debug BusyBox, answer Y.
327 Most people should answer N.
329 config CONFIG_DEBUG_PESSIMIZE
330 bool "Disable compiler optimizations."
332 depends on CONFIG_DEBUG
334 The compiler's optimization of source code can eliminate and reorder
335 code, resulting in an executable that's hard to understand when
336 stepping through it with a debugger. This switches it off, resulting
337 in a much bigger executable that more closely matches the source
341 prompt "Additional debugging library"
342 default CONFIG_NO_DEBUG_LIB
343 depends on CONFIG_DEBUG
345 Using an additional debugging library will make BusyBox become
346 considerable larger and will cause it to run more slowly. You
347 should always leave this option disabled for production use.
351 This enables compiling with dmalloc ( http://dmalloc.com/ )
352 which is an excellent public domain mem leak and malloc problem
353 detector. To enable dmalloc, before running busybox you will
354 want to properly set your environment, for example:
355 export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
356 The 'debug=' value is generated using the following command
357 dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
358 -p check-fence -p check-heap -p check-lists -p check-blank \
359 -p check-funcs -p realloc-copy -p allow-free-null
361 Electric-fence support:
362 -----------------------
363 This enables compiling with Electric-fence support. Electric
364 fence is another very useful malloc debugging library which uses
365 your computer's virtual memory hardware to detect illegal memory
366 accesses. This support will make BusyBox be considerable larger
367 and run slower, so you should leave this option disabled unless
368 you are hunting a hard to find memory problem.
371 config CONFIG_NO_DEBUG_LIB
374 config CONFIG_DMALLOC
378 bool "Electric-fence"
382 config CONFIG_DEBUG_YANK_SUSv2
383 bool "Disable obsolete features removed before SUSv3?"
386 This option will disable backwards compatibility with SuSv2,
387 specifically, old-style numeric options ('command -1 <file>')
388 will not be supported in head, tail, and fold. (Note: should
389 yank from renice too.)
393 menu 'Installation Options'
395 config CONFIG_INSTALL_NO_USR
396 bool "Don't use /usr"
399 Disable use of /usr. Don't activate this option if you don't know
400 that you really want this behaviour.
403 prompt "Applets links"
404 default CONFIG_INSTALL_APPLET_SYMLINKS
406 Choose how you install applets links.
408 config CONFIG_INSTALL_APPLET_SYMLINKS
411 Install applets as soft-links to the busybox binary. This needs some
412 free inodes on the filesystem, but might help with filesystem
413 generators that can't cope with hard-links.
415 config CONFIG_INSTALL_APPLET_HARDLINKS
418 Install applets as hard-links to the busybox binary. This might count
419 on a filesystem with few inodes.
421 config CONFIG_INSTALL_APPLET_DONT
423 prompt "not installed"
424 depends on CONFIG_FEATURE_INSTALLER || CONFIG_FEATURE_SH_STANDALONE_SHELL
426 Do not install applets links. Usefull when using the -install feature
427 or a standalone shell for rescue pruposes.
432 string "BusyBox installation prefix"
435 Define your directory to install BusyBox files/subdirs in.
439 source libbb/Config.in
445 source archival/Config.in
446 source coreutils/Config.in
447 source console-tools/Config.in
448 source debianutils/Config.in
449 source editors/Config.in
450 source findutils/Config.in
451 source init/Config.in
452 source loginutils/Config.in
453 source e2fsprogs/Config.in
454 source modutils/Config.in
455 source util-linux/Config.in
456 source miscutils/Config.in
457 source networking/Config.in
458 source procps/Config.in
459 source shell/Config.in
460 source sysklogd/Config.in