HOME
Shop
  • English
  • 简体中文
HOME
Shop
  • English
  • 简体中文
  • Product Series

    • FPGA+ARM

      • GM-3568JHF

        • Introduction

          • GM-3568JHF Introduction
        • Quick Start

          • Preface
          • Environment Setup
          • Compilation Notes
          • Flashing Guide
          • Debugging Tools
          • Software Update
          • Viewing System Information
          • Test Commands
          • Application Compilation
          • Source Code Access
        • Peripherals & Interfaces

          • USB
          • Display and Touch
          • Ethernet
          • WIFI
          • Bluetooth
          • TF-Card
          • Audio
          • Serial Port
          • CAN
          • RTC
        • Application Development

          • UART Read/Write Demo
          • Key Detection Demo
          • LED Blink Demo
          • MIPI Screen Detection Demo
          • Read USB Device Information Demo
          • FAN Detection Demo
          • FPGA FSPI Communication Demo
          • FPGA DMA Read/Write Demo
          • GPS Debugging Demo
          • Ethernet Test Demo
          • RS485 Read/Write Demo
          • FPGA I2C Read/Write Demo
          • PN532 NFC Card-Reading Demo
          • TF Card Read/Write Demo
        • QT Development

          • ARM64 Cross-Compiler Environment Setup
          • Adding a QT Program to Boot Auto-Start
        • RKNN_NPU Development

          • RK3568 NPU Overview
          • Development Environment Setup
          • Run the Official YOLOv5 Example
        • FPGA Development

          • ARM and FPGA Communication
          • FPGA Development Manual
        • Others

          • Modifying the Root Filesystem
          • System Auto-Start Services
        • Downloads

          • Downloads
      • MB-E30P

        • Introduction

          • MB-E30P Introduction
        • Quick Start

          • Preface
          • Environment Setup
          • Compilation Instructions
          • Flashing Guide
          • Debugging Tools
          • Software Update
          • Viewing Information
          • Test Commands
          • Application Compilation
          • Source Code Acquisition
        • Peripherals & Interfaces

          • USB
          • Display and Touch
          • Ethernet
          • WIFI
          • Bluetooth
          • TF-Card
          • Audio
          • RTC
        • Application Development

          • Key Detection Demo
          • LED Blink Demo
          • MIPI Screen Detection Demo
          • Read USB Device Information Demo
          • FAN Detection Demo
          • FPGA FSPI Communication Demo
          • FPGA DMA Read/Write Demo
          • Ethernet Test Demo
          • FPGA IIC Read/Write Demo
          • PN532 NFC Card Reading Demo
          • TF Card Read/Write Demo
        • QT Development

          • ARM64 Cross-Compiler Environment Setup
          • Adding a QT Program to the Boot Auto-Start Service
        • RKNN_NPU Development

          • RK3568 NPU Overview
          • Development Environment Setup
          • Run the Official YOLOv5 Example
          • Model Conversion In Detail
          • Run Custom Models on the Board
        • FPGA Development

          • ARM and FPGA Communication
          • FPGA Development Manual
        • Others

          • Modifying the Root Filesystem
          • System Auto-Start Service
        • Downloads

          • Downloads
    • ShimetaPi

      • M4-R1

        • Introduction

          • M4-R1 Introduction
        • Quick Start

          • OpenHarmony Overview
          • Image Burning
          • Application Development Quick Start
          • Device Development Quick Start
        • Application Development

          • ArkUI

            • ArkTS Language Overview
            • UI Components - Row Container Introduction
            • UI Components - Column Container Introduction
            • UI Components - Text Component
            • UI Components - Toggle Component
            • UI Components - Slider Component
            • UI Components - Animation Component & Transition Component
          • Documentation

            • OpenHarmony Official Materials
          • Development Notes

            • Full-SDK Replacement Tutorial
            • Introducing and Using Third-Party Libraries
            • HDC Debugging
            • Restore Factory Mode via Command Line
            • Upgrade App to System Permission
          • First App

            • Build Your First ArkTS Application - HelloWorld
          • Demos

            • Serial-Debug-Assistant Application Demo
            • Writing-Board Application Demo
            • Digital Clock Application Demo
            • Wi-Fi Information Acquisition Application Demo
        • Device Development

          • Ubuntu Development

            • Environment Setup
            • Download Source Code
            • Compile Source Code
          • DevEco Device Tool

            • Tool Introduction
            • Development Environment Construction
            • Import the SDK
            • HUAWEI DevEco Tool Function Introduction
        • Kernel Peripherals & Interfaces

          • Guide
          • Device Tree Introduction
          • NAPI Introduction
          • ArkTS Introduction
          • NAPI Development Hands-on Demo
          • GPIO Introduction
          • I2C Communication
          • SPI Communication
          • PWM Control
          • UART Communication
          • TF Card (MicroSD)
          • Screen (Display)
          • Touch
          • Ethernet
          • M.2 SSD
          • Audio
          • WIFI & BT
          • Camera
        • Downloads

          • Downloads
      • M5-R1

        • Introduction

          • M5-R1 Development Docs
        • Quick Start

          • Image Burning
          • Environment Setup
          • Download Source Code
        • Peripherals & Interfaces

          • Raspberry Pi Interfaces
          • GPIO Interface
          • I2C Interface
          • SPI Communication
          • PWM Control
          • Serial Port Communication
          • TF Card
          • Display
          • Touch
          • Audio
          • RTC
          • Ethernet
          • M.2
          • MINI-PCIE
          • Camera
          • WIFI & BT
        • Downloads

          • Downloads
      • Pico-G1

        • Product Overview

          • Product Introduction
          • SDK Version Information
        • Quick Start

          • Development Environment Setup
          • Image Build
          • Image Flashing
          • System Login
          • Network Configuration
          • File Transfer
          • SDK Directory Structure
          • Deploying Your First Application
          • Deploying Your First Driver
          • Mounting an SD Card
        • Peripherals & Interfaces

          • GPIO Control
          • UART Serial Communication
          • I2C Communication
          • SPI Communication
        • MPP Media Development

          • MPP Media Processing Software
          • Image Processing Chain
          • Video Input
          • Image Encoding
        • NPU & AI

          • NPU Driver and Runtime Library Architecture
          • .xmm Model Loading
          • SVP Video Processing
          • AI Noise Reduction (AI_NR)
        • Application Samples

          • Encryption/Decryption Application
          • ADC Acquisition Application
          • Low-Power Application
          • Audio Processing Application
          • Video Encoding Application
          • Video Input Application
          • Video Graphics Subsystem (VGS) Application
          • 08 Region Overlay Application
          • 09 Intelligent Video Engine Application
          • 10 UVC Webcam Application
          • 11 All-in-One Quickstart Application
          • 12 FPN Correction Application
          • 13 Regional Motion Detection Application
          • 14 MTCNN Face Detection Application
        • Expansion Board Peripheral Examples

          • 00 - Pico Expansion Board Peripheral Examples Overview
          • 01 - OLED Display Application
          • 02 - TFT Display Application
          • 03 - MPU6050 Gyroscope Application
          • 04 - ADC Acquisition Application
          • 05 - Passive Buzzer Application
          • 06 - MQ Gas Sensor Application
          • 07 - GPS Positioning Application
          • 08 - SHT20 Temperature & Humidity Application
          • 09 - Ultrasonic Ranging Application
          • 10 - SpO2 Sensor Application
          • 11 - DC Motor Control Application
          • 12 - Servo Control Application
    • OpenHarmony

      • SC-3568HA

        • Introduction

          • SC-3568HA Overview
        • Quick Start Guide

          • OpenHarmony Overview
          • Image Flashing
          • Setting Up the Development Environment
          • Hello World Application and Deployment
        • Application Development

          • ArkUI

            • Introduction to ArkTS Language
            • Introduction to UI Components and Practical Applications (Part 1)
            • Introduction to UI Components and Practical Applications (Part 2)
            • Introduction to UI Components and Practical Applications (Part 3)
          • Expand

            • Getting Started Guide
            • Referencing and Using Third-Party Libraries
            • Application Compilation and Deployment
            • Command-Line Factory Reset
            • System Debugging -- HDC Debugging
            • APP Stability Testing
            • Chapter 7 Application Testing
        • Device Development

          • Environment Setup
          • Download Source Code
          • Compiling Source Code
        • Peripheral And Interface

          • Raspberry Pi interface
          • GPIO Interface
          • I2C Interface
          • SPI communication
          • PWM (Pulse Width Modulation) control
          • Serial port communication
          • TF Card
          • Display Screen
          • Touch
          • Audio
          • RTC
          • Ethernet
          • M.2
          • MINI-PCIE
          • Camera
          • WIFI&BT
          • Raspberry Pi expansion board
        • Downloads

          • Downloads
      • M-K1HSE

        • Introduction

          • M-K1HSE Introduction
        • Quick Start

          • Development environment construction
          • Source code acquisition
          • Compilation Notes
          • Burning Guide
        • Application Development

          • Application Development Environment Setup
          • First Application - Hello World
        • Peripherals and interfaces

          • 01 Audio
          • 02 RS485
          • 03 Display
        • System customization development

          • System transplant
          • System customization
          • Driver Development
          • System Debugging
          • OTA Update
        • Downloads

          • Downloads
    • HVS Camera

      • Quick Start

        • SDK Overview
        • Downloads
        • Your First C++ Program
        • Python Data Analysis
        • MultiVision Studio
      • Development

        • Programming Guides

          • Open Camera
          • Read Events
          • Recording & Replay
          • Event Processing (Denoising)
          • Display & Visualization
          • Tuning
          • Capture APS Image
        • Toolkit SDK

          • Hybrid Vision Toolkit
          • Quick Start
          • C++ API
          • Python API
        • Algorithm

          • Hybrid Vision Algo
          • Hybrid Vision Algo API
          • Windows Algo SDK
        • Samples Overview
        • Applications
      • Fundamentals

        • Event Camera Fundamentals
        • HVS Hybrid Vision
        • Event Visualization
        • Data Formats Reference
        • Glossary
        • Bias & Tuning
        • Video Tutorials
      • USB Cameras

        • HVS Camera Quick Start
        • Networking Capabilities

          • HVS Camera System Architecture
          • EVS Network Server
          • EVS Time Sync
          • Web Window
        • HVS Camera Compatibility Matrix
        • FAQ & Troubleshooting Guide
        • Products

          • CF-NRS1 (Lingguang No.1 Hybrid Vision Camera)
      • MIPI Modules

        • MIPI Module Quick Start
        • Carrier Boards

          • RDK X5 Carrier Board Adaptation
          • Raspberry Pi Carrier Board Adaptation
          • Digua Pi Carrier Board Adaptation
          • ShimeTai Board Carrier Board Adaptation
        • MIPI Module Compatibility Matrix
        • Products

          • EVS_003 Sensor Module
    • AI-model

      • 1684XB-32T

        • Introduction

          • AIBOX-1684XB-32 Introduction
        • Quick Start

          • First Use
          • Network Configuration
          • Disk Usage
          • Memory Allocation
          • Fan Control Strategy
          • Firmware Upgrade
          • Cross Compilation
          • Model Quantization
        • Application Development

          • Development Overview

            • Sophgo SDK Development
            • Sophgo Demo Introduction
          • Large Language Models

            • Deploying Llama3 Example
            • Sophon LLM_api_server Development
            • Deploying MiniCPM-V-2_6
            • Qwen-2-5-VL Image and Video Recognition Demo
            • Qwen3-chat Demo
            • Qwen3-Qwen Agent-MCP Development
            • Qwen3-langchain-AI Agent
          • Deep Learning

            • ResNet (Image Classification)
            • LPRNet (License Plate Recognition)
            • SAM (General Image Segmentation Foundation Model)
            • YOLOv5 (Object Detection)
            • OpenPose (Human Keypoint Detection)
            • PP-OCR (Optical Character Recognition)
        • Downloads

          • Downloads
      • 1684X-416T

        • Introduction

          • AIBOX-1684X-416 Introduction
        • Demo Quick Guide

          • ShimeTai Intelligent Monitoring Demo Quick Usage Guide
      • RDK-X5

        • Introduction

          • RDK-X5 Hardware Introduction
        • Quick Start

          • RDK-X5 Quick Start
        • Application Development

          • AI Online Model Development

            • Experiment 01 - Access Volcengine Doubao AI
            • Experiment 02 - Image Analysis
            • Experiment 03 - Multimodal Visual Analysis & Localization
            • Experiment 04 - Multimodal Image-Text Comparison
            • Experiment 05 - Multimodal Document/Table Analysis
            • Experiment 06 - Camera-based AI Visual Analysis
          • Large Language Models

            • Experiment 01 - Speech Recognition
            • Experiment 02 - Voice Conversation
            • Experiment 03 - Multimodal Image Analysis - Voice
            • Experiment 04 - Multimodal Image Comparison - Voice
            • Experiment 05 - Multimodal Document Analysis - Voice
            • Experiment 06 - Multimodal Vision Application - Voice
          • ROS2 Basics

            • Experiment 01 - Environment Setup
            • Experiment 02 - Create & Build a Workspace Package
            • Experiment 03 - Run ROS2 Topic Communication Node
            • Experiment 04 - ROS2 Camera Application
          • 40-pin IO Development

            • Experiment 01 - GPIO Output (LED Blink)
            • Experiment 02 - GPIO Input
            • Experiment 03 - Button-controlled LED
            • Experiment 04 - PWM Output
            • Experiment 05 - Serial Output
            • Experiment 06 - I2C Experiment
            • Experiment 07 - SPI Experiment
          • USB Module Usage

            • Experiment 01 - USB Voice Module Usage
            • Experiment 02 - Sound Source Localization Module
          • Machine Vision Practice

            • Experiment 01 - Open USB Camera
            • Experiment 02 - Color Recognition
            • Experiment 03 - Gesture Recognition
            • Experiment 04 - YOLOv5 Object Detection
      • RDK-S100

        • Introduction

          • RDK-S100 Hardware Introduction
        • Quick Start

          • RDK-S100 Quick Start
        • Application Development

          • AI Online Model Development

            • Experiment 01 - Access Volcengine Doubao AI
            • Experiment 02 - Image Analysis
            • Experiment 03 - Multimodal Visual Analysis & Localization
            • Experiment 04 - Multimodal Image-Text Comparison
            • Experiment 05 - Multimodal Document/Table Analysis
            • Experiment 06 - Camera-based AI Visual Analysis
          • Large Language Models

            • Experiment 01 - Speech Recognition
            • Experiment 02 - Voice Conversation
            • Experiment 03 - Multimodal Image Analysis - Voice
            • Experiment 04 - Multimodal Image Comparison - Voice
            • Experiment 05 - Multimodal Document Analysis - Voice
            • Experiment 06 - Multimodal Vision Application - Voice
          • ROS2 Basics

            • Experiment 01 - Environment Setup
            • Experiment 02 - Create & Build a Workspace Package
            • Experiment 03 - Run ROS2 Topic Communication Node
            • Experiment 04 - ROS2 Camera Application
          • 40-pin IO Development

            • Experiment 01 - GPIO Output (LED Blink)
            • Experiment 02 - GPIO Input
            • Experiment 03 - Button-controlled LED
            • Experiment 04 - PWM Output
            • Experiment 05 - Serial Output
            • Experiment 06 - I2C Experiment
            • Experiment 07 - SPI Experiment
          • USB Module Usage

            • Experiment 01 - USB Voice Module Usage
            • Experiment 02 - Sound Source Localization Module
          • Machine Vision Practice

            • Experiment 01 - Open USB Camera
            • Experiment 02 - Image Processing Basics
            • Experiment 03 - Object Detection
            • Experiment 04 - Image Segmentation
      • RK1828

        • Introduction

          • M5-182X-A1 AI Edge Box - Product Introduction
          • M5-182X-A1 Hardware Specifications
          • M5-182X-A1 Usage & Safety
        • Quick Start

          • M5-182X-A1 Image Flashing
          • RK182X Hardware Installation & Verification
          • RK182X Development Environment Quick Setup
          • RK182X SDK Overview
          • RK182X Environment Setup in Detail
          • RK182X Quick Start
          • Vendor SDK Data Extraction Record
        • Development Guide

          • ClawChips Architecture and Principles
          • SKILL User Manual
          • RK182X Series LLM Inference (RK1828 Model)
          • RK182X Series CNN Inference (RK1828 Model)
          • Model Conversion
          • RK182X AI Agent Application Development Guide
          • RK182X Industrial Anomaly Detection Application
        • SDK Reference

          • RKNN3-SDK Overview

            • RKNN3 SDK Overview
          • RKNN3-Toolkit

            • RKNN3 Toolkit Installation and Usage
          • RKLLM

            • RKLLM On-Device LLM Inference
          • RK182X Series NPU Overview and Architecture (RK1828 Model)
          • RK182X INT8 Quantized Inference Deployment
          • RK182X MPP Multimedia Framework
          • MPP Details

            • RK182X Video Decoding
            • RK182X Video Encoding
          • NPU Details

            • RKNN Model Conversion
            • RK182X NPU INT8 Quantized Inference
            • RK182X Multi-Model Parallel Inference
          • RGA Details

            • RK182X RGA 2D Graphics Acceleration
          • VPU Details

            • RK182X VPU Codec
        • Hardware Reference

          • RK182X Series Hardware Architecture Overview (RK1828 Model)
          • RK182X Pin Definitions and Multiplexing Configuration
          • RK182X Pin Definitions
          • RK182X Power Management
          • RK182X Clock and PLL Configuration
          • RK182X Clock and Frequency Configuration
        • Tutorials

          • Hello World
          • Hello RK1828 - The First Program
          • RTSP Streaming
          • RTSP Streaming + AI Analysis
          • ShiMetaPi AI Lobster One-Click Deployment
          • PaddleOCR-VL Text Recognition
          • Qwen3-1.7B LLM Text Chat
          • AI Multi-View Inspection (Qwen3-VL Wrapper)
          • YOLOv5 Object Detection
        • Downloads

          • Downloads
        • FAQ

          • FAQ
    • Core-Board

      • C-3568BQ

        • Introduction

          • C-3568BQ Overview
      • C-3588LQ

        • Introduction

          • C-3588LQ Overview
      • GC-3568JBAF

        • Introduction

          • GC-3568JBAF Overview
      • C-K1BA

        • Introduction

          • C-K1BA Overview
    • Software Platform

      • ShiMetaPi Workbench

        • Introduction

          • Product Overview
          • Core Architecture
          • Feature Entries
          • Supported Hardware
          • Release Notes
        • Quick Start

          • Install & Login
          • Connect the Device
          • Set Up the Environment
          • Connect to AIHub
          • First Inference
        • User Guide

          • Workspace Overview
          • Device Manager
          • Model Market
          • One-Click Deploy
          • Vision — SVP
          • Vision - Custom Models
          • shimeta-py IDE
          • Terminal
          • Agent Debug Assistant
          • Settings and Resources
        • FAQ

          • Installation & Login
          • Device Connection
          • Models & Deployment
          • Vision & Runtime
          • Settings & Other
      • ShimetaPi Repository

        • Introduction

          • ShimetaPi Software Repository
        • Pico G1 (GK7206)

          • Quick Start

            • Installation & First Inference
            • shimeta_infer — Image Inference
            • shimeta_camera — Real-time Camera Inference
            • SVP Scene Detection
            • File Transfer & Built-in Model Reference
            • FAQ
          • HTTP API & Python SDK

            • HTTP API Reference
      • Model Fine-tuning Platform

        • Introduction

          • Model Training Platform
        • Quick Start

          • Register & Login
          • Create Your First Model (30-Minute Quick Experience)
        • Training Guide

          • Data Preparation & Annotation
          • Training Parameter Configuration
          • Start & Monitor Training
          • Model Evaluation & Testing
        • Model Deployment

          • Export Model
          • Deploy to Edge Device

Image Build

This chapter describes in detail how to configure the SDK and build the Boot, kernel, and root file system images. The SDK supports a one-click full build as well as building individual modules to suit different development and debugging needs.

Note

This SDK provides two build methods: the make tool and the run.sh script.

1. Building with the run.sh Script

The SDK root directory provides the run.sh one-click build script, which wraps common build, clean, and info-query operations for easier use. The script automatically loads the build environment, so you do not need to manually run source build/env.sh.

1.1 Basic Usage

./run.sh <command> [-j[N]]

Here -j[N] is an optional parallel build parameter; when N is omitted, all CPU cores are used automatically.

1.2 Configuration and Info Commands

lunch — Interactively select the board configuration

Use the interactive menu to select the board model and kernel version, and a cfg.mk configuration file is generated automatically:

./run.sh lunch

After execution, the following interactive menu appears:

  1. Select the board model (lists all available board configs under the configs/ directory)
  2. Select the kernel version (for example linux-5.10, linux-4.9, and the corresponding quickstart versions)

Tip

The lunch command replaces the manual make menuconfig chip-selection step. Use it for first-time builds or when switching the target platform.

check — Check the build environment

Checks whether the toolchain, commands, and other items required for the build are correctly installed, including bash, make, gcc, the cross-compilation toolchain, and fakeroot:

./run.sh check

info — Show current build information

Displays the configuration in the current cfg.mk, including chip model, chip architecture, kernel version, bootloader, toolchain, and Flash support:

./run.sh info

env — Show environment configuration

Displays current environment information such as the toolchain path:

./run.sh env

list — List available board configurations

Lists all available board configurations and kernel versions, and marks the one currently in use:

./run.sh list

1.3 Build Commands

CommandDescription
./run.sh ubootBuild the U-Boot bootloader
./run.sh kernelBuild the Linux kernel
./run.sh rootfsBuild the root file system
./run.sh driverBuild kernel drivers (GMP)
./run.sh sysdrvBuild uboot + kernel + rootfs
./run.sh osalBuild the OSAL adaptation layer
./run.sh mediaBuild the media libraries
./run.sh sampleBuild the MPP sample applications
./run.sh mcuBuild the MCU firmware
./run.sh allBuild all components

Note

./run.sh all first cleans all build artifacts and then rebuilds, equivalent to make clean && make build. For incremental builds, use sysdrv or build individual target modules.

1.4 Clean Commands

CommandDescription
./run.sh clean ubootClean U-Boot
./run.sh clean kernelClean the kernel
./run.sh clean rootfsClean rootfs
./run.sh clean driverClean the drivers
./run.sh clean sysdrvClean uboot/kernel/rootfs
./run.sh clean mediaClean the media libraries
./run.sh clean sampleClean the MPP sample applications
./run.sh clean osalClean the OSAL adaptation layer
./run.sh clean mcuClean the MCU firmware
./run.sh clean allClean all components

Note

./run.sh <target> clean and ./run.sh clean <target> are equivalent and both supported.

1.5 Parallel Build

All build and clean commands support the -j parameter for parallel building to speed up the build:

# Build in parallel using all CPU cores
./run.sh kernel -j

# Build in parallel using 4 threads
./run.sh kernel -j4

# Full build using all cores
./run.sh all -j

1.6 Usage Examples

Below is a sample complete first-time build flow:

# 1. First time: select the board configuration
./run.sh lunch

# 2. Check that the build environment is ready
./run.sh check

# 3. Confirm the current configuration
./run.sh info

# 4. Full build (use all cores)
./run.sh all -j

Incremental build examples for daily development:

# Only the kernel code was modified; rebuild the kernel
./run.sh kernel -j

# uboot and kernel were modified; build the system drivers
./run.sh sysdrv -j

# Build the MPP application samples
./run.sh sample -j

# Clean the kernel build results and rebuild
./run.sh clean kernel
./run.sh kernel -j

2. Building with the make Tool

2.1 Build Steps

Step 1: Configure environment variables.

Enter the SDK root directory and run the following command to load the build environment:

source build/env.sh

Step 2: Select the chip model

ShiMetaPi-Pico-G1 offers two chip models: GK7206V12A and GK7206V11A. The configuration steps are as follows:

