🛠 Premier boot d'Armbian sur la PINE A64 (microSD, console série, rootfs)
Objectives
Discover the PINE A64 / PINE A64+ (Allwinner A64 SoC, 4× 64-bit Cortex-A53, the first "64-bit for $15" board launched on Kickstarter in December 2015) with the system the community actually uses: Armbian. The official wiki states: "the majority of Linux distributions for the PINE A64 use mainline Linux," and Armbian remains actively maintained for this board (board config pine64, current, edge, and legacy kernels). You will burn the image, boot, connect via serial console on the EXP connector, and understand what happens during the first boot.
Hardware
- 1 × PINE A64 or PINE A64+ (512 MB, 1 GB, or 2 GB DDR3)
- 1 × high-quality microSD card (the official wiki caps at 256 GB max — and use a verified card: SD card counterfeiting is the primary failure mode for this class of boards)
- 1 × 5 V / 2 A barrel connector power supply (the jack is the recommended power input; micro-USB and the VBAT Li-ion connector are also listed as inputs by the wiki, but micro-USB suffers from voltage drops)
- 1 × 3.3 V USB-TTL adapter on the 2×5 EXP connector (UART0, pins PB8/PB9)
- PC for burning (balenaEtcher or
dd)
Complete Code
# 1) Graver l'image Armbian (board « pine64 ») sur la microSD (ex. /dev/sdX)
xzcat Armbian_*_Bookworm_current_pine64.img.xz | sudo dd of=/dev/sdX bs=4M status=progress
sync
# 2) Brancher USB-TTL sur l'EXP (RX/TX croisés + GND, niveau 3,3 V !), puis :
picocom -b 115200 /dev/ttyUSB0 # ou : sudo minicom -D /dev/ttyUSB0 -b 115200
# 3) Alimenter avec le barrel 5V — la console série affiche U-Boot puis le kernel.
# Le device tree mainline impose la console : stdout-path = "serial0:115200n8"
# 4) Premier boot Armbian : création du user, mot de passe root, puis le
# rootfs s'étend automatiquement sur toute la microSD.
# 5) Vérifier la carte vue par le noyau mainline :
cat /proc/device-tree/compatible
# -> attend « pine64,pine64 » ou « pine64,pine64-plus » + « allwinner,sun50i-a64 »
Expected Verification
On the serial console at 115200 8N1, you see U-Boot scroll by (config pine64_plus_defconfig on Armbian images) followed by the mainline kernel, up to the account creation prompt. cat /proc/device-tree/compatible returns a string containing allwinner,sun50i-a64: the board is correctly recognized by the mainline kernel, without proprietary BSP. After the first boot, df -h / shows a rootfs occupying most of the microSD (Armbian automatic resizing). The power consumption announced by the official wiki is approximately 2.5 W: the board remains warm without a heatsink.
Common Errors
- Powering via a poor-quality micro-USB cable: voltage drops on the 5 V line cause random SD/USB failures (Armbian's history report cites this as a classic issue) — use the 5 V 2 A barrel connector.
- Silent boot: the console is on the 2×5 EXP connector (UART0, PB8/PB9), not on the 40-pin Pi-2 connector (its UART, UART2, is disabled by default). Also check crossed RX/TX and common GND, at 3.3 V level.
- Counterfeit or too slow microSD card: this is the documented failure mode #1 — the official wiki itself links to detection tools h2testw and f3. Test the card before blaming the board.
- Expecting Android or Ubuntu Touch on a 512 MB model: the 512 MB version only runs Arch Linux and Debian distributions; heavy OSes require a 1 GB+ model.
- Looking for embedded flash memory: there is none — only the microSD (or a plug-in eMMC module on its dedicated connector) boots the board; no SPI NOR either.
Other tutorials for this board
- PINE A64 ou PINE A64+ ? Le pièg du réseau gigabit dès le premier regard
- Faire clignoter une LED avec libgpiod (numérotation GPIO du A64 : PB0 = 32)
- Benchmark Ethernet iperf3 : mesurer le piège 10/100 vs gigabit
- Lire un capteur I²C (BME280) sur le bus i2c-1 du connecteur Pi-2
- Un serveur maison qui consomme 2,5 W : Docker léger sur la PINE A64
- Construire sa propre image Armbian pour la PINE A64 (armbian/build)
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash