283 lines
11 KiB
HTML
283 lines
11 KiB
HTML
<!--#include file="header.html" -->
|
|
|
|
|
|
<h3>Frequently Asked Questions</h3>
|
|
|
|
This is a collection of some of the more frequently asked questions
|
|
about BusyBox. Some of the questions even have answers. If you
|
|
have additions to this FAQ document, we would love to add them,
|
|
|
|
<ol>
|
|
<li><a href="#kernel">Which Linux kernel versions are supported?</a>
|
|
<li><a href="#arch">Which architectures does BusyBox run on?</a>
|
|
<li><a href="#libc">Which C libraries are supported?</a>
|
|
<li><a href="#commercial">Can I include BusyBox as part of the software on my device?</a>
|
|
<li><a href="#bugs">I think I found a bug in BusyBox! What should I do?!</a>
|
|
<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><a href="#getting_started">How can I get started using BusyBox?</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><a href="#helpme">I need help with BusyBox! What should I do?</a>
|
|
<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="#external">Where can I find other small utilities since busybox does not include the features I want?</a></li>
|
|
<li><a href="#support">I think you guys are great and I want to help support your work!</a>
|
|
<li><a href="#optimize">I want to make busybox even smaller, how do I go about it?</a>
|
|
|
|
|
|
|
|
</ol>
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="kernel">Which Linux kernel versions are supported?</a></h2>
|
|
<p>
|
|
|
|
|
|
Full functionality requires Linux 2.2.x or better. A large fraction of the
|
|
code should run on just about anything. While the current code is fairly
|
|
Linux specific, it should be fairly easy to port the majority of the code
|
|
to support, say, FreeBSD or Solaris, or Mac OS X, or even Windows (if you
|
|
are into that sort of thing).
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="arch">Which architectures does BusyBox run on?</a></h2>
|
|
<p>
|
|
|
|
|
|
BusyBox in general will build on any architecture supported by gcc.
|
|
Kernel module loading for 2.2 and 2.4 Linux kernels is currently
|
|
limited to ARM, CRIS, H8/300, x86, ia64, x86_64, m68k, MIPS, PowerPC,
|
|
S390, SH3/4/5, Sparc, v850e, and x86_64 for 2.4.x kernels.
|
|
|
|
With 2.6.x kernels, module loading support should work on all architectures.
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="libc">Which C libraries are supported?</a></h2>
|
|
<p>
|
|
|
|
|
|
uClibc and glibc are supported. People have been looking at newlib and
|
|
dietlibc, but they are currently considered unsupported, untested, or
|
|
worse. Linux-libc5 is no longer supported. If you require a small C
|
|
library, you should probably use uClibc.
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="commercial">Can I include BusyBox as part of the software on my device?</h2>
|
|
|
|
Yes. As long as you <a href="http://busybox.net/license.html">fully comply
|
|
with the generous terms of the GPL BusyBox license</a> you can ship BusyBox
|
|
as part of the software on your device.
|
|
|
|
<br>
|
|
<a href="#support">Please consider sharing some of the money you make.</a>
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="bugs">I think I found a bug in BusyBox! What should I do?</h2>
|
|
<p>
|
|
|
|
|
|
<p>
|
|
|
|
If you simply need help with using or configuring BusyBox, please submit a
|
|
detailed description of your problem to the BusyBox mailing list at <a
|
|
href="mailto:busybox@mail.busybox.net"> busybox@mail.busybox.net</a>.
|
|
Please do not send private email to Erik (the maintainer of BusyBox) asking
|
|
for private help unless you are planning on paying for consulting services.
|
|
When we answer questions on the BusyBox mailing list, it helps everyone,
|
|
while private answers help only you...
|
|
|
|
<p>
|
|
|
|
The developers of BusyBox are busy people, and have only so much they can
|
|
keep in their brains at a time. As a result, bug reports sometimes get
|
|
lost when posted to the mailing list. To prevent your bug report from
|
|
getting lost, if you find a bug in BusyBox, please use the <a
|
|
href="http://bugs.busybox.net/">BusyBox Bug and Patch Tracking System</a>
|
|
to submit a detailed bug report.
|
|
|
|
<p>
|
|
|
|
The same also applies to patches... Regardless of whether your patch is a
|
|
bug fix or adds shiney new features, please post your patch to the <a
|
|
href="http://bugs.busybox.net/">BusyBox Bug and Patch Tracking System</a>
|
|
to make certain it is properly considered.
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<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>
|
|
<p>
|
|
|
|
Job control will be turned off since your shell can not obtain a controlling
|
|
terminal. This typically happens when you run your shell on /dev/console.
|
|
The kernel will not provide a controlling terminal on the /dev/console
|
|
device. Your should run your shell on a normal tty such as tty1 or ttyS0
|
|
and everything will work perfectly. If you <em>REALLY</em> want your shell
|
|
to run on /dev/console, then you can hack your kernel (if you are into that
|
|
sortof thing) by changing drivers/char/tty_io.c to change the lines where
|
|
it sets "noctty = 1;" to instead set it to "0". I recommend you instead
|
|
run your shell on a real console...
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="getting_started">How can I get started using BusyBox?</a></h2>
|
|
<p>
|
|
|
|
An easy method to build your own basic BusyBox based system, is to
|
|
follow these simple steps:
|
|
<ul>
|
|
<li> Point your web browser <a href="http://buildroot.uclibc.org/">here</a>
|
|
<li> Download a copy of buildroot
|
|
<li> Unpack the tarball on your Linux system somewhere
|
|
<li> run 'make' and configure things to taste.
|
|
<li> run 'unset CC'. Some Linux systems (i.e. Gentoo) set 'CC'
|
|
in the system environment which messes up cross compiles.
|
|
<li> run 'make'
|
|
<li> go have lunch, drink a pop, call a friend, play a video game, etc
|
|
till it finishes downloading software and compiling things.
|
|
<li> You should now have a shiny new BusyBox based system.
|
|
</ul>
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="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></h2>
|
|
<p>
|
|
|
|
You have not paid us a single cent and yet you still have the product of
|
|
many years of our work. We are not your slaves! We work on BusyBox
|
|
because we find it useful and interesting. If you go off flaming us, we
|
|
will ignore you.
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="helpme">I need help with BusyBox! What should I do?</a></h2>
|
|
<p>
|
|
|
|
If you find that you need help with BusyBox, you can ask for help on the
|
|
BusyBox mailing list at busybox@mail.busybox.net. In addition to the BusyBox
|
|
mailing list, Erik (andersee), Manuel (mjn3) and others are known to hang out
|
|
on the uClibc IRC channel: #uclibc on irc.freenode.net.
|
|
|
|
<p>
|
|
|
|
<b>Please do not send private email to Erik, Manuel, or the other BusyBox
|
|
contributors asking for private help unless you are planning on paying for
|
|
consulting services.</b>
|
|
|
|
<p>
|
|
|
|
When we answer questions on the BusyBox mailing list, it helps everyone
|
|
since people with similar problems in the future will be able to get help
|
|
by searching the mailing list archives. Private help is reserved as a paid
|
|
service. If you need to use private communication, or if you are serious
|
|
about getting timely assistance with BusyBox, you should seriously consider
|
|
paying for consulting services.
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="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></h2>
|
|
<p>
|
|
|
|
Sure! Now you have our attention! What you should do is contact <a
|
|
href="mailto:andersen@codepoet.org">Erik Andersen</a> of <a
|
|
href="http://codepoet-consulting.com/">CodePoet Consulting</a> to bid
|
|
on your project. If Erik is too busy to personally add your feature, there
|
|
are many other active BusyBox contributors who will almost certainly be able
|
|
to help you out. Erik can contact them privately, and may even let you to
|
|
post your request for services on the mailing list.
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<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!
|
|
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="support">I think you guys are great and I want to help support your work!</a></h2>
|
|
<p>
|
|
|
|
Wow, that would be great! If you would like to make a donation to help
|
|
support BusyBox, and/or request features, you can click here:
|
|
|
|
<!-- Begin PayPal Logo -->
|
|
<center>
|
|
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
|
<input type="hidden" name="cmd" value="_xclick">
|
|
<input type="hidden" name="business" value="andersen@codepoet.org">
|
|
<input type="hidden" name="item_name" value="Support BusyBox">
|
|
<input type="hidden" name="image_url" value="http://codepoet-consulting.com/images/codepoet.png">
|
|
<input type="hidden" name="no_shipping" value="1">
|
|
<input type="image" src="images/donate.png" name="submit" alt="Make donation using PayPal">
|
|
</form>
|
|
</center>
|
|
<!-- End PayPal Logo -->
|
|
|
|
If you prefer to contact Erik directly to make a donation, donate hardware,
|
|
request support, etc, you can contact
|
|
<a href="http://codepoet-consulting.com/">CodePoet Consulting</a> here.
|
|
CodePoet Consulting can accept both Visa and MasterCard for those that do not
|
|
trust PayPal...
|
|
|
|
<hr />
|
|
<p>
|
|
<h2><a name="optimize">I want to make busybox even smaller, how do I go about it?</a></h2>
|
|
<p>
|
|
To conserve bytes it's good to know where they're being used, and the
|
|
size of the final executable isn't always a reliable indicator of
|
|
the size of the components (since various structures are rounded up,
|
|
so a small change may not even be visible by itself, but many small
|
|
savings add up).
|
|
</p>
|
|
<p>
|
|
To examine a busybox binary with an eye to saving bytes, build an
|
|
optimized debug version and run the "nm" command against it, like so:
|
|
</p>
|
|
<p>
|
|
make clean && make STRIPCMD=/bin/true && nm --size-sort busybox
|
|
</p>
|
|
<p>
|
|
This gives a list of symbols and the amount of space allocated for
|
|
each one, sorted by size. (Note: do not enable CONFIG_DEBUG for this,
|
|
as that disables compiler optimization which is great for running gdb
|
|
but misleading when trying to figure out how much space each component
|
|
is really using under normal circumstances.)
|
|
</p>
|
|
<hr />
|
|
|
|
|
|
|
|
<br>
|
|
<br>
|
|
<br>
|
|
|
|
<!--#include file="footer.html" -->
|