October 19, 2018

975 words 5 mins read

armbian/build

armbian/build

Armbian build tools

repo name armbian/build
repo link https://github.com/armbian/build
homepage https://www.armbian.com
language Shell
size (curr.) 339272 kB
stars (curr.) 1311
created 2014-10-07
license GNU General Public License v2.0

Build Status

Table of contents

What this project does?

  • builds custom Debian based Linux system optimised for supported single board computers,
  • covers root filesystem generation, kernel image compilation and bootloader compilation,
  • maintains low-level control software for a selection of hardware,
  • provides a consistent user experience by keeping system standards across different SBC platforms.

What do you need to get started?

  • x64 machine with at least 2GB of memory and ~30GB of disk space for the VM, container or native OS,
  • Ubuntu Bionic 18.04 / Focal 20.04 x64 for native building or any Docker capable x64 Linux for containerised,
  • superuser rights (configured sudo or root access).

How to build an image or a kernel?

apt -y install git
git clone https://github.com/armbian/build
cd build
./compile.sh

Build parameter examples

Show work in progress areas in interactive mode:

./compile.sh EXPERT="yes"

Run build tools inside Docker container:

./compile.sh docker

Build minimal CLI Debian buster based image for Odroid XU4. Use modern kernel and write image to the SD card:

./compile.sh BOARD="odroidxu4" BRANCH="current" RELEASE="buster" CARD_DEVICE="/dev/sda" \
KERNEL_ONLY="no" KERNEL_CONFIGURE="no" INSTALL_HEADERS="yes" BUILD_DESKTOP="no" BUILD_MINIMAL="yes"

Build parameters, advanced build options, user defined configuration, build with Docker?

Compare with industry standards

Check similarity, advantages and disadvantages compared with leading industry standard build software.

Function Armbian Yocto Buildroot
Target general purpose embedded embedded / IOT
U-boot and kernel compiled from sources compiled from sources compiled from sources
Hardware support maintenance        complete outside outside
Root file system Debian or Ubuntu based custom custom
Package manager APT any none
Configurability limited large large
Initramfs support yes yes yes
Getting started quick very slow slow
Cross compilation yes yes yes

Where to download prebuilt images?

https://www.armbian.com/download/

Armbian releases quarterly at the end of February, May, August, November. You are welcome to propose changes to our default images build list.

Additional information

Build tools overview

├── cache                                    Work / cache directory
│   ├── rootfs                               Compressed vanilla Debian and Ubuntu rootfilesystem cache
│   ├── sources                              Kernel, u-boot and various drivers sources. Mainly C code
│   ├── toolchains                           External cross compilers from Linaro™ or ARM™
├── config                                   Packages repository configurations
│   ├── targets.conf                         Board build target configuration
│   ├── boards                               Board configurations
│   ├── bootenv                              Initial boot loaders environments per family
│   ├── bootscripts                          Initial Boot loaders scripts per family
│   ├── kernel                               Kernel build configurations per family
│   ├── sources                              Kernel and u-boot sources locations and scripts
│   ├── templates                            User configuration templates which populate userpatches
│   └── torrents                             External compiler and rootfs cache torrents
├── lib                                      Main build tools libraries
├── output                                   Build artifact
│   └── deb                                  Deb packages
│   └── images                               Bootable images - RAW or compressed
│   └── debug                                Patch and build logs
│   └── config                               Kernel configuration export location
│   └── patch                                Created patches location
├── packages                                 Support scripts, binary blobs, packages
│   ├── blobs                                Wallpapers, various configs, closed source bootloaders
│   ├── bsp                                  Scripts and configs overlay for rootfs
│   └── extras-buildpkgs                     Optional compilation and packaging engine
├── patch                                    Collection of patches
│   ├── atf                                  ARM trusted firmware
│   ├── kernel                               Linux kernel patches
|   |   └── family-branch                    Per kernel family and branch
│   ├── misc                                 Linux kernel packaging patches
│   └── u-boot                               Universal boot loader patches
|       ├── u-boot-board                     For specific board
|       └── u-boot-family                    For entire kernel family
└── userpatches                              User: configuration patching area
    ├── lib.config                           User: tools common config/override file
    ├── config-default.conf                  User: default user config file
    ├── customize-image.sh                   User: script will execute just before closing the image
    ├── atf                                  User: ARM trusted firmware
    ├── kernel                               User: Linux kernel per kernel family
    ├── misc                                 User: various
    └── u-boot                               User: universal boot loader patches

Support

Contribute

Social

Credits

Sponsors

Most of the project is sponsored with a work done by volunteer collaborators, while some part of the project costs are being covered by the industry. We would not be able to get this far without their help.

Do you want to see yourself below?

comments powered by Disqus