Nov 6, 2007, 11:01:53 AM (13 years ago)
Bruno Cornec
  • Better output for mindi-busybox revision
  • Remove dummy file created on NFS - report from Arnaud Tiger <arnaud.tiger_at_hp.com>
  • 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)

1 edited


  • branches/stable/mindi-busybox/docs/busybox.net/FAQ.html

    r821 r1770  
    1111<li><a href="#getting_started">How can I get started using BusyBox?</a></li>
    1212<li><a href="#configure">How do I configure busybox?</a></li>
     13<li><a href="#build">How do I build BusyBox with a cross-compiler?</a></li>
    1314<li><a href="#build_system">How do I build a BusyBox-based system?</a></li>
    1415<li><a href="#kernel">Which Linux kernel versions are supported?</a></li>
    2627<li><a href="#bugs">I think I found a bug in BusyBox!  What should I do?!</a></li>
     28<li><a href="#backporting">I'm using an ancient version from the dawn of time and something's broken.  Can you backport fixes for free?</a></li>
    2729<li><a href="#init">Busybox init isn't working!</a></li>
    2830<li><a href="#sed">I can't configure busybox on my system.</a></li>
    2931<li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors?  Why doesn't Control-C work within my shell?</a></li>
     34<h2>Misc. questions</h2>
     36  <li><a href="#tz">How do I change the time zone in busybox?</a></li>
    5158    <li><a href="#tips_kernel_headers">Including Linux kernel headers.</a></li>
    5259  </ul>
    53   <li><a href="#who">Who are the BusyBox developers?</a></li>
    54 </ul>
     60    <li><a href="#who">Who are the BusyBox developers?</a></li>
     61  </ul>
     65<hr />
    5966<h1>General questions</h1>
    6168<hr />
    62 <p>
    6369<h2><a name="getting_started">How can I get started using BusyBox?</a></h2>
    6471<p> If you just want to try out busybox without installing it, download the
    6572    tarball, extract it, run "make defconfig", and then run "make".
    84     BusyBox also has a feature called the "standalone shell", where the busybox
     91    BusyBox also has a feature called the
     92    <a name="standalone_shell">"standalone shell"</a>, where the busybox
    8593    shell runs any built-in applets before checking the command path.  This
    8694    feature is also enabled by "make allyesconfig", and to try it out run
    8896    and run busybox as your command shell, so the only commands it can find
    8997    (without an explicit path such as /bin/ls) are the built-in busybox ones.
    90     This is another good way to see what's built into busybox.  (Note that the
    91     standalone shell is dependent on the existence of /proc/self/exe, so before
    92     using it in a chroot environment you must mount /proc.)
    93 </p>
    95 <hr />
    96 <p>
     98    This is another good way to see what's built into busybox.
     99    Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH
     100    to be set appropriately, depending on whether or not /proc/self/exe is
     101    available or not. If you do not have /proc, then point that config option
     102    to the location of your busybox binary, usually /bin/busybox.
     103    (So if you set it to /proc/self/exe, and happen to be able to chroot into
     104    your rootfs, you must mount /proc beforehand.)
     107    A typical indication that you set CONFIG_BUSYBOX_EXEC_PATH to proc but
     108    forgot to mount proc is:
     110$ /bin/echo $PATH
     112$ echo $PATH
     113/bin/sh: echo: not found
     116<hr />
    97117<h2><a name="configure">How do I configure busybox?</a></h2>
    98119<p> Busybox is configured similarly to the linux kernel.  Create a default
    99120    configuration and then run "make menuconfig" to modify it.  The end
    141162    busybox features, and get help about each feature.
    146165    To build a smaller busybox binary, run "make menuconfig" and disable the
    149168    with "make" once you've finished configuring.)
    151 <hr/>
    152 <p/>
     171<hr />
     172<h2><a name="build">How do I build BusyBox with a cross-compiler?</a></h2>
     175   To build busybox with a cross-compiler, specify CROSS_COMPILE=&lt;prefix&gt;.
     178   CROSS_COMPILE specifies the prefix used for all executables used
     179   during compilation. Only gcc and related binutils executables
     180   are prefixed with $(CROSS_COMPILE) in the makefiles.
     181   CROSS_COMPILE can be set on the command line:
     183   make CROSS_COMPILE=arm-linux-uclibcgnueabi-
     185   Alternatively CROSS_COMPILE can be set in the environment.
     186   Default value for CROSS_COMPILE is not to prefix executables.
     189<hr />
    153190<h2><a name="build_system">How do I build a BusyBox-based system?</a></h2>
    155193    BusyBox is a package that replaces a dozen standard packages, but it is
    193231<hr />
    194 <p>
    195232<h2><a name="kernel">Which Linux kernel versions are supported?</a></h2>
    197235    Full functionality requires Linux 2.4.x or better.  (Earlier versions may
    202240    are into that sort of thing).
    204 <hr />
    205 <p>
     243<hr />
    206244<h2><a name="arch">Which architectures does BusyBox run on?</a></h2>
    208247    BusyBox in general will build on any architecture supported by gcc.
    214253    With 2.6.x kernels, module loading support should work on all architectures.
    216 <hr />
    217 <p>
     256<hr />
    218257<h2><a name="libc">Which C libraries are supported?</a></h2>
    220260    On Linux, BusyBox releases are tested against uClibc (0.9.27 or later) and
    237277<hr />
    238 <p>
    239278<h2><a name="commercial">Can I include BusyBox as part of the software on my device?</a></h2>
    240 <p>
    248286<hr />
    249 <p>
    250 <h2><a name="external">where can i find other small utilities since busybox
     287<h2><a name="external">Where can I find other small utilities since busybox
    251288    does not include the features i want?</a></h2>
    253291    we maintain such a <a href="tinyutils.html">list</a> on this site!
    256294<hr />
    257 <p>
    258295<h2><a name="demanding">I demand that you to add &lt;favorite feature&gt; right now!   How come you don't answer all my questions on the mailing list instantly?  I demand that you help me with all of my problems <em>Right Now</em>!</a></h2>
    259 <p>
    261298    You have not paid us a single cent and yet you still have the product of
    262299    many years of our work.  We are not your slaves!  We work on BusyBox
    264301    will ignore you.
    267 <hr />
    268 <p>
     303<hr />
    269304<h2><a name="helpme">I need help with BusyBox!  What should I do?</a></h2>
    270 <p>
    272307    If you find that you need help with BusyBox, you can ask for help on the
    273308    BusyBox mailing list at busybox@busybox.net.</p>
    298333<hr />
    299 <p>
    300334<h2><a name="contracts">I need you to add &lt;favorite feature&gt;!  Are the BusyBox developers willing to be paid in order to fix bugs or add in &lt;favorite feature&gt;?  Are you willing to provide support contracts?</a></h2>
    301 </p>
     352<hr />
    323355<hr />
    324 <p></p>
    325356<h2><a name="bugs">I think I found a bug in BusyBox!  What should I do?</a></h2>
    326 <p></p>
    339     The developers of BusyBox are busy people, and have only so much they can
    340     keep in their brains at a time.  As a result, bug reports and new feature
    341     patches sometimes get lost when posted to the mailing list.  To prevent
    342     your bug report from getting lost, if you find a bug in BusyBox that isn't
    343     immediately addressed, please use the <a
    344     href="http://bugs.busybox.net/">BusyBox Bug and Patch Tracking System</a>
    345     to submit a detailed explanation and we'll get to it as soon as we can.
    346 </p>
    348 <hr />
    349 <p>
     369    Bug reports and new feature patches sometimes get lost when posted to the
     370    mailing list, because the developers of BusyBox are busy people and have
     371    only so much they can keep in their brains at a time.   You can post a
     372    polite reminder after 2-3 days without offending anybody.  If that doesn't
     373    result in a solution, please use the
     374    <a href="http://bugs.busybox.net/">BusyBox Bug
     375    and Patch Tracking System</a> to submit a detailed explanation and we'll
     376    get to it as soon as we can.
     380    Note that bugs entered into the bug system without being mentioned on the
     381    mailing list first may languish there for months before anyone even notices
     382    them.  We generally go through the bug system when preparing for new
     383    development releases, to see what fell through the cracks while we were
     384    off writing new features.  (It's a fast/unreliable vs slow/reliable thing.
     385    Saves retransits, but the latency sucks.)
     388<hr />
     389<h2><a name="backporting">I'm using an ancient version from the dawn of time and something's broken.  Can you backport fixes for free?</h2>
     391<p>Variants of this one get asked a lot.</p>
     393<p>The purpose of the BusyBox mailing list is to develop and improve BusyBox,
     394and we're happy to respond to our users' needs.  But if you're coming to the
     395list for free tech support we're going to ask you to upgrade to a current
     396version before we try to diagnose your problem.</p>
     398<p>If you're building BusyBox 0.50 with uClibc 0.9.19 and gcc 0.9.26 there's a
     399fairly large chance that whatever problem you're seeing has already been fixed.
     400To get that fix, all you have to do is upgrade to a newer version.  If you
     401don't at least _try_ that, you're wasting our time.</p>
     403<p>The volunteers are happy to fix any bugs you point out in the current
     404versions because doing so helps everybody and makes the project better.  We
     405want to make the current version work for you.  But diagnosing, debugging, and
     406backporting fixes to old versions isn't something we do for free, because it
     407doesn't help anybody but you.  The cost of volunteer tech support is using a
     408reasonably current version of the project.</p>
     410<p>If you don't want to upgrade, you have the complete source code and thus
     411the ability to fix it yourself, or hire a consultant to do it for you.  If you
     412got your version from a vendor who still supports the older version, they can
     413help you.  But there are limits as to what the volunteers will feel obliged to
     414do for you.</p>
     416<p>As a rule of thumb, volunteers will generally answer polite questions about
     417a given version for about three years after its release before it's so old
     418we don't remember the answer off the top of our head.  And if you want us to
     419put any _effort_ into tracking it down, we want you to put in a little effort
     420of your own by confirming it's still a problem with the current version.  It's
     421also hard for us to fix a problem of yours if we can't reproduce it because
     422we don't have any systems running an environment that old.</p>
     424<p>A consultant will happily set up a special environment just to reproduce
     425your problem, and you can always ask on the list if any of the developers
     426have consulting rates.</p>
     428<hr />
    350429<h2><a name="init">Busybox init isn't working!</a></h2>
    352432    Init is the first program that runs, so it might be that no programs are
    382462<hr />
    383 <p>
    384463<h2><a name="sed">I can't configure busybox on my system.</a></h2>
    386466    Configuring Busybox depends on a recent version of sed.  Older
    410490<hr />
    411 <p>
    412491<h2><a name="job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors?  Why doesn't Control-C work within my shell?</a></h2>
    413 <p>
    415494    Job control will be turned off since your shell can not obtain a controlling
    416495    terminal.  This typically happens when you run your shell on /dev/console.
     505<hr />
     506<h1>Misc. questions</h1>
     508<hr />
     509<h2><a name="tz">How do I change the time zone in busybox?</a></h2>
     511<p>Busybox has nothing to do with the timezone. Please consult your libc
     512documentation. (<a href='http://google.com/search?q=uclibc+glibc+timezone'>http://google.com/search?q=uclibc+glibc+timezone</a>).</p>
     514<hr />
    428 <h2><b><a name="goals">What are the goals of busybox?</a></b></h2>
     517<hr />
     518<h2><a name="goals">What are the goals of busybox?</a></h2>
    430520<p>Busybox aims to be the smallest and simplest correct implementation of the
    435525take over the world.</p>
    437 <h2><b><a name="design">What is the design of busybox?</a></b></h2>
     527<hr />
     528<h2><a name="design">What is the design of busybox?</a></h2>
    439530<p>Busybox is like a swiss army knife: one thing with many functions.
    459550<a name="source"></a>
    461 <h2><a name="source_applets"><b>The applet directories</b></a></h2>
     552<hr />
     553<h2><a name="source_applets">The applet directories</a></h2>
    463555<p>The directory "applets" contains the busybox startup code (applets.c and
    467559<p>Busybox execution starts with the main() function in applets/busybox.c,
    468 which sets the global variable bb_applet_name to argv[0] and calls
    469 run_applet_by_name() in applets/applets.c.  That uses the applets[] array
     560which sets the global variable applet_name to argv[0] and calls
     561run_applet_and_exit() in applets/applets.c.  That uses the applets[] array
    470562(defined in include/busybox.h and filled out in include/applets.h) to
    471563transfer control to the appropriate APPLET_main() function (such as
     593<hr />
    501594<h2><a name="source_libbb"><b>libbb</b></a></h2>
    512605of open(), close(), read(), and write() that test for their own failures
    513606and/or retry automatically, linked list management functions (llist.c),
    514 command line argument parsing (getopt_ulflags.c), and a whole lot more.</p>
    516 <hr />
    517 <p>
     607command line argument parsing (getopt32.c), and a whole lot more.</p>
     609<hr />
    518610<h2><a name="optimize">I want to make busybox even smaller, how do I go about it?</a></h2>
    520613    To conserve bytes it's good to know where they're being used, and the
    567660        for a sepecific symbol.
    569 <hr />
    573 <h2><a name="adding"><b>Adding an applet to busybox</b></a></h2>
     663<hr />
     664<h2><a name="adding">Adding an applet to busybox</a></h2>
    575666<p>To add a new applet to busybox, first pick a name for the applet and
     705<hr />
    614706<h2><a name="standards">What standards does busybox adhere to?</a></h2>
    641733document where we (intentionally) fall short.</p>
     735<hr />
    643736<h2><a name="portability">Portability.</a></h2>
    717810something we're trying to avoid.</p>
     812<hr />
    719813<h2><a name="tips" />Programming tips and tricks.</a></h2>
     818<hr />
    724819<h2><a name="tips_encrypted_passwords">Encrypted Passwords</a></h2>
    773868second argument to pw_encrypt(text,buffer).</p>
     870<hr />
    775871<h2><a name="tips_vfork">Fork and vfork</a></h2>
    851947something subtle and thus even more dangerous.)</p>
     949<hr />
    853950<h2><a name="tips_sort_read">Short reads and writes</a></h2>
    877974<p>So will data always be read from the far end of a pipe at the
    878975same chunk sizes it was written in?  Nope.  Don't rely on that.  For one
    879 counterexample, see <a href="http://www.faqs.org/rfcs/rfc896.html">rfc 896 
     976counterexample, see <a href="http://www.faqs.org/rfcs/rfc896.html">rfc 896
    880977for Nagle's algorithm</a>, which waits a fraction of a second or so before
    881978sending out small amounts of data through a TCP/IP connection in case more
    884981on their their sockets, now you know.)</p>
     983<hr />
    886984<h2><a name="tips_memory">Memory used by relocatable code, PIC, and static linking.</a></h2>
     1048<hr />
    9501049<h2><a name="tips_kernel_headers"></a>Including kernel headers</h2>
    9851084is not a better way.</p>
     1086<hr />
    9871087<h2><a name="who">Who are the BusyBox developers?</a></h2>
    9941094aldot     :Bernhard Fischer
    995 andersen  :Erik Andersen      <- uClibc and BuildRoot maintainer.
     1095andersen  :Erik Andersen      - uClibc and BuildRoot maintainer.
    9961096bug1      :Glenn McGrath
    9971097davidm    :David McCullough
    998 gkajmowi  :Garrett Kajmowicz  <- uClibc++ maintainer
     1098gkajmowi  :Garrett Kajmowicz  - uClibc++ maintainer
    9991099jbglaw    :Jan-Benedict Glaw
    10001100jocke     :Joakim Tjernlund
    1001 landley   :Rob Landley        <- BusyBox maintainer
     1101landley   :Rob Landley        - BusyBox maintainer
    10021102lethal    :Paul Mundt
    10031103mjn3      :Manuel Novoa III
    10181118<p>The following accounts used to exist on busybox.net, but don't anymore so
    1019 I can't ask /etc/passwd for their names.  (If anybody would like to make
    1020 a stab at it...)</p>
     1119I can't ask /etc/passwd for their names.  Rob Wentworth <robwen@gmail.com>
     1120asked Google and recovered the names:</p>
    1023 aaronl
    1024 beppu
    1025 dwhedon
    1026 erik    : Also Erik Andersen?
    1027 gfeldman
    1028 jimg
    1029 kraai
    1030 markw
    1031 miles
    1032 proski
    1033 rjune
    1034 tausq
    1035 vodz      :Vladimir N. Oleynik
     1123aaronl   :Aaron Lehmann
     1124beppu    :John Beppu
     1125dwhedon  :David Whedon
     1126erik     :Erik Andersen
     1127gfeldman :Gennady Feldman
     1128jimg     :Jim Gleason
     1129kraai    :Matt Kraai
     1130markw    :Mark Whitley
     1131miles    :Miles Bader
     1132proski   :Pavel Roskin
     1133rjune    :Richard June
     1134tausq    :Randolph Chung
     1135vodz     :Vladimir N. Oleynik
Note: See TracChangeset for help on using the changeset viewer.