Some of Stef's Stuff

Buidroot Quickstart – Part I

by Stefano on 2016.04.14, no comments

Want create site? Find Free WordPress Themes and plugins.

Buildroot is a tool that simplifies and automates the process of building a complete Linux system for embedded hardware using cross-compilation.


When I first started to use Buildroot I had it installed on a Linux VM with Mint 17.3 hosted on a MacBook Pro. TODO


Basic configuration

Buildroot supports numerous processors and variants. It also comes with default configurations for several boards available off-the-shelf, so there’s indeed two options: create a configuration from scratch or use/modify an existing defconfig file.


See the official documentation for a list of mandatory and optional prerequisites.

Build config from scratch

The first step when using Buildroot is to create a configuration. From the Buildroot directory, run

Once everything is configured, the configuration tool generates a .config file that contains the entire configuration. This file will be read by the top-level Makefile.

To start the build process, simply run:

Use existing config file

The Buildroot /board folder contains the configuration files for common hardware like RaspberryPi and BeagleBone. Instead of creating the configuration file from scratch run the following to modify an existing one

When done save the configuration and the tool generates a .config file that contains the entire configuration.

As before to start the build process, simply run:

or the following if you want to time and log all the building messages

Save the configuration

Once the Buildroot configuration is completed it can be saved for future reuse

The file is saved in the location specified by Build options > Location to save Buildroot

 Flash the image file

In case the output device is an SD card it safer to ensure the write cache is flushed before unmounting it, so run

See also How to install image files on Linux from the Raspberry website.


How to download without build

To download all the package required, without actually build anything (i.e. store locally all the components specified in the .config file, go offline and build afterward) replace the previous make command with

NOTE: The components are always taken from their respective project’s repositories and their version is the stable one at a given Buildroot release date. A system built with a newer Buildroot release will contain the updated components if a more recent version exists since the previous Buildroot release.

How to clean (and rebuild)

It’s possible to rebuild a specific package simply cleaning its own folder and running make again (replace DropBear with the relevant package)

or rebuild everything

To clean the output folder use

and to clean everything, configuration file included


Advanced topics

Normally the basic configuration is stripped down to something like a bootable kernel and BusyBox. Below a list is given of fairly common customizations and topics one might want to keep in mind.

About the toolchain

One of the most important features of Buildroot is the ability to build a toolchain for your target which can be used for cross-compilation (build the code on a machine with a specific architecture, e.g. x86, to be run on a different one, like ARM )

Instead of the internal toolchain, an external one can be selected in

Target Packages > Networking applications > dropbear

After the system has been built the toolchain can be accessed from

which contains symlinks to something like

Login over SSH

Target Packages > Networking applications > dropbear


Target Packages > Networking applications > openssh

In case the host verification fails see how to Remove known SSH host

Network interface configuration

Dynamic address – Buildroot will configure the first network interface to use DHCP by default. However, an explicit instruction might still be required (from my experience on Raspberry Pi 2). Select

System Configuration > Network interface to configure through DHCP

and type the name of the interface you want to assign (e.g. eth0 for the first interface)


Static address – To assign a specific address look into



Rootfs overlay

See minute 59:00 of the video below





Did you find apk for android? You can find new Free Android Games and apps.

Leave a Reply

Your email address will not be published. Required fields are marked *