| # vi: set sw=4 ts=4: |
| |
| =head1 NAME |
| |
| BusyBox - The Swiss Army Knife of Embedded Linux |
| |
| =head1 SYNTAX |
| |
| busybox <applet> [arguments...] # or |
| |
| <applet> [arguments...] # if symlinked |
| |
| =head1 DESCRIPTION |
| |
| BusyBox combines tiny versions of many common UNIX utilities into a single |
| small executable. It provides minimalist replacements for most of the utilities |
| you usually find in GNU coreutils, util-linux, etc. The utilities in BusyBox |
| generally have fewer options than their full-featured GNU cousins; however, the |
| options that are included provide the expected functionality and behave very |
| much like their GNU counterparts. |
| |
| BusyBox has been written with size-optimization and limited resources in mind. |
| It is also extremely modular so you can easily include or exclude commands (or |
| features) at compile time. This makes it easy to customize your embedded |
| systems. To create a working system, just add /dev, /etc, and a Linux kernel. |
| BusyBox provides a fairly complete POSIX environment for any small or embedded |
| system. |
| |
| BusyBox is extremely configurable. This allows you to include only the |
| components you need, thereby reducing binary size. Run 'make config' or 'make |
| menuconfig' to select the functionality that you wish to enable. Then run |
| 'make' to compile BusyBox using your configuration. |
| |
| After the compile has finished, you should use 'make install' to install |
| BusyBox. This will install the 'bin/busybox' binary, in the target directory |
| specified by CONFIG_PREFIX. CONFIG_PREFIX can be set when configuring BusyBox, |
| or you can specify an alternative location at install time (i.e., with a |
| command line like 'make CONFIG_PREFIX=/tmp/foo install'). If you enabled |
| any applet installation scheme (either as symlinks or hardlinks), these will |
| also be installed in the location pointed to by CONFIG_PREFIX. |
| |
| =head1 USAGE |
| |
| BusyBox is a multi-call binary. A multi-call binary is an executable program |
| that performs the same job as more than one utility program. That means there |
| is just a single BusyBox binary, but that single binary acts like a large |
| number of utilities. This allows BusyBox to be smaller since all the built-in |
| utility programs (we call them applets) can share code for many common |
| operations. |
| |
| You can also invoke BusyBox by issuing a command as an argument on the |
| command line. For example, entering |
| |
| /bin/busybox ls |
| |
| will also cause BusyBox to behave as 'ls'. |
| |
| Of course, adding '/bin/busybox' into every command would be painful. So most |
| people will invoke BusyBox using links to the BusyBox binary. |
| |
| For example, entering |
| |
| ln -s /bin/busybox ls |
| ./ls |
| |
| will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled |
| into BusyBox). Generally speaking, you should never need to make all these |
| links yourself, as the BusyBox build system will do this for you when you run |
| the 'make install' command. |
| |
| If you invoke BusyBox with no arguments, it will provide you with a list of the |
| applets that have been compiled into your BusyBox binary. |
| |
| =head1 COMMON OPTIONS |
| |
| Most BusyBox applets support the B<--help> argument to provide a terse runtime |
| description of their behavior. If the CONFIG_FEATURE_VERBOSE_USAGE option has |
| been enabled, more detailed usage information will also be available. |
| |
| =head1 COMMANDS |
| |
| Currently available applets include: |