Skip to main content

Reset to Factory Ubuntu Image

This guide outlines a simplified recovery process for devices that are misconfigured, corrupted, or require a fresh start—restoring the original Canonical Ubuntu image to ensure a reliable starting point for development.

warning

Updating the software with the prebuilt images erases all data on your device and installs a newer image. Ensure you back up important data before you start.

info
  • 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.

  1. Download the appropriate version of the QDL tool for your host machine (Windows, Linux, or macOS) from the provided link. 🔗QDL tool(includes executable files)
  2. Review the official setup guide to understand the full flashing process.
  1. 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️⃣ Download Canonical Ubuntu build and flash

1: Download the system image for RPi3 from the Canonical Ubuntu site. 🔗Server 24.04 image
2: Download the dtb.bin file 🔗Devicetree blob
3: Download the rawprogram0.xml file 🔗rawprogram0.xml
4: Download the boot firmware image. 🔗Boot firmware
5: Unzip the boot firmware image zip file and copy the dtb.bin, rawprogram0.xml and system images to this folder location.
6: Unzip and copy the QDL executable files from Step1 to Boot Firmware folder.

note
  • For Windows hosts, make sure to copy the DLL files along with the executable.

7: Enter into 🔗 EDL mode
8: Flash the device using the 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.

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

3️⃣ Login & Wi-Fi Connection

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

4️⃣ 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.

5️⃣ 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.