Difference between revisions of "Creating a RFS with Buildroot"

From DAVE Developer's Wiki
Jump to: navigation, search
m (Package selection)
m (Configuring Buildroot)
Line 94: Line 94:
  
 
[[File: Buildroot-toolchain.jpg|600px]]
 
[[File: Buildroot-toolchain.jpg|600px]]
 +
 +
 +
== System configuration ==
 +
 +
Entering the "System configuration" option you should set:
 +
 +
* System hostname (NEW)
 +
* System banner (NEW)
 +
* Port to run a getty (login prompt) on -> Enter '''ttyO0'''
 +
* ()  Custom script to run before creating filesystem images -> If required, you can run custom scripts to do board-specific cleanups, add-ons and the like, so the generated files can be used directly without further processing.
 +
 +
[[File: Buildroot-system.jpg|600px]]
 +
  
 
== Package selection ==
 
== Package selection ==
  
 
The list of available packages can be accessed entering the '''Package selection for the target''' option
 
The list of available packages can be accessed entering the '''Package selection for the target''' option

Revision as of 13:24, 9 January 2013

Info Box
Tux.png Applies to Linux
Naon am387x-dm814x.png Applies to Naon

Introduction[edit | edit source]

Buildroot is a set of scripts and patches for the creation of a cross-compilation toolchain as well as the creation of a complete root file system. Buildroot provides:

  • support for prebuilt or external toolchains
  • configuration through menuconfig, gconfig and xconfig interfaces
  • lots of available libraries, tools, packages and utilities
  • support for all the major filesystems (JFFS2, UBIFS, CRAMFS, ...)
  • uClibc, glibc, eglibc generation, or use of the libc from the external toolchain
  • easy customization through Makefiles

References[edit | edit source]

Getting Buildroot[edit | edit source]

Buildroot releases can be downloaded from http://buildroot.net/downloads/

Daily Snapshots of the latest Buildroot source tree can be downloaded from http://buildroot.uclibc.org/downloads/snapshots/

The source tree can be browsed online: http://git.buildroot.net/buildroot/ and a copy of the repository can be grabbed with the following commands:

The following is the project directory tree:

.
├── arch
├── board
├── boot
├── CHANGES
├── Config.in
├── Config.in.legacy
├── configs
├── COPYING
├── docs
├── fs
├── linux
├── Makefile
├── Makefile.legacy
├── package
├── support
├── system
└── toolchain

Configuring Buildroot[edit | edit source]

For modifying the Buildroot configuration, enter the project directory and enter the following command:

make menuconfig

You can optionally use the O= parameter to set a specific build folder:

make O=<path_to_build_directory> menuconfig


Setting up the target architecture[edit | edit source]

From the menuconfig interface, you need to select:

  • Target Architecture -> Select "ARM (little endian)"
  • Target Architecture Variant -> Select "cortex-A8"
  • Target ABI -> Select "EABI"

Buildroot-arch.jpg


Setting up the external toolchain[edit | edit source]

You need to set the path and prefix for the external toolchain:

  • Toolchain -> Toolchain type -> Select "External Toolchain"
  • Toolchain -> Toolchain -> Select "Custom Toolchain"
  • Toolchain -> Toolchain origin-> Select "Pre-installed toolchain"
  • Toolchain -> Toolchain path (eg. /home/shared/devel/dave/naon-DAA/sw/linux/sdk/arm-2009q1)
  • Toolchain -> Toolchain prefix (eg. $(ARCH)-none-linux-gnueabi-)

Buildroot-toolchain.jpg


System configuration[edit | edit source]

Entering the "System configuration" option you should set:

  • System hostname (NEW)
  • System banner (NEW)
  • Port to run a getty (login prompt) on -> Enter ttyO0
  • () Custom script to run before creating filesystem images -> If required, you can run custom scripts to do board-specific cleanups, add-ons and the like, so the generated files can be used directly without further processing.

Buildroot-system.jpg


Package selection[edit | edit source]

The list of available packages can be accessed entering the Package selection for the target option