Install Ubuntu on the Radxa ROCK Pi 4A

For the instructions below a Radxa ROCK Pi 4A board with an NVMe drive is presumed. A HDMI monitor, a USB keyboard, and a USB mouse have to be connected.

Warning

On the Radxa ROCK Pi 4A U-Boot can either be located on SPI flash or on the SD-card. Here it is assumed that U-Boot has been erased from the SPI flash and the device boots via U-Boot from the SD card.

Provide installer image

Download the ARM64 installer image from the webpage. In the following the image is called resolute-desktop-arm64.iso. Replace that filename with your release.

To copy the content of to the SD-card we need to make its partitions accessible as loop devices.

sudo apt-get update
sudo apt-get install kpartx
sudo kpartx -a -v resolute-desktop-arm64.iso

You will see an output like

add map loop15p1 (252:1): 0 7889312 linear 7:15 64
add map loop15p2 (252:2): 0 15424 linear 7:15 7889376

The number of the loop device may be different on you computer. Adjust the commands below accordingly.

Prepare the SD-card

Insert the SD-card in to an SD-card reader.

Warning

The device name of SD-card will depend on your system. In the instructions below you will have to replace /dev/sdX by the actual device.

sudo apt-get update
sudo apt-get install gdisk rsync ubuntu-dev-tools
sudo sgdisk /dev/sdX \
--zap-all \
--set-alignment=64 \
--new=13:64:32767 \
--change-name=13:uboot \
--new=15:32767:131071 \
--typecode=15:ef00 \
--change-name=15:ESP \
--new=1:131072:
pull-lp-debs -a arm64 u-boot resolute
# Replace `resolute` by the current release
dpkg -x u-boot-rockchip_2025.10-0ubuntu2_arm64.deb u-boot-rockchip
sudo dd if=u-boot-rockchip/usr/lib/u-boot/rock-pi-4-rk3399/u-boot-rockchip.bin \
  of=/dev/sdX13 bs=1M conv=fsync
sudo dd if=resolute-desktop-arm64.iso of=/dev/sdX1 bs=1M conv=fsync
sudo dd if=/dev/mapper/loop15p2 of=/dev/sdX15 bs=1M conv=fsync
# Replace `loop15p2` by the loop device with the ESP partition of the
# installer.
pull-lp-debs -a arm64 linux
dpkg -x linux-modules-?.*-generic_*_arm64.deb linux-modules
sudo mount /dev/sdX15 /mnt
sudo rsync -avP linux-modules/lib/firmware/*-generic/device-tree/* /mnt/dtb/
sync
sudo umount /mnt

Run installer

Insert the SD-card into the Radxa ROCK Pi 4A and power on the device.

The baudrate of the serial console is 1500000. As of U-Boot 2025.10 output is only shown on the video console and not on the serial console.

On reboot hit the enter key repeatedly until you reach the U-Boot prompt =>.

Fix the boot order

Power off the device. On your computer remove partition 1 and 15 from the SD-card.

sudo sgdisk /dev/sdX \
--zap-all \
--set-alignment=64 \
--new=13:64:32767 \
--change-name=13:uboot

Reinsert the SD-card and power on the device.