| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 1 | Please see the LICENSE file for details on copying and usage. | 
| Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame^] | 2 |  | 
| Erik Andersen | 330fd2b | 2000-05-19 05:35:19 +0000 | [diff] [blame] | 3 | BusyBox combines tiny versions of many common UNIX utilities into a single | 
 | 4 | small executable. It provides minimalist replacements for most of the utilities | 
 | 5 | you usually find in fileutils, shellutils, findutils, textutils, grep, gzip, | 
 | 6 | tar, etc. BusyBox provides a fairly complete POSIX environment for any small or | 
| Eric Andersen | 0730943 | 2000-11-29 22:12:19 +0000 | [diff] [blame] | 7 | embedded system. The utilities in BusyBox generally have fewer options than | 
| Erik Andersen | 330fd2b | 2000-05-19 05:35:19 +0000 | [diff] [blame] | 8 | their full featured GNU cousins; however, the options that are included provide | 
 | 9 | the expected functionality and behave very much like their GNU counterparts. | 
| Eric Andersen | cc8ed39 | 1999-10-05 16:24:54 +0000 | [diff] [blame] | 10 |  | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 11 | BusyBox was originally written to support the Debian Rescue/Install disks, but | 
 | 12 | it also makes an excellent environment for any small or embedded system. | 
 | 13 |  | 
| Erik Andersen | 330fd2b | 2000-05-19 05:35:19 +0000 | [diff] [blame] | 14 | BusyBox has been written with size-optimization and limited resources in mind. | 
 | 15 | It is also extremely modular so you can easily include or exclude commands (or | 
 | 16 | features) at compile time. This makes it easy to customize your embedded | 
| Eric Andersen | 9e6089e | 2001-08-02 19:31:08 +0000 | [diff] [blame] | 17 | systems. To create a working system, just add /dev, /etc, and a kernel. | 
| Eric Andersen | cc8ed39 | 1999-10-05 16:24:54 +0000 | [diff] [blame] | 18 |  | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 19 | As of version 0.20 there is now a version number. : ) Also as of version 0.20, | 
| Erik Andersen | 330fd2b | 2000-05-19 05:35:19 +0000 | [diff] [blame] | 20 | BusyBox is now modularized to easily allow you to build only the components you | 
| Glenn L McGrath | 062c74f | 2002-11-27 09:29:49 +0000 | [diff] [blame] | 21 | need, thereby reducing binary size. Run 'make config' or 'make menuconfig' | 
 | 22 | for select the functionality that you wish to enable. | 
| Erik Andersen | 330fd2b | 2000-05-19 05:35:19 +0000 | [diff] [blame] | 23 |  | 
| Eric Andersen | 0730943 | 2000-11-29 22:12:19 +0000 | [diff] [blame] | 24 | After the build is complete, a busybox.links file is generated.  This is | 
| Erik Andersen | 330fd2b | 2000-05-19 05:35:19 +0000 | [diff] [blame] | 25 | used by 'make install' to create symlinks to the busybox binary for all | 
 | 26 | compiled in functions.  By default, 'make install' will place the symlink | 
 | 27 | forest into `pwd`/_install unless you have defined the PREFIX environment | 
| Eric Andersen | 8ec10a9 | 2001-01-27 09:33:39 +0000 | [diff] [blame] | 28 | variable (i.e., 'make PREFIX=/tmp/foo install') | 
| Eric Andersen | cc8ed39 | 1999-10-05 16:24:54 +0000 | [diff] [blame] | 29 |  | 
| Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame^] | 30 | If you wish to install hardlinks, rather than symlinks, you can use | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 31 | 'make install-hardlinks' instead. | 
 | 32 |  | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 33 | ---------------- | 
| Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame^] | 34 |  | 
| Mark Whitley | 3654ca5 | 2001-01-26 20:58:23 +0000 | [diff] [blame] | 35 | Supported architectures: | 
 | 36 |  | 
 | 37 |    Busybox in general will build on any architecture supported by gcc.  It has | 
 | 38 |    a few specialized features added for __sparc__ and __alpha__.  insmod | 
| Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame^] | 39 |    functionality is currently limited to x86, ARM, SH3/4, powerpc, m68k, | 
| Eric Andersen | c181f34 | 2003-12-11 02:48:15 +0000 | [diff] [blame] | 40 |    MIPS, cris, and v850e. | 
| Mark Whitley | 3654ca5 | 2001-01-26 20:58:23 +0000 | [diff] [blame] | 41 |  | 
 | 42 | Supported libcs: | 
 | 43 |  | 
| Eric Andersen | 85c3c3f | 2003-07-16 07:31:14 +0000 | [diff] [blame] | 44 |    glibc-2.0.x, glibc-2.1.x, glibc-2.2.x, glibc-2.3.x, uClibc.  People | 
| Eric Andersen | e5d58c3 | 2001-11-10 10:46:42 +0000 | [diff] [blame] | 45 |    are looking at newlib and diet-libc, but consider them unsupported, | 
| Eric Andersen | 85c3c3f | 2003-07-16 07:31:14 +0000 | [diff] [blame] | 46 |    untested, or worse.  Linux-libc5 is no longer supported -- you | 
 | 47 |    should probably use uClibc instead if you want a small C library. | 
| Mark Whitley | 3654ca5 | 2001-01-26 20:58:23 +0000 | [diff] [blame] | 48 |  | 
 | 49 | Supported kernels: | 
 | 50 |  | 
