Edited Mar 2026
Armbian is an open souce debian-based linux distro designed for ARM and RISC-V SBCs with good community support and documentation. If you’ve purchased a Raspberry Pi alternative such as and Orange Pi or Radxa board I recommend Armbian for the support and documentation.
Armbian offers hundreds of prebuilt images on the Armbian download page and even provides an imaging tool similar to Raspberry Pi imager at https://imager.armbian.com.
In most cases you can find a build that fits your needs here but in other cases you will need to build your own image. In my case I want a headless build featuring standard cli tools for the Radxa Zero 2 so I will be building my own image.
Official Armbian Documentation: https://docs.armbian.com/Developer-Guide_Overview/
1. Install Prerequisites Install coreutils
# MacOS
brew install coreutils
# Debian / Ubuntu
apt update
apt install coreutils
If you are not using Ubuntu you will also need Docker. MacOS & Windows: https://docker.com Debian: https://docs.docker.com/engine/install/debian/
2. Clone Armbian Build Repository Armbian Build Repository: https://github.com/armbian/build
git clone https://github.com/armbian/build.git
3. Generate Targets & Config Files This command generates several configuration files as well as a CSV listing all supported build targets.
cd build
./compile.sh inventory-boards
Note: inventory-boards will take a while to run
4. Modify Build Configuration
Identify your board’s build target identifier in ./output/info/boards-inventory.csv generated by the previous command. I find grep helpful for this.
grep radxa output/info/boards-inventory.csv
Then, modify ./userpatches/config-example.conf to specify your board target and desired Debian version.
nano userpatches/config-example.conf
Armbian config documentation: https://docs.armbian.com/Developer-Guide_Build-Switches/
BOARD=radxa-zero2 # Build for the Radxa Zero 2
BRANCH=current
RELEASE=trixie # Use Debian 13 Trixie
KERNEL_CONFIGURE=no
INSTALL_HEADERS=yes
SHARE_LOGS=no # Optional log sharing
BUILD_DESKTOP=no
BUILD_MINIMAL=no
5. Modify First Boot Configuration This configuration is read during the device fist boot to connect to your WiFi and provision user accounts.
Create firstboot.conf file & paste template from Armbian autoconfig documentation: https://docs.armbian.com/User-Guide_Autoconfig/
nano userpatches/firstboot.conf
#/root/.not_logged_in_yet
# Network Settings
PRESET_NET_CHANGE_DEFAULTS="1"
## Ethernet
PRESET_NET_ETHERNET_ENABLED="1" # Ignored due to WiFi
## WiFi
PRESET_NET_WIFI_ENABLED="1"
PRESET_NET_WIFI_SSID="MyWifi"
PRESET_NET_WIFI_KEY="WifiPassword"
PRESET_NET_WIFI_COUNTRYCODE="US"
PRESET_CONNECT_WIRELESS="y"
# System
SET_LANG_BASED_ON_LOCATION="y"
PRESET_LOCALE="en_US.UTF-8"
PRESET_TIMEZONE="Etc/UTC"
# Root
PRESET_ROOT_PASSWORD="root-password"
PRESET_ROOT_KEY=""
# User
PRESET_USER_NAME="andrew"
PRESET_USER_PASSWORD="password"
PRESET_USER_KEY="https://github.com/azroberts8.keys" # Pulls SSH keys from your GitHub
PRESET_DEFAULT_REALNAME="Andrew Roberts"
PRESET_USER_SHELL="bash"
6. Compile the Image
./compile.sh example
Note: This will take a long time - you are building the linux kernel
Your compiled image will be saved in ./output/images
1. Connect Device or Flash Memory Connect your board or SD card to your machine and identify its location
# MacOS - should resemble /dev/disk<n>
diskutil list
# Linux - should resemble mmcblk<n>
lsblk
Make sure to identify the correct device before the next step!
2. Flash Image to Device
sudo dd bs=1M status=progress \
if=./output/images/<your-image>.img \
of=/dev/<your-device>
1. Boot Your Board Insert your flashed SD card into your board and connect it to power. For you initial boot it may take a couple minutes before it boots and authenticates with your WiFi network.
2. Identify Device on Network
Typically your device hostname should be the same as the build target (in my case radxa-zero2). If you are having trouble finding it use arp to list the devices on your LAN
arp -a
3. SSH to Board Root
Despite setting a user account and root password in the first-boot configuration, you will need to first SSH to root using the password 1234
ssh root@radxa-zero2
After your connect it will automatically configure the user account and root passwords that you set. Every subsequent sign-on use the root password or user account that you set in the configuration file.