More about configuring busybox.
This commit is contained in:
parent
9b70093714
commit
ac4c92da3b
@ -8,16 +8,17 @@ have additions to this FAQ document, we would love to add them,
|
|||||||
|
|
||||||
<h2>General questions</h2>
|
<h2>General questions</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#getting_started">How can I get started using BusyBox?</a>
|
<li><a href="#getting_started">How can I get started using BusyBox?</a></li>
|
||||||
<li><a href="#build_system">How do I build a BusyBox-based system?</a>
|
<li><a href="#configure">How do I configure busybox?</a></li>
|
||||||
<li><a href="#kernel">Which Linux kernel versions are supported?</a>
|
<li><a href="#build_system">How do I build a BusyBox-based system?</a></li>
|
||||||
<li><a href="#arch">Which architectures does BusyBox run on?</a>
|
<li><a href="#kernel">Which Linux kernel versions are supported?</a></li>
|
||||||
<li><a href="#libc">Which C libraries are supported?</a>
|
<li><a href="#arch">Which architectures does BusyBox run on?</a></li>
|
||||||
<li><a href="#commercial">Can I include BusyBox as part of the software on my device?</a>
|
<li><a href="#libc">Which C libraries are supported?</a></li>
|
||||||
<li><a href="#external">Where can I find other small utilities since busybox does not include the features I want?</a></li>
|
<li><a href="#commercial">Can I include BusyBox as part of the software on my device?</a></li>
|
||||||
<li><a href="#demanding">I demand that you to add <favorite feature> 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>
|
<li><a href="#external">Where can I find other small utilities since busybox does not include the features I want?</a></li></li>
|
||||||
<li><a href="#helpme">I need help with BusyBox! What should I do?</a>
|
<li><a href="#demanding">I demand that you to add <favorite feature> 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></li>
|
||||||
<li><a href="#contracts">I need you to add <favorite feature>! Are the BusyBox developers willing to be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide support contracts?</a>
|
<li><a href="#helpme">I need help with BusyBox! What should I do?</a></li>
|
||||||
|
<li><a href="#contracts">I need you to add <favorite feature>! Are the BusyBox developers willing to be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide support contracts?</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h2>Troubleshooting</h2>
|
<h2>Troubleshooting</h2>
|
||||||
@ -61,10 +62,10 @@ have additions to this FAQ document, we would love to add them,
|
|||||||
<p>
|
<p>
|
||||||
<h2><a name="getting_started">How can I get started using BusyBox?</a></h2>
|
<h2><a name="getting_started">How can I get started using BusyBox?</a></h2>
|
||||||
<p> If you just want to try out busybox without installing it, download the
|
<p> If you just want to try out busybox without installing it, download the
|
||||||
tarball, extract it, run "make allyesconfig", and then run "make".
|
tarball, extract it, run "make defconfig", and then run "make".
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
This will create a busybox binary with all features enabled. To try
|
This will create a busybox binary with almost all features enabled. To try
|
||||||
out a busybox applet, type "./busybox [appletname] [options]", for
|
out a busybox applet, type "./busybox [appletname] [options]", for
|
||||||
example "./busybox ls -l" or "./busybox cat LICENSE". Type "./busybox"
|
example "./busybox ls -l" or "./busybox cat LICENSE". Type "./busybox"
|
||||||
to see a command list, and "busybox appletname --help" to see a brief
|
to see a command list, and "busybox appletname --help" to see a brief
|
||||||
@ -90,6 +91,57 @@ have additions to this FAQ document, we would love to add them,
|
|||||||
standalone shell is dependent on the existence of /proc/self/exe, so before
|
standalone shell is dependent on the existence of /proc/self/exe, so before
|
||||||
using it in a chroot environment you must mount /proc.)
|
using it in a chroot environment you must mount /proc.)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
<p>
|
||||||
|
<h2><a name="configure">How do I configure busybox?</a></h2>
|
||||||
|
<p> Busybox is configured similarly to the linux kernel. Create a default
|
||||||
|
configuration and then run "make menuconfig" to modify it. The end
|
||||||
|
result is a .config file that tells the busybox build process what features
|
||||||
|
to include. So instead of "./configure; make; make install" the equivalent
|
||||||
|
busybox build would be "make defconfig; make; make install".
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p> Busybox configured with all features enabled is a little under a megabyte
|
||||||
|
dynamically linked on x86. To create a smaller busybox, configure it with
|
||||||
|
fewer features. Individual busybox applets cost anywhere from a few
|
||||||
|
hundred bytes to tens of kilobytes. Disable unneeded applets to save,
|
||||||
|
space, using menuconfig.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>The most important busybox configurators are:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><p>make <b>defconfig</b> - Create the maximum "sane" configuration. This
|
||||||
|
enables almost all features, minus things like debugging options and features
|
||||||
|
that require changes to the rest of the system to work (such as selinux or
|
||||||
|
devfs device names). Use this if you want to start from a full-featured
|
||||||
|
busybox and remove features until it's small enough.</p></li>
|
||||||
|
<li><p>make <b>allnoconfig</b> - Disable everything. This creates a tiny version
|
||||||
|
of busybox that doesn't do anything. Start here if you know exactly what
|
||||||
|
you want and would like to select only those features.</p></li>
|
||||||
|
<li><p>make <b>menuconfig</b> - Interactively modify a .config file through a
|
||||||
|
multi-level menu interface. Use this after one of the previous two.</p></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Some other configuration options are:</p>
|
||||||
|
<ul>
|
||||||
|
<li><p>make <b>oldconfig</b> - Update an old .config file for a newer version
|
||||||
|
of busybox.</p></li>
|
||||||
|
<li><p>make <b>allyesconfig</b> - Select absolutely everything. This creates
|
||||||
|
a statically linked version of busybox full of debug code, with dependencies on
|
||||||
|
selinux, using devfs names... This makes sure everything compiles. Whether
|
||||||
|
or not the result would do anything useful is an open question.</p></li>
|
||||||
|
<li><p>make <b>allbareconfig</b> - Select all applets but disable all sub-features
|
||||||
|
within each applet. More build coverage testing.</p></li>
|
||||||
|
<li><p>make <b>randconfig</b> - Create a random configuration for test purposes.</p></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p> Menuconfig modifies your .config file through an interactive menu where you can enable or disable
|
||||||
|
busybox features, and get help about each feature.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To build a smaller busybox binary, run "make menuconfig" and disable the
|
To build a smaller busybox binary, run "make menuconfig" and disable the
|
||||||
features you don't need. (Or run "make allnoconfig" and then use
|
features you don't need. (Or run "make allnoconfig" and then use
|
||||||
|
Loading…
Reference in New Issue
Block a user