| Eric Andersen | 85c3c3f | 2003-07-16 07:31:14 +0000 | [diff] [blame] | 51 |    Full functionality requires Linux 2.2.x or better.  A large fraction of the | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 52 |    code should run on just about anything.  While the current code is fairly | 
 | 53 |    Linux specific, it should be fairly easy to port the majority of the code | 
 | 54 |    to, say, FreeBSD or Solaris, or MacOsX, or even Windows (if you are into that | 
 | 55 |    sortof thing). | 
| Mark Whitley | 3654ca5 | 2001-01-26 20:58:23 +0000 | [diff] [blame] | 56 |  | 
 | 57 | ---------------- | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 58 |  | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 59 | Getting help: | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 60 |  | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 61 | When you find you need help, you can check out the BusyBox mailing list | 
| Eric Andersen | 2423b12 | 2001-12-08 01:56:15 +0000 | [diff] [blame] | 62 | archives at http://busybox.net/lists/busybox/ or even join | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 63 | the mailing list if you are interested. | 
 | 64 |  | 
 | 65 | ---------------- | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 66 |  | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 67 | Bugs: | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 68 |  | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 69 | If you find bugs, please submit a detailed bug report to the busybox mailing | 
| Eric Andersen | f1d3ac4 | 2003-10-22 10:19:01 +0000 | [diff] [blame] | 70 | list at busybox@mail.busybox.net.  A well-written bug report should include a | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 71 | transcript of a shell session that demonstrates the bad behavior and enables | 
| Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame^] | 72 | anyone else to duplicate the bug on their own machine. The following is such | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 73 | an example: | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 74 |  | 
| Eric Andersen | f1d3ac4 | 2003-10-22 10:19:01 +0000 | [diff] [blame] | 75 |     To: busybox@mail.busybox.net | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 76 |     From: diligent@testing.linux.org | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 77 |     Subject: /bin/date doesn't work | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 78 |  | 
 | 79 |     Package: busybox | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 80 |     Version: 1.00 | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 81 |  | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 82 |     When I execute Busybox 'date' it produces unexpected results. | 
 | 83 |     With GNU date I get the following output: | 
 | 84 |  | 
 | 85 | 	$ date | 
 | 86 | 	Wed Mar 21 14:19:41 MST 2001 | 
 | 87 |  | 
 | 88 |     But when I use BusyBox date I get this instead: | 
 | 89 |  | 
 | 90 | 	$ date | 
 | 91 | 	llegal instruction | 
 | 92 |  | 
| Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame^] | 93 |     I am using Debian unstable, kernel version 2.4.19-rmk1 on an Netwinder, | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 94 |     and the latest uClibc from CVS.  Thanks for the wonderful program! | 
 | 95 |  | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 96 | 	-Diligent | 
 | 97 |  | 
 | 98 | Note the careful description and use of examples showing not only what BusyBox | 
 | 99 | does, but also a counter example showing what an equivalent GNU app does.  Bug | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 100 | reports lacking such detail may never be fixed...  Thanks for understanding. | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 101 |  | 
 | 102 | ---------------- | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 103 |  | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 104 | FTP: | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 105 |  | 
| Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame^] | 106 | Source for the latest released version, as well as daily snapshots, can always | 
 | 107 | be downloaded from | 
| Eric Andersen | b9c0b99 | 2001-12-22 00:37:54 +0000 | [diff] [blame] | 108 |     http://busybox.net/downloads/ | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 109 |  | 
 | 110 | ---------------- | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 111 |  | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 112 | CVS: | 
| Eric Andersen | 235f66d | 2000-12-13 18:07:38 +0000 | [diff] [blame] | 113 |  | 
| Eric Andersen | 0730943 | 2000-11-29 22:12:19 +0000 | [diff] [blame] | 114 | BusyBox now has its own publicly browsable CVS tree at: | 
| Eric Andersen | 2423b12 | 2001-12-08 01:56:15 +0000 | [diff] [blame] | 115 |     http://busybox.net/cgi-bin/cvsweb/busybox/ | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 116 |  | 
 | 117 | Anonymous CVS access is available.  For instructions, check out: | 
| Eric Andersen | 2423b12 | 2001-12-08 01:56:15 +0000 | [diff] [blame] | 118 |     http://busybox.net/cvs_anon.html | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 119 |  | 
 | 120 | For those that are actively contributing there is even CVS write access: | 
| Eric Andersen | 2423b12 | 2001-12-08 01:56:15 +0000 | [diff] [blame] | 121 |     http://busybox.net/cvs_write.html | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 122 |  | 
| Eric Andersen | a29dec2 | 2000-06-22 00:19:33 +0000 | [diff] [blame] | 123 | ---------------- | 
 | 124 |  | 
| Eric Andersen | ded6259 | 1999-11-18 00:19:26 +0000 | [diff] [blame] | 125 | Please feed suggestions, bug reports, insults, and bribes back to: | 
| Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame^] | 126 | 	Erik Andersen | 
| Eric Andersen | bdfd0d7 | 2001-10-24 05:00:29 +0000 | [diff] [blame] | 127 | 	<andersen@codepoet.org> | 
| Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 128 | 	<andersen@codepoet.org> | 
| Eric Andersen | 84b0092 | 1999-12-11 04:16:51 +0000 | [diff] [blame] | 129 |  |