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
(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>
<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!
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
<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
<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
</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>