diff options
-rw-r--r-- | docs/busybox.net/FAQ.html | 148 |
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 | |||
8 | have additions to this FAQ document, we would love to add them, | 8 | have 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 <favorite feature> right now! How come | 20 | <li><a href="#demanding">I demand that you to add <favorite feature> 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 <favorite feature> right now! How come | 225 | <h2><a name="demanding">I demand that you to add <favorite feature> 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> |