Radxa Zero

Author: Jase Batchelor

These instructions vary between the 1.4.x and 1.5.x series of boards
The 1.5.x series does NOT require the steps to flash the bootloader

This covers the setup of Radxa Zero single board computers (SBC).

The OS is installed on the eMMC and we use wireless networking.

These boards will be used as follows for the purposes of examples on this site:

  • 2 Gitlab runners for CI builds
  • Kubernetes cluster
    • 1 control plane node
    • 3 worker nodes

image


Sections


Hardware

Optional, but recommended

  • ORICO Powered USB 3.0 HUB (link)
  • USB-A to USB-C adapters (link)

 


Prerequisites

Install prerequisites:

sudo apt install python3-pip curl
sudo pip3 install pyamlboot
bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh) --no-analytics

Download utilities from Radxa

wget https://dl.radxa.com/zero/images/loader/rz-udisk-loader.bin
wget https://dl.radxa.com/zero/images/loader/rz-fastboot-loader.bin
wget https://dl.radxa.com/zero/images/loader/factory-loader.img
wget https://dl.radxa.com/zero/images/loader/u-boot.bin

Download OS image

Images available on GitHub: https://github.com/radxa/radxa-zero-images-released/releases/tag/radxa-zero-v20211028

# Credentials: rock:rock
# wget radxa-zero-debian-buster-xfce4-arm64-20220801-0339-mbr.img.xz
wget https://github.com/radxa/radxa-zero-images-released/releases/download/radxa-zero-v20211028/zero_debian_buster_xfce4_arm64_20211028_1030-mbr.img.gz

Balena Etcher

# Note: on M1 based Mac without Rosetta2 use version 1.5.121: 
# https://github.com/balena-io/etcher/releases/download/v1.5.121/balenaEtcher-1.5.121.dmg

brew install balenaetcher --cask

 


Installation

Restart in USB Mode.

NOTE: To verify the Radxa Zero started in USB mode:

lsusb
# Example output. Ensure the result shows `GX-CHIP`
< Bus 020 Device 001: ID 1b8e:c003 Amlogic, Inc. GX-CHIP
Unlock the eMMC

Restart in USB Mode.

Then do this one time only:

lsusb
# Bus 020 Device 001: ID 1b8e:c003 Amlogic, Inc. GX-CHIP

# Unlock eMMC before we can do anything
sudo boot-g12.py factory-loader.img
# Firmware Version :
# ROM: 3.2 Stage: 0.0
# Need Password: 0 Password OK: 1
# Writing factory-loader.img at 0xfffa0000...
# [DONE]
# Running at 0xfffa0000...
# [DONE]
# AMLC dataSize=16384, offset=65536, seq=0...
# [DONE]
# AMLC dataSize=49152, offset=393216, seq=1...
# [DONE]
# AMLC dataSize=16384, offset=229376, seq=2...
# [DONE]
# AMLC dataSize=49152, offset=81920, seq=3...
# [DONE]
# AMLC dataSize=16384, offset=65536, seq=4...
# [DONE]
# AMLC dataSize=49152, offset=393216, seq=5...
# [DONE]
# AMLC dataSize=16384, offset=229376, seq=6...
# [DONE]
# AMLC dataSize=49152, offset=180224, seq=7...
# [DONE]
# AMLC dataSize=16384, offset=65536, seq=8...
# [DONE]
# AMLC dataSize=49152, offset=393216, seq=9...
# [DONE]
# AMLC dataSize=16384, offset=229376, seq=10...
# [DONE]
# AMLC dataSize=49152, offset=245760, seq=11...
# [DONE]
# AMLC dataSize=49152, offset=294912, seq=12...
# [DONE]
# AMLC dataSize=16384, offset=65536, seq=13...
# [DONE]
# AMLC dataSize=1207664, offset=81920, seq=14...
# [DONE]
# [BL2 END]

sudo fastboot flashing unlock_critical
# Password:
# OKAY [  0.549s]
# Finished. Total time: 0.549s

sudo fastboot flashing unlock
# OKAY [  0.037s]
# Finished. Total time: 0.037s
Erase the bootloader

Restart in USB Mode. Then erase the entirety of the eMMC (can be done many times):

lsusb
# Bus 020 Device 001: ID 1b8e:c003 Amlogic, Inc. GX-CHIP

sudo boot-g12.py rz-fastboot-loader.bin
# Firmware Version :
# ROM: 3.2 Stage: 0.0
# Need Password: 0 Password OK: 1
# Writing rz-fastboot-loader.bin at 0xfffa0000...
# [DONE]
# Running at 0xfffa0000...
# [DONE]
# AMLC dataSize=16384, offset=65536, seq=0...
# [DONE]
# AMLC dataSize=49152, offset=393216, seq=1...
# [DONE]
# AMLC dataSize=16384, offset=229376, seq=2...
# [DONE]
# AMLC dataSize=49152, offset=245760, seq=3...
# [DONE]
# AMLC dataSize=49152, offset=294912, seq=4...
# [DONE]
# AMLC dataSize=16384, offset=65536, seq=5...
# [DONE]
# AMLC dataSize=1406320, offset=81920, seq=6...
# [DONE]
# [BL2 END]

sudo fastboot erase bootloader
# Erasing 'bootloader'                               OKAY [  2.254s]
# Finished. Total time: 2.256s

sudo fastboot erase bootenv
# Erasing 'bootenv'                                  OKAY [  0.056s]
# Finished. Total time: 0.058s

sudo fastboot erase 0
# Erasing '0'                                        OKAY [  3.017s]
# Finished. Total time: 3.018s

sudo fastboot erase 1 # Ignore in the event this fails
# Erasing '1'                                        OKAY [  3.017s]
# Finished. Total time: 3.018s

fastboot reboot
# Rebooting                                          OKAY [  0.000s]
# Finished. Total time: 0.000s
Write the OS to the eMMC

Restart in USB Mode.

lsusb
# Bus 020 Device 001: ID 1b8e:c003 Amlogic, Inc. GX-CHIP

sudo boot-g12.py rz-udisk-loader.bin
# Firmware Version :
# ROM: 3.2 Stage: 0.0
# Need Password: 0 Password OK: 1
# Writing rz-udisk-loader.bin at 0xfffa0000...
# [DONE]
# Running at 0xfffa0000...
# [DONE]
# AMLC dataSize=16384, offset=65536, seq=0...
# [DONE]
# AMLC dataSize=49152, offset=393216, seq=1...
# [DONE]
# AMLC dataSize=16384, offset=229376, seq=2...
# [DONE]
# AMLC dataSize=49152, offset=245760, seq=3...
# [DONE]
# AMLC dataSize=49152, offset=294912, seq=4...
# [DONE]
# AMLC dataSize=16384, offset=65536, seq=5...
# [DONE]
# AMLC dataSize=1406320, offset=81920, seq=6...
# [DONE]
# [BL2 END]
# 

Click Ignore on popup from MacOS.

Flash the OS image using Balena Etcher.

Alternatively, use dd as follows:

diskutil list
#/dev/disk2 (external, physical):
#   #:   TYPE NAME   SIZE       IDENTIFIER
#   0:              *31.0 GB    disk2

diskutil unmountDisk /dev/disk2   
sudo dd if=./zero_debian_buster_xfce4_arm64_20211028_1030-mbr.img of=/dev/disk2 bs=1m; sync
Write the bootloader

Once the image has been flashed to the eMMC add the bootloader:

sudo dd if=u-boot.bin of=/dev/disk2 bs=512 seek=1

 


Configuration

See the Debian article for WIFI setup using wpa_supplicant

Initial login via GUI with keyboard

Default username and password: rock:rock
- Alt Tab to get focus
- Alt F1 + Fn -> open terminal

 


Additional configuration

See the Debian article for standard operating environment configuration

LED setup - https://forum.radxa.com/t/led-meaning-of-radxa-zero/9047/10

 


Specifications

RADXA Zero product details

  • Amlogic S905Y2 64bit quad core processor
  • Quad Cortex-A53, frequency 1.8Ghz, 12nm
  • Mali G31 MP2 GPU, supports OpenGL ES 1.1 /2.0 /3.1 /3.2, Vulkan 1.1, Open CL 1.1 1.2, 2.0 Full Profile
  • 64bit dual channel LPDDR4@3200Mb/s, 1GB/ 2GB or 4GB
  • Wifi/BT with external antenna support*
  • WIFI4/BLE4 and WIFI4/BLE5 available for different models!
  • Soldered high performance eMMC 5.1 with capacities of 8GB/ 16GB
  • Micro SD card slot supports up to 128G uSD card
  • Micro HDMI 2.1, 4K@60 HDR
  • HD codec H265/VP9 decode 4Kx2K@60
  • USB 3.0 Type-C HOST x1
  • USB 2.0 Type-C OTG x1
  • Wireless 802.11 ac wifi 2,4/5GHz, Bluetooth 5.0
  • Size 66mm x 30mm

 


USB Gadget mode

Reviews