Armbian build tools
|size (curr.)||339272 kB|
|license||GNU General Public License v2.0|
Table of contents
- What this project does?
- What do you need to get started?
- How to build an image or a kernel?
- Build parameter examples
- Compare with industry standards
- Where to download prebuilt images?
- Additional information
- Build tools overview
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:
Run build tools inside Docker container:
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"
Compare with industry standards
Check similarity, advantages and disadvantages compared with leading industry standard build software.
|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|
|Getting started||quick||very slow||slow|
Where to download prebuilt images?
- Build parameters and advanced build options,
- Make use of user defined configurations,
- Docker and Vagrant building guides,
- Engage in Armbian build framework forums,
- Check Jira project management application status,
- Make use of central project search engine,
- Browse IRC channel logs or interact at #armbian on freenode.
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
Have you found a bug in the build tools?
Do you have troubles elsewhere?
It is limited to active project supporters and sponsors. The shortest way to become one and receive our attention is a four figure donation to our non-profit project.
Adding a new feature?
You are welcome to suggest or contribute directly to the code with a pull request. In case your proposed changes are large, remember to discuss them prior to development.
- Participate in Armbian forums,
- Chat with fellow users on IRC #armbian on Freenode,
- Follow @armbian on Twitter or LinkedIN.
- Current and past contributors, our families and friends,
- Support staff that keeps forums usable,
- Individuals that help with their ideas, reports and donations.
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.