123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- About Buildroot
- ===============
- Buildroot is a set of Makefiles and patches that allows you to easily
- generate a cross-compilation toolchain, a root filesystem and a Linux
- kernel image for your target. Buildroot can be used for one, two or
- all of these options, independently.
- Buildroot is useful mainly for people working with embedded systems.
- Embedded systems often use processors that are not the regular x86
- processors everyone is used to having in his PC. They can be PowerPC
- processors, MIPS processors, ARM processors, etc.
- A compilation toolchain is the set of tools that allows you to compile
- code for your system. It consists of a compiler (in our case, +gcc+),
- binary utils like assembler and linker (in our case, +binutils+) and a
- C standard library (for example
- http://www.gnu.org/software/libc/libc.html[GNU Libc],
- http://www.uclibc.org/[uClibc] or
- http://www.fefe.de/dietlibc/[dietlibc]). The system installed on your
- development station certainly already has a compilation toolchain that
- you can use to compile an application that runs on your system. If
- you're using a PC, your compilation toolchain runs on an x86 processor
- and generates code for an x86 processor. Under most Linux systems, the
- compilation toolchain uses the GNU libc (glibc) as the C standard
- library. This compilation toolchain is called the "host compilation
- toolchain". The machine on which it is running, and on which you're
- working, is called the "host system". The compilation toolchain is
- provided by your distribution, and Buildroot has nothing to do with it
- (other than using it to build a cross-compilation toolchain and other
- tools that are run on the development host).
- As said above, the compilation toolchain that comes with your system
- runs on and generates code for the processor in your host system. As
- your embedded system has a different processor, you need a
- cross-compilation toolchain - a compilation toolchain that runs on
- your host system but generates code for your target system (and target
- processor). For example, if your host system uses x86 and your target
- system uses ARM, the regular compilation toolchain on your host runs on
- x86 and generates code for x86, while the cross-compilation toolchain
- runs on x86 and generates code for ARM.
- Even if your embedded system uses an x86 processor, you might be
- interested in Buildroot for two reasons:
- * The compilation toolchain on your host certainly uses the GNU Libc
- which is a complete but huge C standard library. Instead of using
- GNU Libc on your target system, you can use uClibc which is a tiny C
- standard library. If you want to use this C library, then you need a
- compilation toolchain to generate binaries linked with it. Buildroot
- can do that for you.
- * Buildroot automates the building of a root filesystem with all
- needed tools like busybox. That makes it much easier than doing it
- by hand.
- You might wonder why such a tool is needed when you can compile +gcc+,
- +binutils+, +uClibc+ and all the other tools by hand. Of course doing
- so is possible but, dealing with all of the configure options and
- problems of every +gcc+ or +binutils+ version is very time-consuming
- and uninteresting. Buildroot automates this process through the use
- of Makefiles and has a collection of patches for each +gcc+ and
- +binutils+ version to make them work on most architectures.
- Moreover, Buildroot provides an infrastructure for reproducing the
- build process of your kernel, cross-toolchain, and embedded root
- filesystem. Being able to reproduce the build process will be useful
- when a component needs to be patched or updated or when another person
- is supposed to take over the project.
|