tip

This setting persists until you re-select it; you do not need to configure it for every build.

  • Chip type selection

    make menuconfig

    Base --> Chip Type --> xm7206v12a --> Save and Exit

    Chip selection

    Note

    To select GK7206V11A, choose xm7206v11a.

  • DDR model selection

    Board --> Boot Regfile Config --> XM7206V12A_EVB_6L_DDR3_2133M_256M_1x16bit --> Save and Exit

    DDR selection

    Note

    • GK7206V11A input: XM7206V11A_EVB_6L_DDR3_2133M_128M_1x16bit
    • GK7206V12A input: XM7206V12A_EVB_6L_DDR3_2133M_256M_1x16bit

Step 3: Build configuration (optional).

If you need to modify the SDK default build configuration, configure it through menuconfig. See 3. menuconfig Configuration for details.

make menuconfig

Step 4: Build

After saving the configuration, you can run build or packaging commands from the SDK root directory to build or package, generating all required images (including uboot, kernel, and rootfs). The following uses a full build as an example:

make build -j

After the build completes, the system generates the corresponding images based on the target boot media (NAND / eMMC / SPI) and outputs them to the out/<board_name>/image directory, ready for use by flashing tools.

Note

A number can follow -j to enable multi-threaded parallel builds, e.g. make build -j16. Adjust this based on the CPU cores and memory size of your build server to speed up the build.

