Writing the image to your media¶
There are multiple ways to deploy the image to your board. The easiest and most common option is to write the Armbian Image to your SD-Card.
Flash to SD Card¶
Use Armbian Imager to flash the image.
Armbian Imager can:
- download official Armbian images
- flash already downloaded
.img,.img.xz, or custom images - automatically verify written data
- protect your system disks from accidental overwrite
Steps:
- Install and open Armbian Imager
- Select your board or choose a local/custom image
- Select your SD card or USB drive
- Flash and wait for verification to finish
Other tools
We are aware that many programs can be used for this step. However, tools without proper verification and safe target selection can hide problems such as bad cards, faulty readers, partial writes, or accidentally selecting the wrong drive. These issues have caused too many avoidable error reports.
For this reason, Armbian Imager is the recommended tool.
Due to reports of image corruption caused by decompression issues, balenaEtcher is not recommended.
Flash to Internal Memory¶
Flash to Internal Memory allows you to write Armbian image directly to the device’s built‑in storage. This process completely replaces the existing system and erases all current data on the target drive. Use with caution, as once started, the operation cannot be undone.
Rockchip¶
When a Rockchip device is placed into Maskrom mode, you can use rkdeveloptool to flash an image directly to its internal storage (eMMC, UFS, or SPI) over USB.
Install requirements for rkdeveloptool
| Bash | |
|---|---|
Download & Compile rkdeveloptool
| Bash | |
|---|---|
Optionally install rkdeveloptool systemwide:
| Bash | |
|---|---|
First make sure you have brew installed. Then you can run the following commands to install rkdeveloptool:
Install requirements
| Bash | |
|---|---|
Download & Compile rkdeveloptool
| Bash | |
|---|---|
Optionally install rkdeveloptool systemwide:
| Bash | |
|---|---|
- Connect & Boot your Board into Maskrom mode. Usually there is a button to hold for 5 seconds during boot else check your manufactures website.
- Run
rkdeveloptool ldto list all connected devices - Extract your image
unxz Armbian-YourBoard.img.xz - Flash the RK3XXX_loader.bin (check your SoC) via
rkdeveloptool db RK3XXX_loader.binwhich stands for download boot - Erase the current storage medium (usually EMMC) via
rkdeveloptool efwhich stands for erase flash - Now you can flash the extracted image with
sudo rkdeveloptool wl 0 Armbian-YourBoard.img(make sure the file ends with .img) - Reboot your board with
sudo rkdeveloptool rdwhich stands for (power) reset device
Qualcomm¶
Qualcomm boards are flashed with Armbian Imager over EDL (Emergency Download Mode), so no extra tooling is needed. Imager writes straight to the board’s built-in eMMC or UFS, depending on the board.
Which boards can be flashed this way, which storage each one uses, and how each one enters EDL all come from the Armbian board registry, so the list grows without an Imager update. Boards covered so far include the Arduino UNO Q (QRB2210, eMMC) and the Radxa Dragon series — Q6A (QCS6490, UFS) and Q8B (SC8280XP, UFS).
Steps:
- Put the board into EDL mode. Imager tells you which method your board uses — either place the jumper on the JCTL pins, or hold the EDL button while powering on.
- Connect the board to your computer with a USB cable.
- Open Armbian Imager and select your board and image.
- Flash. Imager uploads the firmware loader, then writes the partitions.
UFS images are a separate download
Boards that flash to UFS need an image built for UFS — its filename
carries a -ufs marker. An ordinary SD-card image will not boot from UFS.
Linux: USB access denied
An EDL device appears as USB ID 05c6:9008, and the in-tree qcserial
driver claims that same ID. Give your user access to the device and stop
qcserial from taking it:
| Bash | |
|---|---|
uaccess covers you when you are logged in at the machine itself; over SSH,
add yourself to plugdev with sudo usermod -aG plugdev $USER and log back
in.
The blacklist only stops qcserial loading in future — it does not
release a board it has already taken. If the module is loaded, unplug the
board, unload it, then plug the board back in:
| Bash | |
|---|---|
Reboot instead if it will not unload. Note that the blacklist is permanent
and also stops qcserial driving other Qualcomm serial devices, such as USB
modems; delete /etc/modprobe.d/blacklist-qcserial.conf to undo it.
No EDL device found
The board is not in EDL mode, or the cable is data-only. Re-enter EDL mode as in step 1, try a different USB cable or port, and reconnect.
SpacemiT¶
SpacemiT boards such as the Firefly AIBOX-K3 keep their bootloader in SPI NOR flash. Their vendor U-Boot may not enumerate removable media, so the image is written directly to the board’s UFS storage with SpacemiT’s flashing suite, TitanTools / TitanFlasher, over USB. The suite runs on Windows, and on Linux as an AppImage.
-
Download the Armbian image and unpack it if it is compressed, for example with
unxz. -
Split the image into its two partitions. On the AIBOX-K3 the layout is fixed by the vendor firmware:
bootfsstarts at 12 MiB and is 256 MiB,rootfsstarts at 268 MiB and fills the rest of the image.Read the sector size and the sector counts from the image. The AIBOX-K3 image uses 4 KiB sectors, so pass the sector size to
fdisk; otherwise it reports only the protective MBR:Bash Copy exactly the partition. The image ends with a backup copy of the partition table, so a copy without
countalso puts that backup intorootfs.ext4: -
Download the firmware package that the board vendor provides and unpack it. It contains the partition layout and the bootloader images.
-
Connect the PC to the board’s Type-C USB 3.0 port. Do not use the USB serial port. Then hold the Boot button, connect the 12 V power and release the button after 2~3 seconds.
Without this order, TitanFlasher may not detect the board.
-
Open TitanFlasher and go to Dev Tools and USB Download. Click Scan Devices and select the board, which is detected as a DFU device. Choose the unpacked vendor directory with Local Dir, or the archive with Local File. If no partition list appears, enable Configure Partition File and select
partition_universal.json(UFS layout). -
TitanFlasher lists every partition of the layout. Press Replace next to
bootfsandrootfsand select the files from step 2. Leave the other partitions as they are. -
Press Start Flashing and wait until the tool reports that flashing is complete. If Reboot After Flashing is enabled, the board restarts by itself; otherwise power-cycle it after the tool is done.
Do not remove the cable or cut power while the flash is running. An interrupted write can leave the UFS unbootable.
Replacing the bootloader
Only bootfs and rootfs belong to Armbian. Leave the remaining
partitions selected only if you also want to restore the vendor
bootloader into SPI NOR. In that case enable Configure Partition File
and select both partition_4M.json (NOR) and partition_universal.json
(UFS).
Sector size
Armbian images for these boards use 4 KiB sectors because the UFS reports 4096-byte logical sectors. A 512-byte image cannot mount its boot partition on this storage.
Vendor manual
See the SpacemiT flashing tool manual and the Firefly AIBOX-K3 firmware upgrade guide for the full description of the interface.
Previous: Choosing an Armbian image
Next: First boot and login
Back to the Getting Started overview.

