Ignore:
Timestamp:
Nov 4, 2007, 3:16:40 AM (17 years ago)
Author:
Bruno Cornec
Message:

Update to busybox 1.7.2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.5/mindi-busybox/docs/busybox.net/FAQ.html

    r821 r1765  
    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>
     
    2526<ol>
    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>
     32</ol>
     33
     34<h2>Misc. questions</h2>
     35<ol>
     36  <li><a href="#tz">How do I change the time zone in busybox?</a></li>
    3037</ol>
    3138
     
    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>
    55 
    56 
     60    <li><a href="#who">Who are the BusyBox developers?</a></li>
     61  </ul>
    5762</ol>
    5863
     64
     65<hr />
    5966<h1>General questions</h1>
    6067
    6168<hr />
    62 <p>
    6369<h2><a name="getting_started">How can I get started using BusyBox?</a></h2>
     70
    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".
     
    8289</p>
    8390<p>
    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>
    94 
    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.)
     105</p>
     106<p>
     107    A typical indication that you set CONFIG_BUSYBOX_EXEC_PATH to proc but
     108    forgot to mount proc is:
     109<pre>
     110$ /bin/echo $PATH
     111/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
     112$ echo $PATH
     113/bin/sh: echo: not found
     114</pre>
     115
     116<hr />
    97117<h2><a name="configure">How do I configure busybox?</a></h2>
     118
    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.
    142163
    143 
    144 
    145164<p>
    146165    To build a smaller busybox binary, run "make menuconfig" and disable the
     
    149168    with "make" once you've finished configuring.)
    150169</p>
    151 <hr/>
    152 <p/>
     170
     171<hr />
     172<h2><a name="build">How do I build BusyBox with a cross-compiler?</a></h2>
     173
     174<p>
     175   To build busybox with a cross-compiler, specify CROSS_COMPILE=&lt;prefix&gt;.
     176</p>
     177<p>
     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:
     182<pre>
     183   make CROSS_COMPILE=arm-linux-uclibcgnueabi-
     184</pre>
     185   Alternatively CROSS_COMPILE can be set in the environment.
     186   Default value for CROSS_COMPILE is not to prefix executables.
     187</p>
     188
     189<hr />
    153190<h2><a name="build_system">How do I build a BusyBox-based system?</a></h2>
     191
    154192<p>
    155193    BusyBox is a package that replaces a dozen standard packages, but it is
     
    192230
    193231<hr />
    194 <p>
    195232<h2><a name="kernel">Which Linux kernel versions are supported?</a></h2>
     233
    196234<p>
    197235    Full functionality requires Linux 2.4.x or better.  (Earlier versions may
     
    202240    are into that sort of thing).
    203241</p>
    204 <hr />
    205 <p>
     242
     243<hr />
    206244<h2><a name="arch">Which architectures does BusyBox run on?</a></h2>
     245
    207246<p>
    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.
    215254</p>
    216 <hr />
    217 <p>
     255
     256<hr />
    218257<h2><a name="libc">Which C libraries are supported?</a></h2>
     258
    219259<p>
    220260    On Linux, BusyBox releases are tested against uClibc (0.9.27 or later) and
     
    236276
    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>
    241279
    242280<p>
     
    247285
    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>
     289
    252290<p>
    253291    we maintain such a <a href="tinyutils.html">list</a> on this site!
     
    255293
    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>
    260 
     296
     297<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.
    265302
    266 
    267 <hr />
    268 <p>
     303<hr />
    269304<h2><a name="helpme">I need help with BusyBox!  What should I do?</a></h2>
    270 <p>
    271 
     305
     306<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>
     
    297332
    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>
    302335
    303336<p>
     
    317350
    318351
    319 
    320 
     352<hr />
    321353<h1>Troubleshooting</h1>
    322354
    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>
    327357
    328358<p>
     
    337367
    338368<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>
    347 
    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.
     377</p>
     378
     379<p>
     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.)
     386</p>
     387
     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>
     390
     391<p>Variants of this one get asked a lot.</p>
     392
     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>
     397
     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>
     402
     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>
     409
     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>
     415
     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>
     423
     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>
     427
     428<hr />
    350429<h2><a name="init">Busybox init isn't working!</a></h2>
     430
    351431<p>
    352432    Init is the first program that runs, so it might be that no programs are
     
    381461
    382462<hr />
    383 <p>
    384463<h2><a name="sed">I can't configure busybox on my system.</a></h2>
     464
    385465<p>
    386466    Configuring Busybox depends on a recent version of sed.  Older
     
    409489
    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>
    414 
     492
     493<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.
     
    424503</p>
    425504
     505<hr />
     506<h1>Misc. questions</h1>
     507
     508<hr />
     509<h2><a name="tz">How do I change the time zone in busybox?</a></h2>
     510
     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>
     513
     514<hr />
    426515<h1>Development</h1>
    427516
    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>
    429519
    430520<p>Busybox aims to be the smallest and simplest correct implementation of the
     
    435525take over the world.</p>
    436526
    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>
    438529
    439530<p>Busybox is like a swiss army knife: one thing with many functions.
     
    459550<a name="source"></a>
    460551
    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>
    462554
    463555<p>The directory "applets" contains the busybox startup code (applets.c and
     
    466558
    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
     
    499591information.</p>
    500592
     593<hr />
    501594<h2><a name="source_libbb"><b>libbb</b></a></h2>
    502595
     
    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>
    515 
    516 <hr />
    517 <p>
     607command line argument parsing (getopt32.c), and a whole lot more.</p>
     608
     609<hr />
    518610<h2><a name="optimize">I want to make busybox even smaller, how do I go about it?</a></h2>
     611
    519612<p>
    520613    To conserve bytes it's good to know where they're being used, and the
     
    567660        for a sepecific symbol.
    568661</p>
    569 <hr />
    570 
    571 
    572 
    573 <h2><a name="adding"><b>Adding an applet to busybox</b></a></h2>
     662
     663<hr />
     664<h2><a name="adding">Adding an applet to busybox</a></h2>
    574665
    575666<p>To add a new applet to busybox, first pick a name for the applet and
     
    612703</ul>
    613704
     705<hr />
    614706<h2><a name="standards">What standards does busybox adhere to?</a></h2>
    615707
     
    641733document where we (intentionally) fall short.</p>
    642734
     735<hr />
    643736<h2><a name="portability">Portability.</a></h2>
    644737
     
    717810something we're trying to avoid.</p>
    718811
     812<hr />
    719813<h2><a name="tips" />Programming tips and tricks.</a></h2>
    720814
     
    722816elsewhere.</p>
    723817
     818<hr />
    724819<h2><a name="tips_encrypted_passwords">Encrypted Passwords</a></h2>
    725820
     
    773868second argument to pw_encrypt(text,buffer).</p>
    774869
     870<hr />
    775871<h2><a name="tips_vfork">Fork and vfork</a></h2>
    776872
     
    851947something subtle and thus even more dangerous.)</p>
    852948
     949<hr />
    853950<h2><a name="tips_sort_read">Short reads and writes</a></h2>
    854951
     
    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>
    885982
     983<hr />
    886984<h2><a name="tips_memory">Memory used by relocatable code, PIC, and static linking.</a></h2>
    887985
     
    9481046</blockquote>
    9491047
     1048<hr />
    9501049<h2><a name="tips_kernel_headers"></a>Including kernel headers</h2>
    9511050
     
    9851084is not a better way.</p>
    9861085
     1086<hr />
    9871087<h2><a name="who">Who are the BusyBox developers?</a></h2>
    9881088
     
    9931093<pre>
    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
     
    10171117
    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>
    10211121
    10221122<pre>
    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
    10361136</pre>
    10371137
Note: See TracChangeset for help on using the changeset viewer.