2.2 Other Common Build Commands

2.2.1 Full SDK build

Builds in sequence: uboot, kernel, rootfs, sample, and packages the images.

make build

2.2.2 Clean all SDK build artifacts

Deletes out/, temporary files, object files, and image files — equivalent to restoring the "unbuilt" state.

make clean

2.2.3 Build U-Boot only

If only source/uboot was modified, you can build U-Boot only. U-Boot is the first-stage bootloader after the board powers on.

make uboot

2.2.4 Clean U-Boot build results

make uboot_clean

2.2.5 Build the kernel only

If only kernel-related code, such as source/kernel, was modified, you can build the kernel only.

make linux

2.2.6 Clean kernel build results

make linux_clean

2.2.7 Build the sample code only

make sample

2.2.8 Clean sample build results

make sample_clean

3. menuconfig Configuration

3.1 Overview

menuconfig is a graphical terminal configuration tool based on the Kconfig configuration system. It centralizes the scattered configuration items in the SDK into a single interface, organizing a large number of build options — chip model, toolchain, kernel version, Flash type, file system type, and so on — into a hierarchical menu of text-based options for interactive selection.

In the GK7206 SDK, menuconfig is mainly used to generate and maintain the SDK's global configuration file cfg.mk. Developers run a configuration command to enter the menu, select the target chip, toolchain, kernel version, bootloader configuration, Flash type, and other options, then save to generate or update cfg.mk. The SDK top-level Makefile and build/base.mk include cfg.mk and use the CONFIG_ items in it to drive subsequent build behavior.

Configuration options have four possible states:

SymbolMeaning
[ ] or <>Do not compile
[*]Compile into the kernel
<M>Compile as a module (.ko)
<*>Compile into the kernel (forced)

Tip: Type / in this interface to enter the search interface.

3.2 Configuration Options

3.2.1 Top-Level Menu Structure

xmedia SDK Configuration
├── Base
├── Board
├── Bootloader System
└── Linux System

Base

The Base menu configures the SDK base platform information, including chip model, chip architecture, cross-compilation toolchain, log mode, and the QuickStart fast-boot switch.

