Skip to main content

Flash Canonical Ubuntu 24.04 Over Android/QLI Build

If your device is currently running Android or Qualcomm Linux (QLI), this section provides instructions for replacing the existing operating system with a certified Canonical Ubuntu 24.04 Server image, using a host computer running Ubuntu, Windows®, or macOS®.

This is the recommended path for developers transitioning to Ubuntu for AI and multimedia development.

warning

Flashing a prebuilt Ubuntu image will erase all data on your device. Back up important files before proceeding.

info
  • If the QLI version is 1.3 or above, please ignore Update UFS provisioning step.
  • Before You Start - Complete 🔗setup instructions.

🏁 Let’s Get Started!

1️⃣ Setup QDL tool

Qualcomm Device Loader (QDL) is a cross-platform tool for flashing software images to Qualcomm® USB devices by uploading a flash loader, with support for Windows, Linux, and macOS.
a. Download the appropriate version of the QDL tool for your host machine (Windows, Linux, or macOS) from the provided link. 🔗QDL tool(consists executable files)
b. Review the official setup guide to understand the full flashing process.

Install libusb and libxml2 by executing the following command. (Skip this step if they are already installed.)

sudo apt-get install libxml2-dev libudev-dev libusb-1.0-0-dev

2️⃣ UFS Provisioning

Provisioning ensures that the Universal Flash Storage (UFS) is correctly initialized and partitioned to support the new OS image.

a. Go to the link and download provision.zip file 🔗 UFS
b. Unzip and copy the QDL executable files from Step1 to UFS provision folder.

note
  • For Windows host make sure to copy the dll files along with the executable.

c. Enter into 🔗 EDL mode
d. Go to the provision folder to perform UFS provisioning operation

Run the following command to reconfigure the UFS.

./qdl prog_firehose_ddr.elf provision_1_3.xml

3️⃣ Flash Renesas firmware

Renesas firmware update ensures proper initialization and compatibility of the Renesas MCU components embedded in the board. This step is essential for enabling secure boot, stable communication, and full functionality of the device under Ubuntu.

a. Download the file 🔗Renesas FW Update
b. Unzip and copy the QDL executable files from Step1 to Renesas Firmware folder.

note
  • For Windows host make sure to copy the dll files along with the executable

c. Enter into 🔗 EDL mode
d. Flash the driver using QDL command

Run the following command.

qdl --storage ufs prog_firehose_ddr.elf rawprogram*.xml patch*.xml
note

In case of failures, remove and plug in the power supply and USB cable to restart your RUBIK Pi 3 and perform the flashing operation again.

4️⃣ Download Canonical Ubuntu build and flash

a. Download the system image for RPi3 from the Canonical Ubuntu site. 🔗Server 24.04 image. Extract the system image XZ file according to the host machine's configuration.
b. Download the dtb.bin file 🔗Devicetree blob
c. Download the rawprogram0.xml file 🔗rawprogram0.xml
d. Download the boot firmware image. 🔗Boot firmware
e. Unzip the boot firmware image zip file and copy the system image (step a), dtb.bin (step b), and rawprogram0.xml (step c) to this folder location.
f. Unzip and copy the QDL executable files from Step1 to Boot Firmware folder.

note
  • For Windows host make sure to copy the dll files along with the executable

g. Enter into 🔗 EDL mode
h. Follow the procedure below to flash the device using a host computer.

Run the following command.

qdl --storage ufs prog_firehose_ddr.elf rawprogram*.xml patch*.xml
tip

In case of failures, remove and plug in the power supply and USB cable to restart RUBIK Pi 3 flashing operation.

info

By default, when the platform build is flashed, the CDT is also flashed to the designated location named "cdt". This process is defined in the rawprogram3.xml file.

i. Once flashing is complete, the device will automatically boot and display the startup screen on the connected HDMI monitor.

5️⃣Login & Wi-Fi Connection

a. Login and change password on the monitor UART console/SBC terminal.
b. Set up Wi-Fi connectivity. 🔗 Wi-Fi Setup Guide

6️⃣ Install Pre-built Packages

Run the following commands to install pre-built packages on the device.

git clone -b ubuntu_setup --single-branch https://github.com/rubikpi-ai/rubikpi-script.git
cd rubikpi-script
./install_ppa_pkgs.sh
Details

The script installs the following

  • Install AI samples application packages.
  • Install Rubikpi3 Camera, wiringrp and wiringrp_python packages.
  • Install generic developer tool related packages.

📌 Note: If you encounter package installation failures, run the following command: 'apt --fix-broken install'

After successful running the install_ppa_pkgs.sh, you can observe the following screen on Display Monitor.

7️⃣ Verify the SW version

Run the following commands in the device shell to verify the version:

cat /etc/os-release 

Output:

NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

Run the following command to check the Linux version:

uname -a

Output:

Linux ubuntu 6.8.0-1055-qcom #55-Ubuntu SMP PREEMPT_DYNAMIC Wed Sep 17 02:03:34 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux  

🧭 Next Steps After the image is flashed, refer to the Application Development and Execution Guide.