Update docs
No binary (build failed)
—
(log yok)
| @@ -2,44 +2,40 @@ Please see the LICENSE file for details on copying and usage. | |
| 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 fileutils, shellutils, findutils, textutils, grep, gzip, |
| - | tar, etc. BusyBox provides a fairly complete POSIX environment for any small or |
| - | embedded system. 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 was originally written to support the Debian Rescue/Install disks, but |
| - | it also makes an excellent environment for any small or embedded system. |
| + | 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 provides a fairly complete POSIX |
| + | environment for any small or embedded system. |
| 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 kernel. |
| + | systems. To create a working system, just add /dev, /etc, and a Linux kernel. |
| - | As of version 0.20 there is now a version number. : ) Also as of version 0.20, |
| - | BusyBox is now modularized to easily allow you to build only the components you |
| - | need, thereby reducing binary size. Run 'make config' or 'make menuconfig' |
| - | for select the functionality that you wish to enable. |
| + | BusyBox is extremely configurable. This allows you to include only the |
| + | components you need, thereby reducing binary size. Run 'make config' or |
| + | 'make menuconfig' for select the functionality that you wish to enable. |
| After the build is complete, a busybox.links file is generated. This is | |
| - | used by 'make install' to create symlinks to the busybox binary for all |
| + | used by 'make install' to create symlinks to the BusyBox binary for all |
| compiled in functions. By default, 'make install' will place the symlink | |
| forest into `pwd`/_install unless you have defined the PREFIX environment | |
| variable (i.e., 'make PREFIX=/tmp/foo install') | |
| - | If you wish to install hardlinks, rather than symlinks, you can use |
| - | 'make install-hardlinks' instead. |
| + | If you wish to install hard links, rather than symlinks, you can use |
| + | 'make PREFIX=/tmp/foo install-hardlinks' instead. |
| ---------------- | |
| Supported architectures: | |
| - | Busybox in general will build on any architecture supported by gcc. It has |
| + | BusyBox in general will build on any architecture supported by gcc. It has |
| a few specialized features added for __sparc__ and __alpha__. insmod | |
| functionality is currently limited to x86, ARM, SH3/4, powerpc, m68k, | |
| MIPS, cris, and v850e. | |
| - | Supported libcs: |
| + | Supported C Libraries: |
| glibc-2.0.x, glibc-2.1.x, glibc-2.2.x, glibc-2.3.x, uClibc. People | |
| are looking at newlib and diet-libc, but consider them unsupported, | |
| @@ -66,7 +62,7 @@ the mailing list if you are interested. | |
| Bugs: | |
| - | If you find bugs, please submit a detailed bug report to the busybox mailing |
| + | If you find bugs, please submit a detailed bug report to the BusyBox mailing |
| list at [email protected]. A well-written bug report should include a | |
| transcript of a shell session that demonstrates the bad behavior and enables | |
| anyone else to duplicate the bug on their own machine. The following is such | |
| @@ -76,21 +72,21 @@ an example: | |
| From: [email protected] | |
| Subject: /bin/date doesn't work | |
| - | Package: busybox |
| + | Package: BusyBox |
| Version: 1.00 | |
| - | When I execute Busybox 'date' it produces unexpected results. |
| + | When I execute BusyBox 'date' it produces unexpected results. |
| With GNU date I get the following output: | |
| $ date | |
| - | Wed Mar 21 14:19:41 MST 2001 |
| + | Sat Mar 27 14:19:41 MST 2004 |
| But when I use BusyBox date I get this instead: | |
| $ date | |
| - | llegal instruction |
| + | illegal instruction |
| - | I am using Debian unstable, kernel version 2.4.19-rmk1 on an Netwinder, |
| + | I am using Debian unstable, kernel version 2.4.25-vrs2 on a Netwinder, |
| and the latest uClibc from CVS. Thanks for the wonderful program! | |
| -Diligent | |
| @@ -101,7 +97,7 @@ reports lacking such detail may never be fixed... Thanks for understanding. | |
| ---------------- | |
| - | FTP: |
| + | Downloads: |
| Source for the latest released version, as well as daily snapshots, can always | |
| be downloaded from | |
| @@ -125,5 +121,4 @@ For those that are actively contributing there is even CVS write access: | |
| Please feed suggestions, bug reports, insults, and bribes back to: | |
| Erik Andersen | |
| <[email protected]> | |
| - | <[email protected]> |
| @@ -1,49 +0,0 @@ | |
| - | TODO list for busybox in no particular order. Just because something |
| - | is listed here doesn't mean that it is going to be added to busybox, |
| - | or that doing so is even a good idea. It just means that we _might_ get |
| - | around to it some time. If you have any good ideas, please send them |
| - | on in... |
| - | |
| - | -Erik |
| - | |
| - | ----------- |
| - | |
| - | Possible apps to include some time: |
| - | |
| - | * group/commonize strings, remove dups (for i18n, l10n) |
| - | |
| - | ----------- |
| - | |
| - | With sysvinit, reboot, poweroff and halt all used a named pipe, |
| - | /dev/initctl, to communicate with the init process. Busybox |
| - | currently uses signals to communicate with init. This makes |
| - | busybox incompatible with sysvinit. We should probably use |
| - | a named pipe as well so we can be compatible. |
| - | |
| - | ----------------------- |
| - | |
| - | Run the following: |
| - | |
| - | rm -f busybox && make LDFLAGS+=-nostdlib 2>&1 | \ |
| - | sed -ne 's/.*undefined reference to `\(.*\)..*/\1/gp' | sort | uniq |
| - | |
| - | reveals the list of all external (i.e., libc) things that BusyBox depends on. |
| - | It would be a very nice thing to reduce this list to an absolute minimum, to |
| - | reduce the footprint of busybox, especially when staticly linking with |
| - | libraries such as uClibc. |
| - | |
| - | ----------------------- |
| - | |
| - | Compile with debugging on, run 'nm --size-sort ./busybox' |
| - | and then start with the biggest things and make them smaller... |
| - | |
| - | ----------------------- |
| - | |
| - | xargs could use a -l option |
| - | |
| - | ------------------------------------------------------------------ |
| - | |
| - | libbb/unzip.c and archival/gzip.c have common constant static arrays and |
| - | code for initializing the CRC array. Both use CRC-32 and could use |
| - | common code for CRC calculation. Within archival/gzip.c, the CRC |
| - | array should be malloc-ed as it is in libbb/unzip.c . |
| @@ -1,23 +1,5 @@ | |
| =back | |
| - | =head1 LIBC NSS |
| - | |
| - | GNU Libc uses the Name Service Switch (NSS) to configure the behavior of the C |
| - | library for the local environment, and to configure how it reads system data, |
| - | such as passwords and group information. BusyBox has made it Policy that it |
| - | will never use NSS, and will never use and libc calls that make use of NSS. |
| - | This allows you to run an embedded system without the need for installing an |
| - | /etc/nsswitch.conf file and without and /lib/libnss_* libraries installed. |
| - | |
| - | If you are using a system that is using a remote LDAP server for authentication |
| - | via GNU libc NSS, and you want to use BusyBox, then you will need to adjust the |
| - | BusyBox source. Chances are though, that if you have enough space to install |
| - | of that stuff on your system, then you probably want the full GNU utilities. |
| - | |
| - | =head1 SEE ALSO |
| - | |
| - | textutils(1), shellutils(1), etc... |
| - | |
| =head1 MAINTAINER | |
| Erik Andersen <[email protected]> | |
| @@ -173,4 +155,4 @@ Glenn Engel <[email protected]> | |
| =cut | |
| - | # $Id: busybox_footer.pod,v 1.13 2004/03/13 08:32:14 andersen Exp $ |
| + | # $Id: busybox_footer.pod,v 1.14 2004/03/27 09:40:15 andersen Exp $ |
| @@ -14,42 +14,67 @@ BusyBox - The Swiss Army Knife of Embedded Linux | |
| 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 fileutils, shellutils, findutils, textutils, grep, gzip, |
| - | tar, etc. BusyBox provides a fairly complete POSIX environment for any small |
| - | or embedded system. 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. |
| + | 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 provides a fairly complete POSIX |
| + | environment for any small or embedded system. |
| 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 a kernel, a shell (such as ash), |
| - | and an editor (such as elvis-tiny or ae). |
| + | 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 is extremely configurable. This allows you to include only the |
| + | components you need, thereby reducing binary size. Run 'make config' or 'make |
| + | menuconfig' for select the functionality that you wish to enable. The 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, and will also create |
| + | symlinks pointing to the '/bin/busybox' binary for each utility that you |
| + | compile into BusyBox. By default, 'make install' will place these symlinks |
| + | into the './_install' directory, unless you have defined 'PREFIX', thereby |
| + | specifying some alternative location (i.e., 'make PREFIX=/tmp/foo install'). |
| + | If you wish to install using hardlinks, rather than the default of using |
| + | symlinks, you can use 'make PREFIX=/tmp/foo install-hardlinks' instead. |
| =head1 USAGE | |
| - | When you create a link to BusyBox for the function you wish to use, when BusyBox |
| - | is called using that link it will behave as if the command itself has been invoked. |
| + | 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 the 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 ./BusyBox ls |
| + | ln -s /bin/busybox ls |
| ./ls | |
| will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled | |
| - | into BusyBox). |
| - | |
| - | You can also invoke BusyBox by issuing the command as an argument on the |
| - | command line. For example, entering |
| + | 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. |
| - | ./BusyBox ls |
| - | |
| - | will also cause BusyBox to behave as 'ls'. |
| + | 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 commands support the B<-h> option to provide a |
| - | terse runtime description of their behavior. |
| + | Most BusyBox commands 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 | |
| @@ -80,4 +105,26 @@ Currently defined functions include: | |
| =over 4 | |
| + | =head1 LIBC NSS |
| + | |
| + | GNU Libc (glibc) uses the Name Service Switch (NSS) to configure the behavior |
| + | of the C library for the local environment, and to configure how it reads |
| + | system data, such as passwords and group information. This is implemented |
| + | using an /etc/nsswitch.conf configuration file, and using one or more of the |
| + | /lib/libnss_* libraries. BusyBox tries to avoid using any libc calls that make |
| + | use of NSS. Some applets, such as login and su, will use libc functions that |
| + | usually require NSS. |
| + | |
| + | If you enable CONFIG_USE_BB_PWD_GRP, BusyBox will use internal functions to |
| + | directly access the /etc/passwd, /etc/group, and /etc/shadow files without |
| + | using NSS. This may allow you to run your system without the need for |
| + | installing any of the NSS configuration files and libraries. |
| + | |
| + | When used with glibc, the BusyBox 'networking' applets will similarly require |
| + | that you install at least some of the glibc NSS stuff (in particular, |
| + | /etc/nsswitch.conf, /lib/libnss_dns*, /lib/libnss_files*, and /lib/libresolv*). |
| + | |
| + | Shameless Plug: As an alternative one could use a C library such as uClibc. In |
| + | addition to making your system significantly smaller, uClibc does not need or |
| + | use any NSS support files or libraries. |