Rebuild Armbian
ActionsTags
(2)Verified
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.
git clone https://github.com/armbian/build
cd build
./compile.shThe 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- RAM: ≥ 8 GB (less with
KERNEL_BTF=no) - Disk: ~50 GB free space
- Architecture: x86_64, aarch64 or riscv64
- Native builds: Armbian / Debian 13 (Trixie)
- Containerized: any Docker-capable Linux
- Windows: WSL2 with Armbian / Debian 13 (Trixie)
- Superuser privileges (
sudoor root) - An up-to-date host (outdated Docker or other tooling can cause failures)
| 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") |
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.
- Bash — build framework in
lib/, entrypointcompile.sh, most ofextensions/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 underpatch/kernel/archive/*/overlay/ - Device Tree Source (
.dts/.dtsi/.dtso) — board/overlay sources carried underpatch/ - GitHub Actions (YAML) — repository automation under
.github/workflows/ - Patch series — thousands of
*.patchfiles underpatch/applied to kernel, U-Boot and ATF trees
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.
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).
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.
- Documentation — building, configuring and customizing
- Website — news, features and supported boards
- Blog — development updates and technical articles
- Forums — community support and discussion
👉 Community chat (IRC / Discord)
For commercial projects, guaranteed response times, or advanced needs, paid support is available from Armbian maintainers. 👉 Contact us
Thank you to everyone who has contributed to Armbian.
See also CREDITS.md.
Our partnership program supports Armbian's development and community. Learn more about our Partners.
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.

