aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2005-09-23 16:52:09 +0000
committerlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2005-09-23 16:52:09 +0000
commitd326261bf1fbae67513f7ca785a70249f7675f90 (patch)
tree95aeb09feee7f5f6ba4c09f8917ea13bc40fdef6 /docs
parent77c82d85b37b15aaa4e9c04ca22384e263ad4c2c (diff)
downloadbusybox-w32-d326261bf1fbae67513f7ca785a70249f7675f90.tar.gz
busybox-w32-d326261bf1fbae67513f7ca785a70249f7675f90.tar.bz2
busybox-w32-d326261bf1fbae67513f7ca785a70249f7675f90.zip
We've gotten enough questions that are related to building systems rather
than anything about busybox that I'm deeming it a FAQ, and answering it. I gave a quick swipe to a couple of other slightly stale questions along the way. The busybox 1.01 README has much more detailed versions of these answers, that should probably be propogated to the 1.1 line and perhaps bits of it transplanted to the FAQ? (Or just have the README visible on the web page someplace?) git-svn-id: svn://busybox.net/trunk/busybox@11598 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'docs')
-rw-r--r--docs/busybox.net/FAQ.html148
1 files changed, 107 insertions, 41 deletions
diff --git a/docs/busybox.net/FAQ.html b/docs/busybox.net/FAQ.html
index 7931d5dc4..2dd202740 100644
--- a/docs/busybox.net/FAQ.html
+++ b/docs/busybox.net/FAQ.html
@@ -8,6 +8,8 @@ about BusyBox. Some of the questions even have answers. If you
8have additions to this FAQ document, we would love to add them, 8have additions to this FAQ document, we would love to add them,
9 9
10<ol> 10<ol>
11<li><a href="#getting_started">How can I get started using BusyBox?</a>
12<li><a href="#build_system">How do I build a BusyBox-based system?</a>
11<li><a href="#kernel">Which Linux kernel versions are supported?</a> 13<li><a href="#kernel">Which Linux kernel versions are supported?</a>
12<li><a href="#arch">Which architectures does BusyBox run on?</a> 14<li><a href="#arch">Which architectures does BusyBox run on?</a>
13<li><a href="#libc">Which C libraries are supported?</a> 15<li><a href="#libc">Which C libraries are supported?</a>
@@ -15,7 +17,6 @@ have additions to this FAQ document, we would love to add them,
15<li><a href="#bugs">I think I found a bug in BusyBox! What should I do?!</a> 17<li><a href="#bugs">I think I found a bug in BusyBox! What should I do?!</a>
16<li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control 18<li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control
17 turned off" errors? Why doesn't Control-C work within my shell?</a> 19 turned off" errors? Why doesn't Control-C work within my shell?</a>
18<li><a href="#getting_started">How can I get started using BusyBox?</a>
19<li><a href="#demanding">I demand that you to add &lt;favorite feature&gt; right now! How come 20<li><a href="#demanding">I demand that you to add &lt;favorite feature&gt; right now! How come
20 you don't answer all my questions on the mailing list instantly? I demand 21 you don't answer all my questions on the mailing list instantly? I demand
21 that you help me with all of my problems <em>Right Now</em>!</a> 22 that you help me with all of my problems <em>Right Now</em>!</a>
@@ -31,46 +32,132 @@ have additions to this FAQ document, we would love to add them,
31 32
32</ol> 33</ol>
33 34
34
35<hr /> 35<hr />
36<p> 36<p>
37<h2><a name="kernel">Which Linux kernel versions are supported?</a></h2> 37<h2><a name="getting_started">How can I get started using BusyBox?</a></h2>
38<p> If you just want to try out busybox without installing it, download the
39 tarball, extract it, run "make allyesconfig", and then run "make".
40</p>
41<p>
42 This will create a busybox binary with all features enabled. To try
43 out a busybox applet, type "./busybox [appletname] [options]", for
44 example "./busybox ls -l" or "./busybox cat LICENSE". Type "./busybox"
45 to see a command list, and "busybox appletname --help" to see a brief
46 usage message for a given applet.
47</p>
48<p>
49 BusyBox uses the name it was invoked under to determine which applet is
50 being invoked. (Try "mv busybox ls" and then "./ls -l".) Installing
51 busybox consists of creating symlinks (or hardlinks) to the busybox
52 binary for each applet in busybox, and making sure these symlinks are in
53 the shell's command $PATH. ("make install" creates these symlinks, and
54 "make install-hardlinks" creates hardlinks instead.) The special applet
55 name "busybox" (or with any optional suffix, such as "busybox-static")
56 uses the first argument to determine which applet to run, as shown above.
57</p>
58<p>
59 BusyBox also has a feature called the "standalone shell", where the busybox
60 shell runs any built-in applets before checking the command path. This
61 feature is also enabled by "make allyesconfig", and to try it out run
62 the command line "PATH= ./busybox ash". This will blank your command path
63 and run busybox as your command shell, so the only commands it can find
64 (without an explicit path such as /bin/ls) are the built-in busybox ones.
65 This is another good way to see what's built into busybox. (Note that the
66 standalone shell is dependent on the existence of /proc/self/exe, so before
67 using it in a chroot environment you must mount /proc.)
68</p>
69<p>
70 To build a smaller busybox binary, run "make menuconfig" and disable the
71 features you don't need. (Or run "make allnoconfig" and then use
72 menuconfig to add just the features you need. Don't forget to recompile
73 with "make" once you've finished configuring.)
74</p>
75<hr/>
76<p/>
77<h2><a name="build_system">How do I build a BusyBox-based system?</a></h2>
78<p>
79 BusyBox is a package that replaces a dozen standard packages, but it is
80 not by itself a complete bootable system. Building an entire Linux
81 distribution from source is a bit beyond the scope of this FAQ, but it
82 understandably keeps cropping up on the mailing list, so here are some
83 pointers.
84</p>
85<p>
86 Start by learning how to strip a working system down to the bare essentials
87 needed to run one or two commands, so you know what it is you actually
88 need. An excellent practical place to do
89 this is the <a href="http://www.tldp.org/HOWTO/Bootdisk-HOWTO/">Linux
90 BootDisk Howto</a>, or for a more theoretical approach try
91 <a href="http://www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html">From
92 PowerUp to Bash Prompt</a>.
93</p>
94<p>
95 To learn how to build a working Linux system entirely from source code,
96 the place to go is the <a href="http://www.linuxfromscratch.org">Linux
97 From Scratch</a> project. They have an entire book of step-by-step
98 instructions you can
99 <a href="http://www.linuxfromscratch.org/lfs/view/stable/">read online</a>
100 or
101 <a href="http://www.linuxfromscratch.org/lfs/downloads/stable/">download</a>.
102 Be sure to check out the other sections of their main page, including
103 Beyond Linux From Scratch, Hardened Linux From Scratch, their Hints
104 directory, and their LiveCD project. (They also have mailing lists which
105 are better sources of answers to Linux-system building questions than
106 the busybox list.)
107</p>
38<p> 108<p>
109 If you want an automated yet customizable system builder which produces
110 a BusyBox and uClibc based system, try
111 <a href="http://buildroot.uclibc.org">buildroot</a>, which is
112 another project by the maintainer of the uClibc and BusyBox projects
113 (Erik Andersen). Download the tarball, extract it, unset CC, make.
114 For more instructions, see the website.
115</p>
39 116
40 117
41 Full functionality requires Linux 2.2.x or better. A large fraction of the 118<hr />
119<p>
120<h2><a name="kernel">Which Linux kernel versions are supported?</a></h2>
121<p>
122 Full functionality requires Linux 2.4.x or better. (Earlier versions may
123 still work, but are no longer regularly tested.) A large fraction of the
42 code should run on just about anything. While the current code is fairly 124 code should run on just about anything. While the current code is fairly
43 Linux specific, it should be fairly easy to port the majority of the code 125 Linux specific, it should be fairly easy to port the majority of the code
44 to support, say, FreeBSD or Solaris, or Mac OS X, or even Windows (if you 126 to support, say, FreeBSD or Solaris, or Mac OS X, or even Windows (if you
45 are into that sort of thing). 127 are into that sort of thing).
46 128</p>
47
48<hr /> 129<hr />
49<p> 130<p>
50<h2><a name="arch">Which architectures does BusyBox run on?</a></h2> 131<h2><a name="arch">Which architectures does BusyBox run on?</a></h2>
51<p> 132<p>
52
53
54 BusyBox in general will build on any architecture supported by gcc. 133 BusyBox in general will build on any architecture supported by gcc.
55 Kernel module loading for 2.2 and 2.4 Linux kernels is currently 134 Kernel module loading for 2.4 Linux kernels is currently
56 limited to ARM, CRIS, H8/300, x86, ia64, x86_64, m68k, MIPS, PowerPC, 135 limited to ARM, CRIS, H8/300, x86, ia64, x86_64, m68k, MIPS, PowerPC,
57 S390, SH3/4/5, Sparc, v850e, and x86_64 for 2.4.x kernels. 136 S390, SH3/4/5, Sparc, v850e, and x86_64 for 2.4.x kernels.
58 137</p>
138<p>
59 With 2.6.x kernels, module loading support should work on all architectures. 139 With 2.6.x kernels, module loading support should work on all architectures.
60 140</p>
61
62<hr /> 141<hr />
63<p> 142<p>
64<h2><a name="libc">Which C libraries are supported?</a></h2> 143<h2><a name="libc">Which C libraries are supported?</a></h2>
65<p> 144<p>
66 145 On Linux, BusyBox releases are tested against uClibc (0.9.27 or later) and
67 146 glibc (2.2 or later). Both should provide full functionality with busybox,
68 uClibc and glibc are supported. People have been looking at newlib and 147 and if you find a bug we want to hear about it.
69 dietlibc, but they are currently considered unsupported, untested, or 148</p>
70 worse. Linux-libc5 is no longer supported. If you require a small C 149</p>
71 library, you should probably use uClibc. 150 Linux-libc5 is no longer maintained (and has no known advantages over
72 151 uClibc), dietlibc is known to have numerous unfixed bugs, and klibc is
73 152 missing too many features to build BusyBox. If you require a small C
153 library for Linux, the busybox developers recommend uClibc.
154</p>
155<p>
156 Some BusyBox applets have been built and run under a combination
157 of newlib and libgloss (see
158 <a href="http://www.busybox.net/lists/busybox/2005-March/013759.html">this thread</a>).
159 This is still experimental, but may be supported in a future release.
160</p>
74<hr /> 161<hr />
75<p> 162<p>
76<h2><a name="commercial">Can I include BusyBox as part of the software on my device?</a></h2> 163<h2><a name="commercial">Can I include BusyBox as part of the software on my device?</a></h2>
@@ -135,27 +222,6 @@ have additions to this FAQ document, we would love to add them,
135 222
136<hr /> 223<hr />
137<p> 224<p>
138<h2><a name="getting_started">How can I get started using BusyBox?</a></h2>
139<p>
140
141 An easy method to build your own basic BusyBox based system, is to
142 follow these simple steps:
143 <ul>
144 <li> Point your web browser <a href="http://buildroot.uclibc.org/">here</a>
145 <li> Download a copy of buildroot
146 <li> Unpack the tarball on your Linux system somewhere
147 <li> run 'make' and configure things to taste.
148 <li> run 'unset CC'. Some Linux systems (i.e. Gentoo) set 'CC'
149 in the system environment which messes up cross compiles.
150 <li> run 'make'
151 <li> go have lunch, drink a pop, call a friend, play a video game, etc
152 till it finishes downloading software and compiling things.
153 <li> You should now have a shiny new BusyBox based system.
154 </ul>
155
156
157<hr />
158<p>
159<h2><a name="demanding">I demand that you to add &lt;favorite feature&gt; right now! How come 225<h2><a name="demanding">I demand that you to add &lt;favorite feature&gt; right now! How come
160 you don't answer all my questions on the mailing list instantly? I demand 226 you don't answer all my questions on the mailing list instantly? I demand
161 that you help me with all of my problems <em>Right Now</em>!</a></h2> 227 that you help me with all of my problems <em>Right Now</em>!</a></h2>