Image build

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


SDK Download and Compilation

Supported Models

This document applies to the Quectel PI RK3576 M2 board. The project name is QSM610ZAPWFPI, and this document uses firmware with a Debian root filesystem (DEB) as an example. The build entry point is quectel_build/compile/build.sh. The complete workflow sequentially runs buildconfig, buildall and buildpackage, and flashing uses flash.sh in the SDK root directory.

The current M2 Debian build configuration is as follows:

Field

Current M2 Debian Configuration

SoC

Rockchip RK3576

Board Type

M2

Project Name

QSM610ZAPWFPI

Build Type

DEB

Rootfs System

debian

Defconfig

rockchip_rk3576_quectel_pi_m2_debian_defconfig

Build Script

build_quectel_pi_m2.sh

Download SDK

You can obtain the Linux SDK for Quectel PI RK3576 M2 through the following two methods:

Method 1: Download from the Official Website

Please visit the Quectel DevCenter resources download page to download the Quectel PI RK3576 M2 SDK compile resource package. (The download address will be added after release.)

On the resources download page, select the Quectel Pi product type, then select the Firmware type, and find the corresponding Quectel PI RK3576 M2 SDK Compile Resource Package to download.

The downloaded SDK package contains:

  • Pre-compiled firmware: Image files that can be directly used for flashing

  • Compilation toolchain (optional): For custom development, secondary compilation can be performed

Method 2: Clone from GitHub

You can also clone the SDK source code directly from the GitHub repository. (The repository address will be added after release.)

After cloning, enter the SDK main directory to start using it.

Quick Start
If you only need to use the official firmware for flashing, you can skip the compilation steps below and directly jump to the Get Images section. After unzipping the SDK package, you can obtain all image files required for flashing.


Custom Compilation (Optional)

Note: The following sections are for developers who need to modify source code or customize configurations. If you only use the official firmware, you can skip this part.

Build Environment

Go to the RK3576 SDK directory and use source to load the unified build script. This operation registers the build functions only in the current terminal session; rerun it after opening a new terminal.

cd /SDK
source quectel_build/compile/build.sh

After the script is loaded successfully, the following commands are available:

Command

Purpose

buildconfig <STD|DEB|SEC> [SEC]

Select the board type, root filesystem, and Secure Boot combination, and generate the configuration

buildall

Perform a complete firmware build based on the current configuration

buildpackage

Organize the images and generate the Release and Factory directories

buildconfig_verify

View the currently active build configuration

The primary combinations supported by M2 are as follows:

Parameter

Root Filesystem

Description

STD

Buildroot

Use quectel_pi_m2_rk3576_v0_defconfig

DEB

Debian

Standard Debian build used in this document

SEC

Debian

For M2, passing SEC alone is equivalent to Debian with Secure Boot signing

DEB SEC

Debian

Explicitly specify Debian with Secure Boot signing

Step 1: Execute the following command to configure the M2 Debian build environment:

buildconfig QSM610ZAPWFPI QSM610ZAPWFRD1A01_BD01BP01K0M01_QDP_LP6.1.118.01.001 DEB

After configuration succeeds, the script identifies the board type and build type, and generates quectel_build/config/quectel-buildconfig-gen.h and quectel_build/config/buildconfig.sh. You will see the current build configuration information. The key output observed in this test is as follows:

Project Name     = QSM610ZAPWFPI
Firmware Version = QSM610ZAPWFRD1A01_BD01BP01K0M01_QDP_LP6.1.118.01.001
Board            = M2
Build Type       = DEB
Defconfig        = rockchip_rk3576_quectel_pi_m2_debian_defconfig
Rootfs System    = debian
Build Script     = build_quectel_pi_m2.sh
Git Commit       = d97cfde78

To review the configuration, run:

buildconfig_verify

Full Build on the AP Side

Step 2: Execute the following command to perform the full build:

buildall

buildall first applies the M2 Debian defconfig, checks the Debian build prerequisites, and then performs a complete image build. After a successful build, intermediate artifacts are located in the SDK’s rockdev/ and output/ directories, among others. The total build time depends on host performance and cache state.

One-Click Packaging

Step 3: Execute the following command to perform one-click packaging:

buildpackage

Before packaging, the script checks whether output/update/Image/update.img exists and whether there are newer component images in rockdev/; if update.img is missing or out of date, it is regenerated first. After packaging is complete, all image files required for flashing are copied to the Release directory named after the firmware version under quectel_build/:

Output Directory

Purpose

QSM610ZAPWFRD1A01_BD01BP01K0M01_QDP_LP6.1.118.01.001/

Release package, excluding persist.img, nvdata1.img, nvdata2.img

The package contents come from rockdev/, output/update/Image/update.img and output/; the actual file set depends on the output of the current build.

Get Images

Depending on your usage scenario, there are two ways to obtain image files:

Method 2: Obtain Images After a Custom Build

If you have completed the above custom compilation steps, the packaged images are located in the Release directory named after the firmware version under quectel_build/ in the SDK, for example QSM610ZAPWFRD1A01_BD01BP01K0M01_QDP_LP6.1.118.01.001/.


Image File Description

The image directory contains the following main files:

Complete firmware:

  • update.img - Complete firmware package, used for full-package flashing

Bootloader and partitions:

  • MiniLoaderAll.bin - Loader boot file

  • uboot.img - U-Boot boot image

  • parameter.txt - Partition parameter file

System and partition images:

  • boot.img - Kernel image

  • rootfs.img - Root filesystem image

  • recovery.img - Recovery image

  • misc.img - Misc partition image

  • oem.img - OEM partition image

  • userdata.img - Userdata partition image

The actual file set depends on the output of the current build.