Building BuildRoot 2016.02

BuildRoot is a set of makefiles and patches that makes it easy to generate a complete and very small Embedded Linux System. It can generate any or all of a cross-compilation toolchain, a root filesystem, a kernel image and a bootloader image.

Notes

  • This procedure was tested on a Linux PC with Ubuntu 15.10
  • It is advisable to have a Debug Port Interface
  • This article explains how to create only the rootfs contents. To generate the bootloader (at91bootstrap) and the Linux kernel image (zImage), please refer to the specific tutorials.

Building procedure

Download BuildRoot version 2016.02 from its repository:

Decompress the .bz2 file in your home directory and move inside the new directory:

~$ tar xjvf buildroot-2016.02.tar.bz2
~$ cd buildroot-2016.02
~/buildroot-2016.02$ 

At this point I suggest to create a your own personal branch of Buildroot sources with git to keep a trace of any changes from the mainline. Use these commands:

~/buildroot-2016.02$ git init; git add .; git commit -m "buildroot vanilla"; git branch acme; git checkout acme

Download this patch file from GitHub:

and apply it by typing:

~/buildroot-2016.02$ patch -p1 < buildroot-2016.02.patch

Select the configuration of your board:

Arietta G25 basic configuration

~/buildroot-2016.02$ make acme-arietta_defconfig
...

Aria G25 basic configuration

~/buildroot-2016.02$ make acme-aria_defconfig
...

Acqua A5 basic configuration

~/buildroot-2016.02$ make acme-acqua_defconfig
...

FOX Board G20 basic configuration

~/buildroot-2016.02$ make acme-foxg20_defconfig
...

Create your own rootfs configuration:

Probably you will need to customize the Buildroot configuration to install, for example, a different set of packages to meet your needs. If you want to do that or if you want just to take a look around the Buildroot configuration type:

~/buildroot-2016.02$ make menuconfig
...

and navigate inside the Buildroot configuration using the arrow keys and following the help provided by the menuconfig interface

Save and exit from the configuration menu and get start to run the BuildRoot compilation.

Buildroot compilation

Install liblz4-tool (sudo apt-get install liblz4-tool) on your Ubuntu Linux to generate the Linux Kernel zImage

If you're running an Ubuntu distribution at 64 bit, install the libc6-i386 (sudo apt-get install libc6-i386)

Run the Buildroot compilation by typing:

~/buildroot-2016.02$ make
...

This operation will take about 1 hour to download and compile any source of any part of your Linux distribution.

If everything goes well you will obtain these binary files in output/images directory:

  • The whole root file system contents: rootfs.tar

Uncompress the rootfs content inside the second partition of the microSD:

sudo tar xvf output/images/rootfs.tar -C /media/$USER/rootfs

Unmount the microSD and boot.

At login:

  • login: root
  • password: acmesystems

Related links