source: MondoRescue/branches/stable/mindi-busybox/ @ 1770

Last change on this file since 1770 was 1770, checked in by Bruno Cornec, 12 years ago
  • Better output for mindi-busybox revision
  • Remove dummy file created on NFS - report from Arnaud Tiger <>
  • strace useful for debug
  • fix new versions for pb (2.0.0 for mindi and 1.7.2 for mindi-busybox)
  • fix build process for mindi-busybox + options used in that version (dd for label-partitions-as-necessary)
  • fix typo in label-partitions-as-necessary which doesn't seem to work
  • Update to busybox 1.7.2
  • perl is now required at restore time to support uuid swap partitions (and will be used for many other thigs

in the future for sure)

  • next mindi version will be 2.0.0 due to all the changes made in it (udev may break working distros)
  • small optimization in mindi on keyboard handling (one single find instead of multiple)
  • better interaction for USB device when launching mindi manually
  • attempt to automatically guess block disk size for ramdisk
  • fix typos in bkphw
  • Fix the remaining problem with UUID support for swap partitions
  • Updates mondoarchive man page for USB support
  • Adds preliminary Hardware support to mindi (Proliant SSSTK)
  • Tries to add udev support also for rhel4
  • Fix UUID support which was still broken.
  • Be conservative in test for the start-nfs script
  • Update config file for mindi-busybox for 1.7.2 migration
  • Try to run around a busybox bug (1.2.2 pb on inexistant links)
  • Add build content for mindi-busybox in pb
  • Remove distributions content for mindi-busybox
  • Fix a warning on inexistant raidtab
  • Solve problem on tmpfs in restore init (Problem of inexistant symlink and busybox)
  • Create MONDO_CACHE and use it everywhere + creation at start
  • Really never try to eject a USB device
  • Fix a issue with &> usage (replaced with 1> and 2>)
  • Adds magic file to depllist in order to have file working + ldd which helps for debugging issues
  • tty modes correct to avoid sh error messages
  • Use ext3 normally and not ext2 instead
  • USB device should be corrected after reading (take 1st part)
  • Adds a mount_USB_here function derived from mount_CDROM_here
  • usb detection place before /dev detection in device name at restore time
  • Fix when restoring from USB: media is asked in interactive mode
  • Adds USB support for mondorestore
  • mount_cdrom => mount_media
  • elilo.efi is now searched throughout /boot/efi and not in a fixed place as there is no standard
  • untar-and-softlink => untar (+ interface change)
  • suppress useless softlinks creation/removal in boot process
  • avoids udevd messages on groups
  • Increase # of disks to 99 as in mindi at restore time (should be a conf file parameter)
  • skip existing big file creation
  • seems to work correctly for USB mindi boot
  • Adds group and tty link to udev conf
  • Always load usb-torage (even 2.6) to initiate USB bus discovery
  • Better printing of messages
  • Attempt to fix a bug in supporting OpenSusE 10.3 kernel for initramfs (mindi may now use multiple regex for kernel initrd detection)
  • Links were not correctly done as non relative for modules in mindi
  • exclusion of modules denied now works
  • Also create modules in their ordinary place, so that classical modprobe works + copy modules.dep
  • Fix bugs for DENY_MODS handling
  • Add device /dev/console for udev
  • ide-generic should now really be excluded
  • Fix a bug in major number for tty
  • If udev then adds modprobe/insmod to rootfs
  • tty0 is also cretaed with udev
  • ide-generic put rather in DENY_MODS
  • udevd remove from deplist s handled in mindi directly
  • better default for mindi when using --usb
  • Handles dynamically linked busybox (in case we want to use it soon ;-)
  • Adds fixed devices to create for udev
  • ide-generic should not be part of the initrd when using libata v2
  • support a dynamically linked udev (case on Ubuntu 7.10 and Mandriva 2008.0 so should be quite generic) This will give incitation to move to dyn. linked binaries in the initrd which will help for other tasks (ia6 4)
  • Improvement in udev support (do not use cl options not available in busybox)
  • Udev in mindi
    • auto creation of the right links at boot time with udev-links.conf(from Mandriva 2008.0)
    • rework startup of udev as current makes kernel crash (from Mandriva 2008.0)
    • add support for 64 bits udev
  • Try to render MyInsmod? silent at boot time
  • Adds udev support (mandatory for newest distributions to avoid remapping of devices in a different way as on the original system)
  • We also need vaft format support for USB boot
  • Adds libusual support (Ubuntu 7.10 needs it for USB)
  • Improve Ubuntu/Debian? keyboard detection and support
  • pbinit adapted to new pb (0.8.10). Filtering of docs done in it
  • Suppress some mondo warnings and errors on USB again
  • Tries to fix lack of files in deb mindi package
  • Verify should now work for USB devices
  • More log/mesages improvement for USB support
  • - Supress g_erase_tmpdir_and_scratchdir
  • Improve some log messages for USB support
  • Try to improve install in mindi to avoid issues with isolinux.cfg not installed vene if in the pkg :-(
  • Improve mindi-busybox build
  • In conformity with pb 0.8.9
  • Add support for Ubuntu 7.10 in build process
  • Add USB Key button to Menu UI (CD streamer removed)
  • Attempt to fix error messages on tmp/scratch files at the end by removing those dir at the latest possible.
  • Fix a bug linked to the size of the -E param which could be used (Arnaud Tiger/René? Ribaud).
  • Integrate ~/.pbrc content into mondorescue.pb (required project-builder >= 0.8.7)
  • Put mondorescue in conformity with new pb filtering rules
  • Add USB support at restore time (no test done yet). New start-usb script PB varibale added where useful
  • Unmounting USB device before removal of temporary scratchdir
  • Stil refining USB copy back to mondo (one command was not executed)
  • No need to have the image subdor in the csratchdir when USB.
  • umount the USB partition before attempting to use it
  • Remove useless copy from mindi to mondo at end of USB handling

(risky merge, we are raising the limits of 2 diverging branches. The status of stable is not completely sure as such. Will need lots of tests, but it's not yet done :-()
(merge -r1692:1769 $SVN_M/branches/2.2.5)

File size: 16.3 KB
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
6mainmenu "BusyBox Configuration"
9    bool
10    default y
12menu "Busybox Settings"
14menu "General Configuration"
[1770]16config NITPICK
[821]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.
25      This is better than to telling people to edit the busybox source
26      code, but not by much.
28      See
30      You have been warned.
[1770]32config 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.
41    prompt "Buffer allocation policy"
[1770]42    default FEATURE_BUFFERS_USE_MALLOC
43    depends on NITPICK
[821]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.
[821]55    bool "Allocate with Malloc"
[821]58    bool "Allocate on the Stack"
[821]61    bool "Allocate in the .bss section"
[1770]65config SHOW_USAGE
[821]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.
[821]75    bool "Show verbose applet usage messages"
76    default n
[1770]77    select SHOW_USAGE
[821]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.
[821]85    bool "Store applet usage messages in compressed form"
86    default y
[1770]87    depends on SHOW_USAGE
[821]88    help
89      Store usage messages in compressed form, uncompress them on-the-fly
90      when <applet> --help is called.
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.
[1770]98config FEATURE_INSTALLER
[821]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
[1770]104      applets that are compiled into busybox.
[1770]106config LOCALE_SUPPORT
[821]107    bool "Enable locale support (system needs locale for this to work)"
108    default n
109    help
110      Enable this if your system has locale support and you would like
111      busybox to support locale settings.
[1770]113config GETOPT_LONG
114    bool "Enable support for --long-options"
[821]115    default y
[1770]116    help
117      Enable this if you want busybox applets to use the gnu --long-option
118      style, in addition to single character -a -b -c style options.
[1770]120config FEATURE_DEVPTS
[821]121    bool "Use the devpts filesystem for Unix98 PTYs"
122    default y
123    help
124      Enable if you want BusyBox to use Unix98 PTY support. If enabled,
125      busybox will use /dev/ptmx for the master side of the pseudoterminal
126      and /dev/pts/<number> for the slave side.  Otherwise, BSD style
127      /dev/ttyp<number> will be used. To use this option, you should have
128      devpts mounted.
[1770]130config FEATURE_CLEAN_UP
[821]131    bool "Clean up all memory before exiting (usually not needed)"
132    default n
[1770]133    depends on NITPICK
[821]134    help
135      As a size optimization, busybox normally exits without explicitly
136      freeing dynamically allocated memory or closing files.  This saves
137      space since the OS will clean up for us, but it can confuse debuggers
138      like valgrind, which report tons of memory and resource leaks.
140      Don't enable this unless you have a really good reason to clean
141      things up manually.
[1770]143config FEATURE_PIDFILE
144    bool "Support writing pidfiles"
145    default n
146    help
147      This option makes some applets (e.g. crond, syslogd, inetd) write
148      a pidfile in /var/run. Some applications rely on them.
150config FEATURE_SUID
[821]151    bool "Support for SUID/SGID handling"
152    default n
153    help
154      With this option you can install the busybox binary belonging
155      to root with the suid bit set, and it'll and it'll automatically drop
156      priviledges for applets that don't need root access.
158      If you're really paranoid and don't want to do this, build two
159      busybox binaries with different applets in them (and the appropriate
160      symlinks pointing to each binary), and only set the suid bit on the
161      one that needs it.  The applets currently marked to need the suid bit
162      are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
163      and vlock.
[1770]165config FEATURE_SUID_CONFIG
[821]166    bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
[1770]167    default n if FEATURE_SUID
168    depends on FEATURE_SUID
[821]169    help
170      Allow the SUID / SGID state of an applet to be determined at runtime
171      by checking /etc/busybox.conf.  (This is sort of a poor man's sudo.)
172      The format of this file is as follows:
174      <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
176      An example might help:
178      [SUID]
179      su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0
180      su = ssx        # exactly the same
182      mount = sx- root.disk # applet mount can be run by root and members of group disk
183                            # and runs with euid=0
185      cp = --- # disable applet cp for everyone
187      The file has to be owned by user root, group root and has to be
188      writeable only by root:
189        (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
190      The busybox executable has to be owned by user root, group
191      root and has to be setuid root for this to work:
192        (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
194      Robert 'sandman' Griebl has more information here:
195      <url: >.
[821]198    bool "Suppress warning message if /etc/busybox.conf is not readable"
199    default y
[1770]200    depends on FEATURE_SUID_CONFIG
[821]201    help
202      /etc/busybox.conf should be readable by the user needing the SUID, check
203      this option to avoid users to be notified about missing permissions.
[1770]205config SELINUX
[821]206    bool "Support NSA Security Enhanced Linux"
207    default n
208    help
209      Enable support for SELinux in applets ls, ps, and id.  Also provide
210      the option of compiling in SELinux applets.
212      If you do not have a complete SELinux userland installed, this stuff
213      will not compile. Go visit
215      to download the necessary stuff to allow busybox to compile with
216      this option enabled. Specifially, libselinux 1.28 or better is
217      directly required by busybox. If the installation is located in a
218      non-standard directory, provide it by invoking make as follows:
219        CFLAGS=-I<libselinux-include-path> \
220        LDFLAGS=-L<libselinux-lib-path> \
221        make
223      Most people will leave this set to 'N'.
226    bool "exec prefers applets"
227    default n
228    help
229      This is an experimental option which directs applets about to
230      call 'exec' to try and find an applicable busybox applet before
231      searching the PATH. This is typically done by exec'ing
232      /proc/self/exe.
233      This may affect shell, find -exec, xargs and similar applets.
234      They will use applets even if /bin/<applet> -> busybox link
235      is missing (or is not a link to busybox). However, this causes
236      problems in chroot jails without mounted /proc and with ps/top
237      (command name can be shown as 'exe' for applets started this way).
[821]240    string "Path to BusyBox executable"
241    default "/proc/self/exe"
242    help
243      When Busybox applets need to run other busybox applets, BusyBox
244      sometimes needs to exec() itself.  When the /proc filesystem is
245      mounted, /proc/self/exe always points to the currently running
246      executable.  If you haven't got /proc, set this to wherever you
247      want to run BusyBox from.
[1770]249# These are auto-selected by other options
252    bool "Support for logging to syslog"
253    default n
254    help
255      This option is auto-selected when you select any applet which may
256      send its output to syslog. You do not need to select it manually.
259    bool "RPC support"
260    default n
261    help
262      This is automatically selected if any of enabled applets need it.
263      You do not need to select it manually.
267menu 'Build Options'
[1770]269config STATIC
[821]270    bool "Build BusyBox as a static binary (no shared libs)"
271    default n
272    help
273      If you want to build a static BusyBox binary, which does not
274      use or require any shared libraries, then enable this option.
275      This can cause BusyBox to be considerably larger, so you should
276      leave this option false unless you have a good reason (i.e.
277      your target platform does not support shared libraries, or
278      you are building an initrd which doesn't need anything but
279      BusyBox, etc).
281      Most people will leave this set to 'N'.
[1770]283config BUILD_LIBBUSYBOX
[821]284    bool "Build shared libbusybox"
285    default n
286    help
287      Build a shared library which contains all
288      libraries used inside busybox.
290      This is an experimental feature intended to support the upcoming
291      "make standalone" mode.  Enabling it against the one big busybox
292      binary serves no purpose (and increases the size).  You should
293      almost certainly say "no" to this right now.
[821]296    bool "Feature-complete libbusybox"
[1770]297    default n if !FEATURE_SHARED_BUSYBOX
298    depends on BUILD_LIBBUSYBOX
[821]299    help
300      Build a libbusybox with the complete feature-set, disregarding
301      the actually selected config.
303      Normally, libbusybox will only contain the features which are
304      used by busybox itself. If you plan to write a separate
305      standalone application which uses libbusybox say 'Y'.
307      Note: libbusybox is GPL, not LGPL, and exports no stable API that
308      might act as a copyright barrier.  We can and will modify the
309      exported function set between releases (even minor version number
310      changes), and happily break out-of-tree features.
312      Say 'N' if in doubt.
[821]315    bool "Use shared libbusybox for busybox"
[1770]316    default y if BUILD_LIBBUSYBOX
317    depends on !STATIC && BUILD_LIBBUSYBOX
[821]318    help
319      Use also for busybox itself.
320      You need to have a working dynamic linker to use this variant.
[1770]322config LFS
[821]323    bool "Build with Large File Support (for accessing files > 2 GB)"
324    default n
326    help
327      If you want to build BusyBox with large file support, then enable
328      this option.  This will have no effect if your kernel or your C
329      library lacks large file support for large files.  Some of the
330      programs that can benefit from large file support include dd, gzip,
331      cp, mount, tar, and many others.  If you want to access files larger
332      than 2 Gigabytes, enable this option.  Otherwise, leave it set to 'N'.
[1770]334config BUILD_AT_ONCE
[821]335    bool "Compile all sources at once"
336    default n
337    help
338      Normally each source-file is compiled with one invocation of
339      the compiler.
340      If you set this option, all sources are compiled at once.
341      This gives the compiler more opportunities to optimize which can
342      result in smaller and/or faster binaries.
344      Setting this option will consume alot of memory, e.g. if you
345      enable all applets with all features, gcc uses more than 300MB
346      RAM during compilation of busybox.
348      This option is most likely only beneficial for newer compilers
349      such as gcc-4.1 and above.
351      Say 'N' unless you know what you are doing.
355menu 'Debugging Options'
[1770]357config DEBUG
[821]358    bool "Build BusyBox with extra Debugging symbols"
359    default n
360    help
361      Say Y here if you wish to examine BusyBox internals while applets are
362      running.  This increases the size of the binary considerably, and
363      should only be used when doing development.  If you are doing
364      development and want to debug BusyBox, answer Y.
366      Most people should answer N.
[1770]368config WERROR
369    bool "Abort compilation on any warning"
[821]370    default n
371    help
[1770]372      Selecting this will add -Werror to gcc command line.
[1770]374      Most people should answer N.
376# Seems to be unused
378#   bool "Disable compiler optimizations."
379#   default n
380#   depends on DEBUG
381#   help
382#     The compiler's optimization of source code can eliminate and reorder
383#     code, resulting in an executable that's hard to understand when
384#     stepping through it with a debugger.  This switches it off, resulting
385#     in a much bigger executable that more closely matches the source
386#     code.
389    prompt "Additional debugging library"
[1770]390    default NO_DEBUG_LIB
[821]391    help
392      Using an additional debugging library will make BusyBox become
393      considerable larger and will cause it to run more slowly.  You
394      should always leave this option disabled for production use.
396      dmalloc support:
397      ----------------
398      This enables compiling with dmalloc ( )
399      which is an excellent public domain mem leak and malloc problem
400      detector.  To enable dmalloc, before running busybox you will
401      want to properly set your environment, for example:
402        export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
403      The 'debug=' value is generated using the following command
404        dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
405           -p check-fence -p check-heap -p check-lists -p check-blank \
406           -p check-funcs -p realloc-copy -p allow-free-null
408      Electric-fence support:
409      -----------------------
410      This enables compiling with Electric-fence support.  Electric
411      fence is another very useful malloc debugging library which uses
412      your computer's virtual memory hardware to detect illegal memory
413      accesses.  This support will make BusyBox be considerable larger
414      and run slower, so you should leave this option disabled unless
415      you are hunting a hard to find memory problem.
[1770]418config NO_DEBUG_LIB
[821]419    bool "None"
[1770]421config DMALLOC
[821]422    bool "Dmalloc"
[1770]424config EFENCE
[821]425    bool "Electric-fence"
[1770]429config INCLUDE_SUSv2
430    bool "Enable obsolete features removed before SUSv3?"
[821]431    default y
432    help
[1770]433      This option will enable backwards compatibility with SuSv2,
[821]434      specifically, old-style numeric options ('command -1 <file>')
[1770]435      will be supported in head, tail, and fold.  (Note: should
436      affect renice too.)
440menu 'Installation Options'
[1770]442config INSTALL_NO_USR
[821]443    bool "Don't use /usr"
444    default n
445    help
446      Disable use of /usr. Don't activate this option if you don't know
447      that you really want this behaviour.
[1770]450    prompt "Applets links"
452    help
453      Choose how you install applets links.
456    bool "as soft-links"
457    help
458      Install applets as soft-links to the busybox binary. This needs some
459      free inodes on the filesystem, but might help with filesystem
460      generators that can't cope with hard-links.
463    bool "as hard-links"
464    help
465      Install applets as hard-links to the busybox binary. This might count
466      on a filesystem with few inodes.
[1770]468config INSTALL_APPLET_DONT
469    bool "not installed"
471    help
472      Do not install applet links. Useful when using the -install feature
473      or a standalone shell for rescue purposes.
477config PREFIX
478    string "BusyBox installation prefix"
479    default "./_install"
480    help
481      Define your directory to install BusyBox files/subdirs in.
485source libbb/
489comment "Applets"
491source archival/
492source coreutils/
493source console-tools/
494source debianutils/
495source editors/
496source findutils/
497source init/
498source loginutils/
499source e2fsprogs/
500source modutils/
501source util-linux/
502source miscutils/
503source networking/
504source procps/
505source shell/
506source sysklogd/
[1770]507source runit/
508source selinux/
509source ipsvd/
Note: See TracBrowser for help on using the repository browser.