🛠 Construire sa propre image Armbian pour la PINE A64 (armbian/build)

Pine64 PINE A64 / PINE A64+ (Allwinner A64) · avance · Schéma : IMG-pine64-avance-1-construire-image-armbian.svg — PC x86 avec Docker lancant armbian/compile.sh, fleches de compilation vers une carte microSD etiquetee Armbian pine64, encart config BOARD=pine64 BRANCH=current, BOOTCONFIG pine64_plus_defconfig, CRUSTCONFIG a64_defconfig, chaine de boot BROM -> U-Boot -> kernel DTB

Objectives

Stop relying on binary images: compile the PINE A64 system yourself using the armbian/build framework, whose pine64 board configuration is still maintained (family sun50iw1, KERNEL_TARGET="current,edge,legacy"). You will see the complete boot chain specific to Allwinner — SoC BROM → U-Boot (mainline, defconfig pine64_plus_defconfig) → kernel + DTB, all read from the microSD (no SPI NOR on this board) — and the ARM Trusted Firmware replaced here by CRUST (a64_defconfig), the mainline port of Allwinner's ARM Trusted BSP.

Hardware

Complete code

# Cloner le framework de build Armbian
git clone --depth=1 https://github.com/armbian/build
cd build

# Compiler une image CLI Debian Bookworm, noyau mainline LTS (BRANCH=current)
# Le framework lit config/boards/pine64.conf :
#   BOOTCONFIG=pine64_plus_defconfig   (U-Boot mainline)
#   CRUSTCONFIG=a64_defconfig          (ARM Trusted Firmware pour A64)
#   KERNEL_TARGET="current,edge,legacy"
./compile.sh BOARD=pine64 BRANCH=current DISTRIBUTION=bookworm \
             BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=no

# Image produite :
ls -lh output/images/   # Armbian_*_Bookworm_current_pine64.img.xz

# Graver et booter (console EXP 115200 8N1 pour voir le U-Boot custom) :
xzcat output/images/Armbian_*_Bookworm_current_pine64.img.xz | sudo dd of=/dev/sdX bs=4M
sync

Expected verification

At the end of the build, output/images/ contains the .img.xz image with the current kernel, U-Boot u-boot-sunxi-with-spl.bin, and the DTB sun50i-a64-pine64*.dtb. On the serial console, the U-Boot banner appears, then the kernel starts on serial0:115200n8 (the chosen stdout-path of the mainline device tree). uname -a on the board confirms the kernel version you just compiled — and you can now patch the kernel or the DTS, rebuild, and see your change at the next boot.

Common errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials