Alphabetical reference of all official Armbian build framework extensions.
Extensions live in the extensions/ directory of the build repository.
To enable one or more extensions:
./compile.sh BOARD=... BRANCH=... ENABLE_EXTENSIONS="ext-name,another-ext"Extensions with dedicated documentation pages are linked below. All others are documented by a short description and key parameters.
Bumps the kernel version for Allwinner-based boards.
Fetches Amlogic FIP (Firmware Image Package) blobs needed for bootloader assembly on Amlogic SoCs.
Enables Armbian Package Archive (APA) in the target image by default.
Builds the arm64 kernel with CONFIG_COMPAT, CONFIG_COMPAT_VDSO and CONFIG_ARM64_32BIT_EL0, letting a host running this kernel execute armhf (32-bit ARM) userspace natively at full speed. One concrete benefit is faster Armbian builds: on such a host, armhf rootfs / chroot / package post-install steps run native instead of through qemu-user-static (~10× faster). The build framework auto-detects the capability — see PREFER_NATIVE_ARMHF.
Requires a 32-bit ARM cross-compiler for GCC builds (gcc-arm-linux-gnueabi or custom CROSS_COMPILE_COMPAT). For clang builds uses the built-in LLVM backend.
Limitation: aarch64 silicon without 32-bit ARM userspace support at EL0 (notably Apple M-series) cannot run armhf even with this kernel option enabled.
Installs armbian-config from the Armbian GitHub repository into the image.
Installs the Armbian Live Patch systemd service into the BSP package.
Builds the Broadcom BCM WiFi (bcmdhd) driver as a DKMS kernel module. Requires working kernel headers.
Builds the Broadcom BCM WiFi driver for SpacemiT platforms as a DKMS kernel module.
Sets up Bluetooth via hciattach for boards that require serial attachment.
Installs the AIC8800 WiFi/BT DKMS driver for BroStrend USB adapters. Fetches the latest aic8800-dkms release from Shadowrom2020/aic8800-dkms GitHub and builds the kernel module in the chroot. Forces INSTALL_HEADERS=yes — requires a kernel with working headers package.
Adds a C++ compiler to host build dependencies. The C++ compiler is no longer included by default; enable this extension when the build requires it.
Enables ccache with a remote storage backend (Redis or HTTP/WebDAV) for sharing the compilation cache across multiple build hosts. Requires ccache 4.4+.
Runs zerofree and cleans APT caches in the final image to reduce disk footprint.
Installs and configures cloud-init in the target image.
Developer/testing extension: a hook honeypot used to verify the extension framework works correctly.
Installs a fake vcgencmd stub for Raspberry Pi software compatibility on non-Pi boards.
Adds Btrfs filesystem support: host build tools and image packages. Auto-enabled when ROOTFS_TYPE=btrfs.
Adds LUKS/cryptroot support. Auto-enabled when CRYPTROOT_ENABLE=yes.
Adds F2FS filesystem support. Auto-enabled when ROOTFS_TYPE=f2fs.
Adds NILFS2 filesystem support. Auto-enabled when ROOTFS_TYPE=nilfs2.
Adds XFS filesystem support. Auto-enabled when ROOTFS_TYPE=xfs.
NXP ASK (Application Solutions Kit) integration for the Mono Gateway Development Kit (LS1046A). Builds ASK kernel modules (CDX, FCI, auto-bridge, sfp-led, lp5812) in-tree with the kernel and packages userspace tools (fmlib, fmc, libfci, libcli, dpa-app, cmm) plus patched system libraries and configs into a single .deb. Requires iptables at runtime.
Generates extension hook documentation and a sample extension file. Useful for extension developers.
Standard GRUB bootloader setup for UEFI-capable boards. Supports DISTRO_GENERIC_KERNEL mode (uses distro kernel instead of Armbian's). Sets GRUB_GFXPAYLOAD_LINUX=text to keep the framebuffer console bound to fbcon (prevents a black local console after Plymouth quits on CLI installs), passes splash plymouth.ignore-serial-consoles so kernel boot messages remain visible while Plymouth draws the splash on the framebuffer. Deliberately omits quiet and loglevel=3, and disables Ubuntu's vt.handoff=7 injection.
GRUB bootloader setup for RISC-V 64-bit boards. Mirrors the console/splash cmdline conventions of the grub extension.
GRUB with device tree blob (DTB) embedding support.
Builds the gxlimg tool used for creating Amlogic bootable images.
Converts the output image to ABL (Android Boot Loader) format using mkbootimg.
Converts the Armbian image into a QDL-flashable archive for Arduino UNO Q (Qualcomm QRB2210). Fetches Qualcomm flash binaries during image creation.
Creates an image compatible with the OOWOW recovery system for Khadas boards.
Produces an OVF (Open Virtualization Format) archive for use in VMware and other hypervisors. Depends on image-output-qcow2.
Produces a qcow2 image suitable for QEMU/KVM virtualization.
Produces a UTM-compatible image for macOS virtualization. Depends on image-output-qcow2.
Produces a VHD image for use with Microsoft Azure.
Produces a VHDX image. Depends on image-output-qcow2.
Adds USB Mass Storage (UMS) gadget support to the initramfs, allowing the board to expose its storage over USB.
Automatically converts the Armbian .img into a JetHub burn image after the main build.
Enables Rust language support in the Linux kernel (CONFIG_RUST). Installs a rustup-managed toolchain into ${SRC}/cache/tools/rustup/ and configures all required make parameters.
Adds the compiler name and version (e.g. gcc13.3, clang20.1) to the kernel artifact version string, ensuring cache invalidation when the toolchain changes.
Variables: none (auto-detects from KERNEL_COMPILER).
Applies Armbian optimizations for low-memory boards (reduced parallelism, swap configuration, etc.).
Applies localmodconfig based on an lsmod output file to build a minimal kernel. Place the lsmod file in userpatches/lsmod/<board>.lsmod. Variable: LSMOD (defaults to $BOARD).
Adds LVM (Logical Volume Manager) support to the image.
Fetches Marvell Armada A3700 build tools, DDR library, and binary blobs needed for bootloader assembly.
Installs Mesa 3D and VPU/Chromium acceleration packages. On Ubuntu: full 3D + 4K VPU. On Debian: 3D only.
Adds MediaTek device flashing tool support to the build.
Installs the chrony NTP daemon for network time synchronization.
Installs NetworkManager and Netplan for network interface management.
Installs systemd-networkd and Netplan for network interface management.
Installs systemd-timesyncd for network time synchronization.
Gaming-oriented Armbian image configuration.
Builds the kernel with all modules disabled (localmodconfig with empty lsmod). Produces a non-working kernel — intended for rapid kernel build/packaging tests only.
Builds the Nvidia proprietary kernel module via DKMS. Not available in minimal images.
Applies preset first-run configuration specific to the Odin2 gaming device.
Installs the photonicat-pm DKMS power-management driver for the Ariaboard Photonicat router. Fetches the latest release from HackingGate/photonicat-pm GitHub and builds the kernel module in chroot. Skipped on kernels ≥ 6.20. Requires working kernel headers.
Applies preset network and first-run configuration to the image (writes .not_logged_in_yet).
Builds the Radxa AIC8800 WiFi driver as a DKMS kernel module. Requires working kernel headers.
Fetches Rockchip binary tools (rkbin) from the configured git repository. Variables: RKBIN_GIT_URL, RKBIN_GIT_BRANCH.
Adds Rockchip device flashing tool support to the build.
Adds a 32-bit ARM cross-compiler to host dependencies for Allwinner (sunxi) builds. Only required outside Docker.
Writes the SyterKit bootloader image to the appropriate offset in the Allwinner output image.
Installs Texas Instruments packages from the official TI Debian package repository.
Configures the U-Boot boot menu for boards that support it.
Patches U-Boot's binman tool to use importlib.resources instead of pkg_resources, restoring build compatibility on hosts with setuptools >= 82 (which removed pkg_resources). Covers U-Boot v2024.x–v2025.04.
Enables Btrfs filesystem support in U-Boot (CONFIG_CMD_BTRFS).
Integrates UEFI EDK2 firmware for Rockchip RK3588 boards.
Creates a UFS-sector-aligned image. Requires Debian Trixie (13) or newer as the build host. Set DOCKER_ARMBIAN_BASE_IMAGE=debian:trixie when building in Docker.
Builds the UWE5622 WiFi driver for Allwinner-based boards.
Builds the v4l2loopback virtual camera kernel module via DKMS. Not available in minimal images.
Creates a VMware-compatible image (VMDK + OVF) with VMware tools installed. Depends on image-output-ovf.
Masks Wayland desktop session entries for boards with limited or unstable Wayland support.
Installs the watchdog daemon and enables CONFIG_WATCHDOG / hardware watchdog device support in the kernel.
Configures X.Org server flags for the Lima open-source GPU driver.
Builds the Motorcomm YT6801 Ethernet controller driver as a DKMS kernel module. Requires working kernel headers.
Builds ZFS kernel module and userspace tools via DKMS. Requires working kernel headers.