OpenWrt Buildroot is a set of Makefiles and patches that allows you to easily generate both a cross-compilation toolchain and a root filesystem for embedded systems. It is a heavily modified Buildroot (http://www.buildroot.org/). The cross-compilation toolchain uses uClibc (http://www.uclibc.org/), a tiny C standard library.
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 / deb: gcc), binary utils like assembler and linker (in our case,
binutils / deb: binutils ) and a C standard library (for example GNU Libc, uClibc or dietlibc). If you're using a PC, your compilation toolchain runs on an x86 processor and generates code for a x86 processor. Under most Linux systems, the compilation toolchain uses the GNU libc as C standard library. This compilation toolchain is called the "host compilation toolchain", and more generally, 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 OpenWrt Buildroot has nothing to do with it.
As said above, the compilation toolchain that comes with your system runs and generates code for the processor of your host system. As your embedded system has a different processor, you need a cross-compilation toolchain: it's a compilation toolchain that runs on your host system but that generates code for your target system (and target processor's ISA). For example, if your host system uses x86 and your target system uses MIPS32, the regular compilation toolchain of your host runs on x86 and generates code for x86, while the cross-compilation toolchain runs on x86 and generates code for MIPS32.
You might wonder why such a tool is needed when you can compile
uClibc and all the tools by hand. Well, it is not needed. Of course, you can do everything manually, but dealing with all the configure options, with all problems of every
binutils version is very time-consuming and uninteresting. OpenWrt Buildroot automates this process through the use of Makefiles, and has a collection of patches for each
binutils version to make them work on the respective instruction set architecture of most embedded systems.
While the OpenWrt Buildroot was intended mostly for developers, it is still simple enough that an inexperienced end user can easily build his or her own customized firmware!
- http://downloads.openwrt.org/docs/buildroot-documentation.html solid docu from 2006. Only minor things are outdated!
- OpenWrt Buildroot – Buildtoolについて
- OpenWrt Buildroot – Technical Reference this article needs your attention.
- Keep in mind that there are 4 methods to obtain.firmware
jp/about/toolchain.txt · Last modified: 2012/03/29 09:23 by matsuk