find: improve usage text (Natanael Copa <natanael.copa@gmail.com>)
[oweals/busybox.git] / docs / busybox.net / FAQ.html
index 34250a33efe20cf00e20fc9449306e89d967fe0b..c07be9027b3035cd75d6e85689a5abb802236eae 100644 (file)
@@ -82,17 +82,30 @@ have additions to this FAQ document, we would love to add them,
     to determine which applet to run, as shown above.
 </p>
 <p>
-    BusyBox also has a feature called the "standalone shell", where the busybox
+    BusyBox also has a feature called the
+    <a name="standalone_shell">"standalone shell"</a>, where the busybox
     shell runs any built-in applets before checking the command path.  This
     feature is also enabled by "make allyesconfig", and to try it out run
     the command line "PATH= ./busybox ash".  This will blank your command path
     and run busybox as your command shell, so the only commands it can find
     (without an explicit path such as /bin/ls) are the built-in busybox ones.
-    This is another good way to see what's built into busybox.  (Note that the
-    standalone shell is dependent on the existence of /proc/self/exe, so before
-    using it in a chroot environment you must mount /proc.)
+    This is another good way to see what's built into busybox.
+    Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH
+    to be set appropriately, depending on whether or not /proc/self/exe is
+    available or not. If you do not have /proc, then point that config option
+    to the location of your busybox binary, usually /bin/busybox.
+    (So if you set it to /proc/self/exe, and happen to be able to chroot into
+    your rootfs, you must mount /proc beforehand.)
 </p>
-
+<p>
+    A typical indication that you set CONFIG_BUSYBOX_EXEC_PATH to proc but
+    forgot to mount proc is:
+<pre>
+$ /bin/echo $PATH
+/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+$ echo $PATH
+/bin/sh: echo: not found
+</pre>
 <hr />
 <p>
 <h2><a name="configure">How do I configure busybox?</a></h2>
@@ -248,7 +261,7 @@ within each applet.  More build coverage testing.</p></li>
 
 <hr />
 <p>
-<h2><a name="external">where can i find other small utilities since busybox 
+<h2><a name="external">where can i find other small utilities since busybox
        does not include the features i want?</a></h2>
 <p>
        we maintain such a <a href="tinyutils.html">list</a> on this site!
@@ -517,7 +530,7 @@ busybox.c), and several subdirectories containing the code for the individual
 applets.</p>
 
 <p>Busybox execution starts with the main() function in applets/busybox.c,
-which sets the global variable bb_applet_name to argv[0] and calls
+which sets the global variable applet_name to argv[0] and calls
 run_applet_by_name() in applets/applets.c.  That uses the applets[] array
 (defined in include/busybox.h and filled out in include/applets.h) to
 transfer control to the appropriate APPLET_main() function (such as
@@ -563,7 +576,7 @@ for failure and abort the program with an error message so the caller doesn't
 have to test the return value (xmalloc(), xstrdup(), etc), wrapped versions
 of open(), close(), read(), and write() that test for their own failures
 and/or retry automatically, linked list management functions (llist.c),
-command line argument parsing (getopt_ulflags.c), and a whole lot more.</p>
+command line argument parsing (getopt32.c), and a whole lot more.</p>
 
 <hr />
 <p>
@@ -928,7 +941,7 @@ text console scrolling...)</p>
 
 <p>So will data always be read from the far end of a pipe at the
 same chunk sizes it was written in?  Nope.  Don't rely on that.  For one
-counterexample, see <a href="http://www.faqs.org/rfcs/rfc896.html">rfc 896 
+counterexample, see <a href="http://www.faqs.org/rfcs/rfc896.html">rfc 896
 for Nagle's algorithm</a>, which waits a fraction of a second or so before
 sending out small amounts of data through a TCP/IP connection in case more
 data comes in that can be merged into the same packet.  (In case you were
@@ -1044,13 +1057,13 @@ into subversion for the BusyBox, uClibc, and buildroot projects.)</p>
 
 <pre>
 aldot     :Bernhard Fischer
-andersen  :Erik Andersen      <- uClibc and BuildRoot maintainer.
+andersen  :Erik Andersen      - uClibc and BuildRoot maintainer.
 bug1      :Glenn McGrath
 davidm    :David McCullough
-gkajmowi  :Garrett Kajmowicz  <- uClibc++ maintainer
+gkajmowi  :Garrett Kajmowicz  - uClibc++ maintainer
 jbglaw    :Jan-Benedict Glaw
 jocke     :Joakim Tjernlund
-landley   :Rob Landley        <- BusyBox maintainer
+landley   :Rob Landley        - BusyBox maintainer
 lethal    :Paul Mundt
 mjn3      :Manuel Novoa III
 osuadmin  :osuadmin
@@ -1068,23 +1081,23 @@ vapier    :Mike Frysinger
 </pre>
 
 <p>The following accounts used to exist on busybox.net, but don't anymore so
-I can't ask /etc/passwd for their names.  (If anybody would like to make
-a stab at it...)</p>
+I can't ask /etc/passwd for their names.  Rob Wentworth <robwen@gmail.com>
+asked Google and recovered the names:</p>
 
 <pre>
-aaronl
-beppu
-dwhedon
-erik    : Also Erik Andersen?
-gfeldman
-jimg
-kraai
-markw
-miles
-proski
-rjune
-tausq
-vodz      :Vladimir N. Oleynik
+aaronl   :Aaron Lehmann
+beppu    :John Beppu
+dwhedon  :David Whedon
+erik     :Erik Andersen
+gfeldman :Gennady Feldman
+jimg     :Jim Gleason
+kraai    :Matt Kraai
+markw    :Mark Whitley
+miles    :Miles Bader
+proski   :Pavel Roskin
+rjune    :Richard June
+tausq    :Randolph Chung
+vodz     :Vladimir N. Oleynik
 </pre>