The official build framework for the Armbian Linux distribution. This repository contains the complete toolchain and scripts required to compile custom OS images from source, including kernel configuration, U-Boot handling, and board-specific tweaks for various ARM and ARM64 single-board computers.
Go to file
Igor Pecovnik 28f5839d08 chore: standardize workflow names
Make all workflow names consistent and action-oriented:
- Use action verb first (Announce, Auto-label, Build, Check, Clean, Help, Label, Lint, Listen, Rewrite, Scan, Sync, Welcome)
- Keep names concise and descriptive
- Remove unnecessary details from the name

Changes:
- Analyze kernel security (was: Kernel Hardening Analysis)
- Announce merge (was: Announce PR merge to Discord)
- Announce PR (was: Announce PR on Discord for review)
- Auto-label PR (was: Automatic Pull Request Labeling)
- Build PR artifacts (was: Generate Artifacts on PR if...)
- Check PR assets (was: Check new board assets exist...)
- Clean workflow logs (was: Clean Workflow Logs)
- Sync Jira (was: Jira Sync)
- Help forks (was: Forked Helper)
- Label PR on approval (was: PR review labeler)
- Lint scripts (was: Lint on Scripts)
- Listen PR review (was: PR review listener)
- Rewrite kernel configs (was: Rewrite kernel configs - same)
- Scan security (was: Scorecards Security Scan)
- Sync board list (was: Update Board Lists)
- Sync labels (was: Sync Labels from YAML)
- Sync maintainers (was: Sync maintainers status)
- Sync tools (was: Update Tools in Scripts)
- Welcome first-time contributor (was: Welcome first-time issue contributor)
- Welcome first-time PR contributor (was: same - kept as is)
2025-12-25 12:00:52 +01:00
.github chore: standardize workflow names 2025-12-25 12:00:52 +01:00
.vscode chore: edit code format config (#3578) 2022-03-26 12:41:25 +01:00
config Move boards with vendor intel_amd under generic vendor 2025-12-22 22:08:34 +01:00
extensions extensions/gen-sample-extension-docs: fix to output non-garbage 2025-12-15 20:59:37 +01:00
lib fix(apt-utils): add fallback for Ubuntu LTS releases without -updates suffix in JSON 2025-12-22 21:26:37 +01:00
packages Enable direct flashing method in armbian-install menu 2025-12-11 04:36:06 +08:00
patch Port patches from PR #8831 2025-12-22 21:22:51 +01:00
tools repo: add loong64 support 2025-08-05 15:12:06 +02:00
.coderabbit.yaml CodeRabbit review noise reduction 2025-12-15 20:56:55 +01:00
.editorconfig shellfmt/.editorconfig: enable trim whitespaces, run shellfmt, no actual code changes (#4849) 2023-02-23 09:24:41 +01:00
.gitignore Adjusting ORAS cache location, runners (#5129) 2023-05-02 11:08:34 +02:00
action.yml build(deps): bump actions/checkout from 5 to 6 2025-11-24 20:31:42 +01:00
compile.sh artifacts: download-artifact CLI. makes sure to only used local .deb, or download from OCI, never build 2023-05-16 20:09:47 +02:00
CONTRIBUTING.md Improve labeling system - refactor labeling logic (#5916) 2023-11-19 22:36:06 +01:00
CREDITS.md Add / modify (c) in bash scripts (#4922) 2023-03-09 18:30:40 +01:00
LICENSE
README.md Update logo that is b/w compatible 2025-08-28 05:57:22 +02:00
requirements.txt build(deps): bump dtschema from 2025.8 to 2025.12 2025-12-15 20:58:33 +01:00
shell.nix Add compatibility for non-FHS 3.0 systems 2023-07-19 23:16:22 +02:00
VERSION bump VERSION 2025-12-01 22:01:46 +01:00

Armbian logo

Purpose of This Repository

The Armbian Linux Build Framework creates minimal, efficient, and fully customizable operating system images based on Debian or Ubuntu. It is designed specifically for low-resource single board computers (SBCs) and other embedded devices.

This toolchain compiles a custom Linux kernel, bootloader, and root filesystem, providing fine-grained control over:

  • Kernel versions and configuration
  • Bootloader selection and customization
  • Filesystem layout and compression
  • Additional firmware, overlays, and device trees
  • System optimizations for performance and size

The framework supports native, cross, and containerized builds for multiple architectures (x86_64, aarch64, armhf, riscv64), and is suitable for development, testing, production deployment, or automation pipelines.

It ensures consistency across devices while remaining modular and extensible through a variety of configuration files, templates, and user patches.

Quick Start

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

Resources

DocumentationWebsiteBlogCommunity Forums

Armbian logo

Build Host Requirements

  • Supported Architectures: x86_64, aarch64, riscv64
  • System: VM, container, or bare-metal with:
    • ≥ 8GB RAM (less with KERNEL_BTF=no)
    • ~50GB disk space
  • Operating System:
    • Armbian / Ubuntu 24.04 (Noble) for native builds
    • Any Docker-capable Linux for containerized setup
  • Windows: Windows 10/11 with WSL2 running Armbian / Ubuntu 24.04
  • Access: Superuser rights (sudo or root)
  • Important: Keep your system up-to-date — outdated tools (e.g., Docker) can cause issues.

Download

Prebuilt Armbian OS Images: https://www.armbian.com/download

Contribute

Learn how to report issues, suggest improvements, or submit code: CONTRIBUTING.md

Support

Armbian offers multiple support channels, depending on your needs:

  • Community Forums
    Get help from fellow users and contributors on a wide range of topics — from troubleshooting to development.
    👉 forum.armbian.com

  • Discord / IRC/ Matrix Chat
    Join real-time discussions with developers and community members for faster feedback and collaboration.
    👉 Community Chat

  • Paid Consultation
    For advanced needs, commercial projects, or guaranteed response times, paid support is available directly from Armbian maintainers.
    👉 Contact us to discuss consulting options.

Contributors

Thank you to all the people who already contributed to Armbian!

Armbian Partners

Armbian's partnership program helps to support Armbian and the Armbian community! Please take a moment to familiarize yourself with our Partners.