Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 1 | <!--#include file="header.html" --> |
| 2 | |
| 3 | |
| 4 | <h3>Frequently Asked Questions</h3> |
| 5 | |
| 6 | This is a collection of some of the more frequently asked questions |
| 7 | about BusyBox. Some of the questions even have answers. If you |
| 8 | have additions to this FAQ document, we would love to add them, |
| 9 | |
| 10 | <ol> |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 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> |
Rob Landley | d48633f | 2006-03-09 18:03:21 +0000 | [diff] [blame] | 13 | <li><a href="#init">Busybox init isn't working!</a> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 14 | <li><a href="#kernel">Which Linux kernel versions are supported?</a> |
| 15 | <li><a href="#arch">Which architectures does BusyBox run on?</a> |
| 16 | <li><a href="#libc">Which C libraries are supported?</a> |
| 17 | <li><a href="#commercial">Can I include BusyBox as part of the software on my device?</a> |
| 18 | <li><a href="#bugs">I think I found a bug in BusyBox! What should I do?!</a> |
| 19 | <li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control |
| 20 | turned off" errors? Why doesn't Control-C work within my shell?</a> |
| 21 | <li><a href="#demanding">I demand that you to add <favorite feature> right now! How come |
| 22 | you don't answer all my questions on the mailing list instantly? I demand |
| 23 | that you help me with all of my problems <em>Right Now</em>!</a> |
| 24 | <li><a href="#helpme">I need help with BusyBox! What should I do?</a> |
| 25 | <li><a href="#contracts">I need you to add <favorite feature>! Are the BusyBox developers willing to |
| 26 | be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide |
| 27 | support contracts?</a> |
Mike Frysinger | 77dbe73 | 2005-04-17 04:32:22 +0000 | [diff] [blame] | 28 | <li><a href="#external">Where can I find other small utilities since busybox does not include the features I want?</a></li> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 29 | <li><a href="#support">I think you guys are great and I want to help support your work!</a> |
Rob Landley | de7f9b7 | 2005-07-31 04:27:19 +0000 | [diff] [blame] | 30 | <li><a href="#optimize">I want to make busybox even smaller, how do I go about it?</a> |
| 31 | |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 32 | |
| 33 | |
| 34 | </ol> |
| 35 | |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 36 | <hr /> |
| 37 | <p> |
| 38 | <h2><a name="getting_started">How can I get started using BusyBox?</a></h2> |
| 39 | <p> If you just want to try out busybox without installing it, download the |
| 40 | tarball, extract it, run "make allyesconfig", and then run "make". |
| 41 | </p> |
| 42 | <p> |
| 43 | This will create a busybox binary with all features enabled. To try |
| 44 | out a busybox applet, type "./busybox [appletname] [options]", for |
| 45 | example "./busybox ls -l" or "./busybox cat LICENSE". Type "./busybox" |
| 46 | to see a command list, and "busybox appletname --help" to see a brief |
| 47 | usage message for a given applet. |
| 48 | </p> |
| 49 | <p> |
| 50 | BusyBox uses the name it was invoked under to determine which applet is |
| 51 | being invoked. (Try "mv busybox ls" and then "./ls -l".) Installing |
| 52 | busybox consists of creating symlinks (or hardlinks) to the busybox |
Rob Landley | 3d283dd | 2005-11-03 22:11:00 +0000 | [diff] [blame] | 53 | binary for each applet in busybox, and making sure these links are in |
| 54 | the shell's command $PATH. The special applet name "busybox" (or with |
| 55 | any optional suffix, such as "busybox-static") uses the first argument |
| 56 | to determine which applet to run, as shown above. |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 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> |
| 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 |
Rob Landley | a253e73 | 2006-02-14 08:29:48 +0000 | [diff] [blame] | 112 | another project by the maintainer of the uClibc (Erik Andersen). |
| 113 | Download the tarball, extract it, unset CC, make. |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 114 | For more instructions, see the website. |
| 115 | </p> |
| 116 | |
Rob Landley | d48633f | 2006-03-09 18:03:21 +0000 | [diff] [blame] | 117 | <hr /> |
| 118 | <p> |
| 119 | <h2><a name="init">Busybox init isn't working!</a></h2> |
| 120 | <p> |
| 121 | Build a statically linked version of the following "hello world" program |
| 122 | with your cross compiler toolchain. |
| 123 | </p> |
| 124 | <pre> |
| 125 | #include <stdio.h> |
| 126 | |
| 127 | int main(int argc, char *argv) |
| 128 | { |
| 129 | printf("Hello world!\n"); |
| 130 | sleep(999999999); |
| 131 | } |
| 132 | </pre> |
| 133 | |
| 134 | <p> |
| 135 | Now try to boot your device with an "init=" argument pointing to your |
| 136 | hello world program. Did you see the hello world message? Until you |
| 137 | do, don't bother messing with busybox init. |
| 138 | </p> |
| 139 | |
| 140 | <p> |
| 141 | Once you've got it working statically linked, try getting it to work |
| 142 | dynamically linked. Then read the FAQ entry before this one. |
| 143 | </p> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 144 | |
| 145 | <hr /> |
| 146 | <p> |
| 147 | <h2><a name="kernel">Which Linux kernel versions are supported?</a></h2> |
| 148 | <p> |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 149 | Full functionality requires Linux 2.4.x or better. (Earlier versions may |
| 150 | still work, but are no longer regularly tested.) A large fraction of the |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 151 | code should run on just about anything. While the current code is fairly |
| 152 | Linux specific, it should be fairly easy to port the majority of the code |
| 153 | to support, say, FreeBSD or Solaris, or Mac OS X, or even Windows (if you |
| 154 | are into that sort of thing). |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 155 | </p> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 156 | <hr /> |
| 157 | <p> |
| 158 | <h2><a name="arch">Which architectures does BusyBox run on?</a></h2> |
| 159 | <p> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 160 | BusyBox in general will build on any architecture supported by gcc. |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 161 | Kernel module loading for 2.4 Linux kernels is currently |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 162 | limited to ARM, CRIS, H8/300, x86, ia64, x86_64, m68k, MIPS, PowerPC, |
| 163 | S390, SH3/4/5, Sparc, v850e, and x86_64 for 2.4.x kernels. |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 164 | </p> |
| 165 | <p> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 166 | With 2.6.x kernels, module loading support should work on all architectures. |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 167 | </p> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 168 | <hr /> |
| 169 | <p> |
| 170 | <h2><a name="libc">Which C libraries are supported?</a></h2> |
| 171 | <p> |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 172 | On Linux, BusyBox releases are tested against uClibc (0.9.27 or later) and |
| 173 | glibc (2.2 or later). Both should provide full functionality with busybox, |
| 174 | and if you find a bug we want to hear about it. |
| 175 | </p> |
Mike Frysinger | d505e3e | 2005-10-29 08:03:54 +0000 | [diff] [blame] | 176 | <p> |
Rob Landley | 380ad12 | 2005-09-23 16:52:09 +0000 | [diff] [blame] | 177 | Linux-libc5 is no longer maintained (and has no known advantages over |
| 178 | uClibc), dietlibc is known to have numerous unfixed bugs, and klibc is |
| 179 | missing too many features to build BusyBox. If you require a small C |
| 180 | library for Linux, the busybox developers recommend uClibc. |
| 181 | </p> |
| 182 | <p> |
| 183 | Some BusyBox applets have been built and run under a combination |
| 184 | of newlib and libgloss (see |
| 185 | <a href="http://www.busybox.net/lists/busybox/2005-March/013759.html">this thread</a>). |
| 186 | This is still experimental, but may be supported in a future release. |
| 187 | </p> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 188 | <hr /> |
| 189 | <p> |
Mike Frysinger | 86097b3 | 2005-09-15 01:37:36 +0000 | [diff] [blame] | 190 | <h2><a name="commercial">Can I include BusyBox as part of the software on my device?</a></h2> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 191 | |
| 192 | Yes. As long as you <a href="http://busybox.net/license.html">fully comply |
| 193 | with the generous terms of the GPL BusyBox license</a> you can ship BusyBox |
| 194 | as part of the software on your device. |
| 195 | |
Eric Andersen | 75a7e19 | 2005-01-13 17:23:28 +0000 | [diff] [blame] | 196 | <br> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 197 | <a href="#support">Please consider sharing some of the money you make.</a> |
| 198 | |
| 199 | |
| 200 | <hr /> |
| 201 | <p> |
Mike Frysinger | 86097b3 | 2005-09-15 01:37:36 +0000 | [diff] [blame] | 202 | <h2><a name="bugs">I think I found a bug in BusyBox! What should I do?</a></h2> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 203 | <p> |
| 204 | |
Eric Andersen | ff4b924 | 2005-01-31 13:05:02 +0000 | [diff] [blame] | 205 | |
| 206 | <p> |
| 207 | |
| 208 | If you simply need help with using or configuring BusyBox, please submit a |
| 209 | detailed description of your problem to the BusyBox mailing list at <a |
| 210 | href="mailto:busybox@mail.busybox.net"> busybox@mail.busybox.net</a>. |
Rob Landley | a253e73 | 2006-02-14 08:29:48 +0000 | [diff] [blame] | 211 | Please do not send email to individual developers asking |
Eric Andersen | ff4b924 | 2005-01-31 13:05:02 +0000 | [diff] [blame] | 212 | for private help unless you are planning on paying for consulting services. |
| 213 | When we answer questions on the BusyBox mailing list, it helps everyone, |
| 214 | while private answers help only you... |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 215 | |
| 216 | <p> |
| 217 | |
Eric Andersen | ff4b924 | 2005-01-31 13:05:02 +0000 | [diff] [blame] | 218 | The developers of BusyBox are busy people, and have only so much they can |
| 219 | keep in their brains at a time. As a result, bug reports sometimes get |
| 220 | lost when posted to the mailing list. To prevent your bug report from |
| 221 | getting lost, if you find a bug in BusyBox, please use the <a |
| 222 | href="http://bugs.busybox.net/">BusyBox Bug and Patch Tracking System</a> |
| 223 | to submit a detailed bug report. |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 224 | |
Eric Andersen | ff4b924 | 2005-01-31 13:05:02 +0000 | [diff] [blame] | 225 | <p> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 226 | |
Eric Andersen | ff4b924 | 2005-01-31 13:05:02 +0000 | [diff] [blame] | 227 | The same also applies to patches... Regardless of whether your patch is a |
| 228 | bug fix or adds shiney new features, please post your patch to the <a |
| 229 | href="http://bugs.busybox.net/">BusyBox Bug and Patch Tracking System</a> |
| 230 | to make certain it is properly considered. |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 231 | |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 232 | |
| 233 | <hr /> |
| 234 | <p> |
| 235 | <h2><a name="job_control">Why do I keep getting "sh: can't access tty; job control |
| 236 | turned off" errors? Why doesn't Control-C work within my shell?</a></h2> |
| 237 | <p> |
| 238 | |
| 239 | Job control will be turned off since your shell can not obtain a controlling |
| 240 | terminal. This typically happens when you run your shell on /dev/console. |
| 241 | The kernel will not provide a controlling terminal on the /dev/console |
| 242 | device. Your should run your shell on a normal tty such as tty1 or ttyS0 |
| 243 | and everything will work perfectly. If you <em>REALLY</em> want your shell |
| 244 | to run on /dev/console, then you can hack your kernel (if you are into that |
| 245 | sortof thing) by changing drivers/char/tty_io.c to change the lines where |
| 246 | it sets "noctty = 1;" to instead set it to "0". I recommend you instead |
| 247 | run your shell on a real console... |
| 248 | |
| 249 | |
| 250 | <hr /> |
| 251 | <p> |
| 252 | <h2><a name="demanding">I demand that you to add <favorite feature> right now! How come |
| 253 | you don't answer all my questions on the mailing list instantly? I demand |
| 254 | that you help me with all of my problems <em>Right Now</em>!</a></h2> |
| 255 | <p> |
| 256 | |
| 257 | You have not paid us a single cent and yet you still have the product of |
| 258 | many years of our work. We are not your slaves! We work on BusyBox |
| 259 | because we find it useful and interesting. If you go off flaming us, we |
| 260 | will ignore you. |
| 261 | |
| 262 | |
| 263 | <hr /> |
| 264 | <p> |
| 265 | <h2><a name="helpme">I need help with BusyBox! What should I do?</a></h2> |
| 266 | <p> |
| 267 | |
| 268 | If you find that you need help with BusyBox, you can ask for help on the |
| 269 | BusyBox mailing list at busybox@mail.busybox.net. In addition to the BusyBox |
Rob Landley | a253e73 | 2006-02-14 08:29:48 +0000 | [diff] [blame] | 270 | mailing list, Erik (andersee), Manuel (mjn3), Rob (landley) and others are |
| 271 | known to hang out on the uClibc IRC channel: #uclibc on irc.freenode.net. |
| 272 | (Daily logs of that IRC channel, going back to 2002, are available |
Mike Frysinger | d505e3e | 2005-10-29 08:03:54 +0000 | [diff] [blame] | 273 | <a href="http://ibot.Rikers.org/%23uclibc/">here</a>.) |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 274 | |
| 275 | <p> |
| 276 | |
Rob Landley | a253e73 | 2006-02-14 08:29:48 +0000 | [diff] [blame] | 277 | <b>Please do not send private email to Rob, Erik, Manuel, or the other |
| 278 | BusyBox contributors asking for private help unless you are planning on |
| 279 | paying for consulting services.</b> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 280 | |
| 281 | <p> |
| 282 | |
| 283 | When we answer questions on the BusyBox mailing list, it helps everyone |
| 284 | since people with similar problems in the future will be able to get help |
| 285 | by searching the mailing list archives. Private help is reserved as a paid |
| 286 | service. If you need to use private communication, or if you are serious |
| 287 | about getting timely assistance with BusyBox, you should seriously consider |
| 288 | paying for consulting services. |
| 289 | |
| 290 | <p> |
| 291 | |
| 292 | |
| 293 | |
| 294 | <hr /> |
| 295 | <p> |
| 296 | <h2><a name="contracts">I need you to add <favorite feature>! Are the BusyBox |
| 297 | developers willing to be paid in order to fix bugs or add in <favorite feature>? |
| 298 | Are you willing to provide support contracts?</a></h2> |
| 299 | <p> |
| 300 | |
| 301 | Sure! Now you have our attention! What you should do is contact <a |
| 302 | href="mailto:andersen@codepoet.org">Erik Andersen</a> of <a |
| 303 | href="http://codepoet-consulting.com/">CodePoet Consulting</a> to bid |
| 304 | on your project. If Erik is too busy to personally add your feature, there |
| 305 | are many other active BusyBox contributors who will almost certainly be able |
Eric Andersen | 6feb200 | 2004-12-20 18:10:03 +0000 | [diff] [blame] | 306 | to help you out. Erik can contact them privately, and may even let you to |
Eric Andersen | 9395ca4 | 2004-10-13 09:42:10 +0000 | [diff] [blame] | 307 | post your request for services on the mailing list. |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 308 | |
| 309 | |
| 310 | <hr /> |
| 311 | <p> |
Mike Frysinger | ef614ec | 2005-04-17 07:25:32 +0000 | [diff] [blame] | 312 | <h2><a name="external">Where can I find other small utilities since busybox |
Mike Frysinger | 77dbe73 | 2005-04-17 04:32:22 +0000 | [diff] [blame] | 313 | does not include the features I want?</a></h2> |
| 314 | <p> |
| 315 | We maintain such a <a href="tinyutils.html">list</a> on this site! |
| 316 | |
| 317 | |
| 318 | <hr /> |
| 319 | <p> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 320 | <h2><a name="support">I think you guys are great and I want to help support your work!</a></h2> |
| 321 | <p> |
| 322 | |
Eric Andersen | fdab4b1 | 2005-02-09 06:44:36 +0000 | [diff] [blame] | 323 | Wow, that would be great! If you would like to make a donation to help |
| 324 | support BusyBox, and/or request features, you can click here: |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 325 | |
| 326 | <!-- Begin PayPal Logo --> |
| 327 | <center> |
| 328 | <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> |
| 329 | <input type="hidden" name="cmd" value="_xclick"> |
| 330 | <input type="hidden" name="business" value="andersen@codepoet.org"> |
| 331 | <input type="hidden" name="item_name" value="Support BusyBox"> |
Eric Andersen | 9395ca4 | 2004-10-13 09:42:10 +0000 | [diff] [blame] | 332 | <input type="hidden" name="image_url" value="http://codepoet-consulting.com/images/codepoet.png"> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 333 | <input type="hidden" name="no_shipping" value="1"> |
| 334 | <input type="image" src="images/donate.png" name="submit" alt="Make donation using PayPal"> |
| 335 | </form> |
| 336 | </center> |
| 337 | <!-- End PayPal Logo --> |
| 338 | |
| 339 | If you prefer to contact Erik directly to make a donation, donate hardware, |
| 340 | request support, etc, you can contact |
| 341 | <a href="http://codepoet-consulting.com/">CodePoet Consulting</a> here. |
Rob Landley | a253e73 | 2006-02-14 08:29:48 +0000 | [diff] [blame] | 342 | CodePoet Consulting can accept both Visa and MasterCard for those that do |
| 343 | not trust PayPal... |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 344 | |
| 345 | <hr /> |
Rob Landley | c7a3e1b | 2005-07-31 04:25:00 +0000 | [diff] [blame] | 346 | <p> |
| 347 | <h2><a name="optimize">I want to make busybox even smaller, how do I go about it?</a></h2> |
| 348 | <p> |
| 349 | To conserve bytes it's good to know where they're being used, and the |
| 350 | size of the final executable isn't always a reliable indicator of |
| 351 | the size of the components (since various structures are rounded up, |
| 352 | so a small change may not even be visible by itself, but many small |
| 353 | savings add up). |
| 354 | </p> |
| 355 | <p> |
Rob Landley | d1fa585 | 2005-09-05 10:25:51 +0000 | [diff] [blame] | 356 | The busybox Makefile can generate a report of how much space is actually |
| 357 | being used by each function and variable. Run "<b>make sizes</b>" (preferably |
| 358 | with CONFIG_DEBUG off) to get a list of symbols and the amount of |
| 359 | space allocated for each one, sorted by size. |
Rob Landley | c7a3e1b | 2005-07-31 04:25:00 +0000 | [diff] [blame] | 360 | </p> |
| 361 | <hr /> |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 362 | |
Rob Landley | c7a3e1b | 2005-07-31 04:25:00 +0000 | [diff] [blame] | 363 | |
| 364 | |
Eric Andersen | 6c4a6b1 | 2004-10-08 10:50:08 +0000 | [diff] [blame] | 365 | <br> |
| 366 | <br> |
| 367 | <br> |
| 368 | |
| 369 | <!--#include file="footer.html" --> |