Base
├── Chip Type
│   ├── xm7206v11a
│   │   └── Select the target chip xm7206v11a.
│   │
│   ├── xm7206v10
│   │   └── Select the target chip xm7206v10.
│   │
│   ├── xm7206v10b
│   │   └── Select the target chip xm7206v10b.
│   │
│   ├── xm7206v12a
│   │   └── Select the target chip xm7206v12a.
│   │
│   ├── xm7206v11
│   │   └── Select the target chip xm7206v11.
│   │
│   └── xm7206v11at
│       └── Select the target chip xm7206v11at.
│
├── Toolchains Config
│   ├── kernel toolchains
│   │   ├── arm-gcc12.2.0-linux
│   │   │   └── Select the ARM glibc toolchain for kernel builds.
│   │   │
│   │   ├── aarch64-gcc12.2.0-linux
│   │   │   └── Select the AArch64 64-bit toolchain for kernel builds.
│   │   │
│   │   └── arm-gcc12.2.0-linux-uclibceabi
│   │       └── Select the ARM uClibc toolchain for kernel builds.
│   │
│   └── usr 32bit toolchains
│       ├── arm-gcc12.2.0-linux
│       │   └── Select the ARM glibc toolchain for 32-bit user-space builds.
│       │
│       └── arm-gcc12.2.0-linux-uclibceabi
│           └── Select the ARM uClibc toolchain for 32-bit user-space builds.
│
├── SDK Log Mode
│   ├── log
│   │   └── Enable SDK log mode.
│   │       Adds log-related macros such as CONFIG_LOG_TRACE_SUPPORT=1 during the build.
│   │
│   └── nolog
│       └── Disable SDK log mode.
│           Suitable for release builds or scenarios that do not need debug logs.
│
└── Support QuickStart
    └── Whether to enable QuickStart fast-boot mode.
        When enabled, it affects bootstrap, qs_mcu, initrd, partition table, bootargs, and other boot-chain configuration.

3.2.2 Board

The Board menu configures board-level parameters.

Board
├── Flash Config
│   ├── Nand Flash support: Whether to enable overall NAND Flash support. When enabled, the NAND Flash device type selection appears.
│   │   │
│   │   └─── Nand Flash device support
│   │        ├──Nand Flash Support
│   │        │    └── Enable legacy parallel NAND Flash support.
│   │        │        This option affects the NAND partition table, NAND rootfs image, and NAND boot parameters.
│   │        │
│   │        └── Spi-Nand Flash Support
│   │             └── Enable SPI-NAND Flash support.
│   │                 This option affects the SPI-NAND partition table, rootfs image, and boot parameters.
│   │
│   ├── SPI Flash Support
│   │   └── Whether to enable SPI NOR Flash support.
│   │   │     Enabled by default.
│   │   │     When enabled, the corresponding SPI Flash image, partition, and boot parameters can be generated.
│   │   │
│   │   Block Size
│   │    └── SPI Flash block size configuration.
│   │        Only effective when SPI Flash Support is enabled.
│   │        Default value is 64k.
│   │
│   └── eMMC Flash Support
│       └── Whether to enable eMMC Flash support.
│           When enabled, you can choose to generate images suitable for eMMC such as ext4 rootfs.
│
└── Boot Regfile Config
    └── Boot Reg File
        └── Configure the register initialization file name used during the boot stage.
            Typically used for DDR, pinmux, or chip boot-stage register initialization.

3.2.3 Bootloader System

Bootloader System configures parameters related to the system bootloader, mainly the U-Boot version, U-Boot default configuration, environment variable storage area, and DDR Training support.

Bootloader System
├── Boot Type
│   └── uboot
│       └── Select U-Boot as the bootloader type.
│           The current project provides only uboot as the Boot Type.
│
├── U-boot Version
│   └── u-boot-2020.01
│       └── Select u-boot-2020.01 as the U-Boot version.
│           The current project provides only this version.
│
├── Boot Defconfig
│   └── Configure the U-Boot default defconfig file name.
│       For example, xxxxx_defconfig.
│       The corresponding file is located in the U-Boot source directory.
│
├── Environment Variables Partition Start Address
│   └── Configure the start address of the U-Boot environment variable partition.
│       Default value is 0x80000.
│       This address should be aligned with the block size of NAND, SPI-NAND, or SPI-NOR.
│
├── Environment Variables Image Size
│   └── Configure the U-Boot environment variable image size.
│       Default value is 0x40000.
│
├── DDR Training Command Support
│   └── Whether to enable DDR Training command support in the bootloader.
│       Enabled by default.
│       Used to test the DDR window or debug DDR stability.
│
└── APP Support
    └── Whether to enable bootloader-stage APP support.
        Enabled by default.
        This option is typically used to support additional applications or function modules at the boot stage.

3.2.4 Linux System

Linux System is the Linux system-level configuration entry, with three sub-menus underneath:

Linux System
├── Kernel
├── Filesystem
└── Tools
Linux System -> Kernel

The Kernel menu configures the Linux kernel version, SMP, the multimedia driver build mode, and InitRamdisk-related settings.

