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