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
Sven-Ola Tuecke 2be970ac84 OrangePi-RV2: Speedup for fast SD cards with the Linux MMC kernel driver.
Disable U-Boot CONFIG_MMC_UHS_SUPPORT otherwise a fast SD card does not
report "1.8 Volt mode switch possible" on kernel init which in turn does
not enable SDR104 for my SDXC card.

Fast mode ok is visible in the kernel log after booting from SD card:

root@orangepirv2:~# dmesg |grep mmc
[    2.198816] mmc0: SDHCI controller on d4280000.sdh [d4280000.sdh] using ADMA
[    2.224576] mmc1: SDHCI controller on d4280800.sdh [d4280800.sdh] using ADMA
[    2.272657] mmc0: set tx_delaycode: 159
[    2.273950] mmc0: pass window [6 68)
[    2.276301] mmc0: pass window [72 198)
[    2.277591] mmc0: pass window [219 255)
[    2.277599] mmc0: tuning done, use the firstly delay_code:134
[    2.277611] mmc0: new ultra high speed SDR104 SDXC card at address b36b

With UHS already enabled in u-boot, no tuning and no SDR104 mode is switched on
in the Linux kernel. Seems to be a side effect of an un-complete mmc_deinit() in
u-boot/driver/mmc/mmc.c. With MMC_UHS_SUPPORT disabled, the SD card does report
SD_ROCR_S18A with then leads to enter spacemit_sdhci_execute_sw_tuning() and the
subsequent switch to SDK104 or probably other 1.8 Volt modes is fine. This is at
least true for my OrangePi RV2 board.

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
.github build(deps): bump tj-actions/changed-files from 47.0.1 to 47.0.2 2026-02-10 00:06:03 +01:00
.vscode chore: edit code format config (#3578) 2022-03-26 12:41:25 +01:00
config OrangePi-RV2: Speedup for fast SD cards with the Linux MMC kernel driver. 2026-02-19 22:10:34 -05:00
extensions OrangePi-RV2: wlan driver for edge 2026-02-19 22:10:34 -05:00
lib OrangePi-RV2: add support for RISCV64 compile-to-binaries. 2026-02-19 22:10:34 -05:00
packages OrangePi-RV2: BCM bluetooth firmware hacking service 2026-02-19 22:10:34 -05:00
patch OrangePi-RV2: Add overlay dtbo files 2026-02-19 22:10:34 -05:00
tools feat: implement parallel repository management workflow 2026-01-11 00:37:46 +01:00
.coderabbit.yaml CodeRabbit review noise reduction 2025-12-15 20:56:55 +01:00
.editorconfig Fix errors in .editorconfig 2026-02-09 00:28:39 +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 Deprecate Matrix (#9318) 2026-01-31 09:32:23 +01:00
requirements.txt build(deps): bump oras from 0.2.38 to 0.2.39 2026-02-16 23:10:56 +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 customizable OS images based on Debian or Ubuntu for single-board computers (SBCs) and embedded devices.

It builds a complete Linux system including kernel, bootloader, and root filesystem, giving you control over versions, configuration, firmware, device trees, and system optimizations.

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

Looking for prebuilt images? Use Armbian Imager — the easiest way to download and flash Armbian to your 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

Build Host Requirements

Hardware

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

Operating System

  • Native builds: Armbian or Ubuntu 24.04 (Noble)
  • Containerized: Any Docker-capable Linux
  • Windows: WSL2 with Armbian/Ubuntu 24.04

Software

  • Superuser privileges (sudo or root)
  • Up-to-date system (outdated Docker or other tools can cause failures)

Resources

  • Documentation — Comprehensive guides for building, configuring, and customizing
  • Website — News, features, and board information
  • Blog — Development updates and technical articles
  • Forums — Community support and discussions

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines on reporting issues, submitting changes, and contributing code.

Support

Community Forums

Get help from users and contributors on troubleshooting, configuration, and development. 👉 forum.armbian.com

Real-time Chat

Join discussions with developers and community members on IRC or Discord. 👉 Community Chat

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

Armbian Partners

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