Linux System
└── Kernel
    ├── Kernel Version
    │   ├── linux-5.10.y
    │   │   └── Select Linux Kernel version 5.10.y.
    │   │       Current default.
    │   │
    │   └── linux-4.9.y
    │       └── Select Linux Kernel version 4.9.y.
    │
    │
    ├── Kernel SMP Support
    │   └── Whether to enable Linux Kernel SMP multi-core support.
    │       Enabled by default.
    │       When enabled, the multi-core kernel build path is used; otherwise, the single-core kernel build path is used.
    │
    ├── Kernel Defconfig
    │   └── Configure the Linux Kernel default defconfig file name.
    │       For example, xxxxx_defconfig.
    │       The corresponding config file is usually located in the kernel source directory:
    │       arch/arm/configs/
    │
    ├── Build GMP in Kernel
    │   └── Whether to build GMP-related drivers into the kernel as built-in.
    │       When selected, they are typically built as built-in;
    │       when not selected, they are typically generated as kernel modules.
    │
    └── InitRamdisk Config
        └── Toybox Config File For InitRamdisk
            └── Configure the Toybox configuration file name used by the InitRamdisk.
                Default value is toybox-0.8.8.
                The corresponding config file is usually located in the toybox source config directory.
Linux System -> Filesystem

The Filesystem menu configures the root file system, BusyBox, the C++ runtime library, strip behavior, and the rootfs image format.

Linux System
└── Filesystem
    ├── Busybox Config File For Root
    │   └── Configure the BusyBox config file name used in the RootFS.
    │       Default value is busybox-1_26_2.
    │       The corresponding config file is usually located in the BusyBox source config directory.
    │
    ├── C++ Runtime Libarary Support
    │   └── Whether to support the C++ runtime library in the RootFS.
    │       Enabled by default.
    │       If your user programs depend on libstdc++ or other C++ runtime libraries, enable this.
    │
    ├── Enable Strip
    │   └── Whether to strip executables and libraries in the root file system.
    │       Enabled by default.
    │       When enabled, it reduces rootfs size but removes debug symbols;
    │       if you need to debug with gdb, disable it.
    │
    ├── Create Yaffs Rootfs Image
    │   └── Whether to generate a YAFFS rootfs image.
    │       Only effective when Nand Flash Support or Spi-Nand Flash Support is enabled.
    │
    ├── Create Jffs2 Rootfs Image
    │   └── Whether to generate a JFFS2 rootfs image.
    │       Only effective when SPI Flash Support is enabled.
    │
    ├── Create Squashfs Rootfs Image
    │   └── Whether to generate a SquashFS rootfs image.
    │       SquashFS is a read-only compressed file system, suitable for size-sensitive firmware scenarios.
    │
    ├── Create ext4 Rootfs Image
    │   └── Whether to generate an ext4 rootfs image.
    │       Only effective when eMMC Flash Support is enabled.
    │
    ├── eMMC Rootfs Size
    │   └── Configure the eMMC rootfs image size.
    │       Only effective when Create ext4 Rootfs Image is enabled.
    │       Default unit is MB; default value is 32.
    │
    ├── Create Ubi Rootfs Image
    │   └── Whether to generate a UBI rootfs image.
    │       Only effective when Nand Flash Support or Spi-Nand Flash Support is enabled.
    │
    └── UBI Rootfs Size
        └── Configure the UBI rootfs partition size.
            Only effective when Create Ubi Rootfs Image is enabled.
            Default value is 64M.
Linux System -> Tools

The Tools menu configures whether to add common system tools, debug tools, and file system tools to the rootfs or SDK build.

Linux System
└── Tools
    ├── Udev Support
    │   └── Whether to enable udev support.
    │       udev is used for Linux user-space device node management.
    │
    ├── Fat32 fsck Support
    │   └── Whether to add FAT32 file system check tools.
    │       Used to detect or repair FAT/FAT32 file systems.
    │
    ├── Ext3/Ext4 format Support
    │   └── Whether to add ext3/ext4 file system formatting tools.
    │       Suitable for formatting block-device file systems such as eMMC and SD cards.
    │
    ├── GDB Support
    │   └── Whether to add GDB debug support.
    │       Note: This option requires you to provide the GDB source package yourself;
    │       if the source package is missing, enabling this may cause the build to fail.
    │
    ├── Ubi/Jffs2 format Support
    │   └── Whether to add UBI/JFFS2-related formatting and management tools.
    │       Commonly used in NAND or SPI-NAND Flash scenarios.
    │
    ├── Read/Write Registers Support
    │   └── Whether to add register read/write tools.
    │       Used for low-level debugging and viewing or modifying hardware registers.
    │
    ├── Mii ethphy Support
    │   └── Whether to add MII/Ethernet PHY debug tools.
    │       Used to view or configure Ethernet PHY registers.
    │
    └── CAN Tools Support
        └── Whether to add CAN-bus-related tools.
            Used for CAN interface debugging and send/receive tests.
Edit this page on GitHub
Prev
Development Environment Setup
Next
Image Flashing