Skip to content

Rebuild Armbian

Actions

About

Build Armbian Linux
v26.11.0-trunk.111
Latest
Star (5.5K)

Verified

GitHub has manually verified the creator of the action as an official partner organization. For more info see About badges in GitHub Marketplace.

Armbian logo

Armbian Linux Build Framework

Purpose of This Repository

The Armbian Linux Build Framework builds customizable OS images based on Debian or Ubuntu for single-board computers (SBCs) and other embedded devices. It assembles the kernel, bootloader, firmware, device trees and root filesystem into a reproducible image, with per-board and per-family configuration.

Looking for prebuilt images? Use Armbian Imager — the easiest way to download and flash Armbian to an SD card or USB drive. Available for Linux, macOS and Windows.

Quick Start

git clone https://github.com/armbian/build
cd build
./compile.sh

Build demonstration

The entrypoint compile.sh dispatches into the framework in lib/. Build-time options can be passed on the command line, e.g.:

./compile.sh BOARD=orangepi5 BRANCH=current RELEASE=trixie BUILD_MINIMAL=yes KERNEL_CONFIGURE=no

Build Host Requirements

Hardware

  • RAM: ≥ 8 GB (less with KERNEL_BTF=no)
  • Disk: ~50 GB free space
  • Architecture: x86_64, aarch64 or riscv64

Operating System

  • Native builds: Armbian / Debian 13 (Trixie)
  • Containerized: any Docker-capable Linux
  • Windows: WSL2 with Armbian / Debian 13 (Trixie)

Software

  • Superuser privileges (sudo or root)
  • An up-to-date host (outdated Docker or other tooling can cause failures)

Repository Layout

Path Contents
compile.sh Build entrypoint; sources lib/single.sh and invokes the CLI
lib/ Core build framework (Bash functions, Python helpers in lib/tools/)
config/ Board, family, distribution, kernel and CLI configuration
config/boards/ One file per board; the extension marks its support status (see below)
config/distributions/ Supported Debian/Ubuntu release metadata
config/cli/ CLI package selections per release
patch/ Kernel, U-Boot and ATF patch sets organized by family/version
packages/ In-tree package sources, blobs and BSP material
extensions/ Optional build extensions enabled via ENABLE_EXTENSIONS=
tools/ Developer helpers (mk_format_patch, unifying_configs)
action.yml GitHub Action definition ("Rebuild Armbian")

Board config extensions

Files under config/boards/ use an extension that signals support status:

Extension Meaning
.conf Standard board configuration
.csc Community maintained / unstable (no active Armbian maintainer)
.wip Work in progress
.eos End of life
.tvb TV box, community supported (no Armbian maintainer)

See config/boards/README.md for the full list of per-board variables (e.g. BOARD_NAME, BOARDFAMILY, BOOTCONFIG, KERNEL_TARGET, SERIALCON, MODULES, DEFAULT_OVERLAYS).

Release/package base statuses used under config/distributions/ are defined separately in config/distributions/README.md.

Built With

  • Bash — build framework in lib/, entrypoint compile.sh, most of extensions/ and the shell portions of board/family configs
  • Python — developer and build helpers under lib/tools/ (e.g. patching.py, aggregation.py, lib/tools/info/)
  • Make / Kbuild — kernel and U-Boot build systems invoked by the framework; overlay Makefiles under patch/kernel/archive/*/overlay/
  • Device Tree Source (.dts / .dtsi / .dtso) — board/overlay sources carried under patch/
  • GitHub Actions (YAML) — repository automation under .github/workflows/
  • Patch series — thousands of *.patch files under patch/ applied to kernel, U-Boot and ATF trees

Continuous Integration

Repository automation (board/maintainer data sync, labeling, security scanning, artifact builds, mirroring, etc.) lives in .github/workflows/. For a live overview of workflow runs and status, see:

👉 CI overview for armbian/build

Self-hosted runner setup notes live in .github/workflows/README.md.

Using the GitHub Action

This repository publishes a composite action (action.yml, "Rebuild Armbian") that can be consumed from other workflows to build an image or a kernel.

Input Required Default
armbian_token yes —
armbian_target no kernel
armbian_board no uefi-x86
armbian_branch no main
armbian_kernel_branch no current
armbian_release no noble
armbian_ui no minimal
armbian_compress no sha,img,xz
armbian_extensions no (empty)
armbian_artifacts no build/output/images/

See action.yml for the full input list (versioning, signing, publishing and release-metadata options).

Contributing

Contributions are welcome. See CONTRIBUTING.md for how to report issues, how to prepare patches (including the ./compile.sh CREATE_PATCHES="yes" flow) and the PR / labeling conventions. The .github/labels.yml file is the source of truth for labels.

Resources

  • Documentation — building, configuring and customizing
  • Website — news, features and supported boards
  • Blog — development updates and technical articles
  • Forums — community support and discussion

Support

Community Forums

👉 forum.armbian.com

Real-time chat

👉 Community chat (IRC / Discord)

Paid consultation

For commercial projects, guaranteed response times, or advanced needs, paid support is available from Armbian maintainers. 👉 Contact us

Contributors

Thank you to everyone who has contributed to Armbian.

Contributors

See also CREDITS.md.

Armbian Partners

Our partnership program supports Armbian's development and community. Learn more about our Partners.

License

Released under the GNU General Public License v2.0. See LICENSE for the full text.

Rebuild Armbian is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Build Armbian Linux
v26.11.0-trunk.111
Latest

Verified

GitHub has manually verified the creator of the action as an official partner organization. For more info see About badges in GitHub Marketplace.

Rebuild Armbian is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.