首页
商城
  • English
  • 简体中文
首页
商城
  • English
  • 简体中文
  • 产品系列

    • FPGA+ARM

      • GM-3568JHF

        • 一、简介

          • GM-3568JHF 简介
        • 二、快速开始

          • 00 前言
          • 01 环境搭建
          • 02 编译说明
          • 03 烧录指南
          • 04 调试工具
          • 05 软件更新
          • 06 查看信息
          • 07 测试命令
          • 08 应用编译
          • 09 源码获取
        • 三、外设与接口

          • 01 USB
          • 02 显示与触摸
          • 03 以太网
          • 04 WIFI
          • 05 蓝牙
          • 06 TF-Card
          • 07 音频
          • 08 串口
          • 09 CAN
          • 10 RTC
        • 四、应用开发

          • 01 UART读写案例
          • 02 按键检测案例
          • 03 LED灯闪烁案例
          • 04 MIPI屏幕检测案例
          • 05 读取 USB 设备信息案例
          • 06 FAN 检测案例
          • 07 FPGA FSPI 通信案例
          • 08 FPGA DMA 读写案例
          • 09 GPS调试案例
          • 10 以太网测试案例
          • 11 RS485读写案例
          • 12 FPGA IIC 读写案例
          • 13 PN532 NFC读卡案例
          • 14 TF卡读写案例
        • 五、QT开发

          • 01 ARM64交叉编译器环境搭建
          • 02 QT 程序加入开机自启服务
        • 六、RKNN_NPU开发

          • 01 RK3568 NPU 概述
          • 02 开发环境搭建
          • 运行官方 YOLOv5 示例
        • 七、FPGA开发

          • ARM与FPGA通讯
          • FPGA开发手册
        • 八、其他

          • 01 根目录文件系统的修改
          • 02 系统自启服务
        • 九、资料下载

          • 资料下载
    • ShimetaPi

      • M4-R1

        • 一、简介

          • M4-R1简介
        • 二、快速上手

          • 01 OpenHarmony概述
          • 02 镜像烧录
          • 03 应用开发快速上手
          • 04 设备开发快速上手
        • 三、应用开发

          • 01 ArkUI

            • 1 ArkTS语言简介
            • 2 UI 组件-Row 容器介绍
            • 3 UI 组件-Column 容器介绍
            • 4 UI 组件-Text 组件
            • 5 UI 组件-Toggle 组件
            • 6 UI 组件-Slider 组件
            • 7 UI 组件-Animation 组件&Transition 组件
          • 02 资料获取

            • 1 OpenHarmony 官方资料
          • 03 开发须知

            • 1 Full-SDK替换教程
            • 2 引入和使用三方库
            • 3 HDC调试
            • 4 命令行恢复出厂模式
            • 5 升级App为system权限
          • 04 构建第一个应用

            • 1 构建第一个ArkTs应用-HelloWorld
          • 05 案例

            • 01 串口调试助手应用案例
            • 02 手写板应用案例
            • 03 数字时钟应用案例
            • 04 WIFI 信息获取应用案例
        • 四、设备开发

          • 1 Ubuntu环境开发

            • 01 环境搭建
            • 02 下载源码
            • 03 编译源码
          • 2 使用DevEco Device Tool 工具

            • 01 工具简介
            • 02 开发环境的搭建
            • 03 导入SDK
            • 04 HUAWEI DevEco Tool 功能介绍
        • 五、内核外设与接口

          • 01 指南
          • 02 设备树介绍
          • 03 NAPI 入门
          • 04 ArkTS入门
          • 05 NAPI开发实战演示
          • 06 GPIO介绍
          • 07 I2C通讯
          • 08 SPI通信
          • 09 PWM 控制
          • 10 串口通讯
          • 11 TF卡
          • 12 屏幕
          • 13 触摸
          • 14 Ethernet(以太网)
          • 15 M.2 硬盘
          • 16 音频
          • 17 WIFI & BT
          • 18 摄像头
        • 六、资料下载

          • 资料下载
      • M5-R1

        • 一、简介

          • M5-R1 开发文档
        • 二、快速上手

          • 镜像烧录
          • 环境搭建
          • 下载源码
        • 三、外设与接口

          • 树莓派接口
          • GPIO 接口
          • I2C 接口
          • SPI通信
          • PWM控制
          • 串口通讯
          • TF Card
          • 屏幕
          • 触摸
          • 音频
          • RTC
          • Ethernet
          • M.2
          • MINI-PCIE
          • Camera
          • WIFI&BT
        • 四、资料下载

          • 资料下载
      • Pico-G1

        • 一、产品概述

          • 01 芯片与硬件平台介绍
          • 02 SDK版本说明
        • 二、快速入门

          • 01 开发环境搭建
          • 02 镜像编译
          • 03 镜像烧录
          • 04 系统登录
          • 05 网络配置
          • 06 文件传输
          • 07 SDK目录结构
          • 08 部署第一个应用程序
          • 09 部署第一个驱动程序
          • 10 SD卡挂载
        • 三、外设与接口

          • 01 GPIO控制
          • 02 UART串口通信
          • 03 I2C 通信
          • 04 SPI 通信
        • 四、MPP媒体开发

          • 01 MPP媒体处理软件
          • 02 图像处理链路
          • 03 视频输入
          • 04 图像编码
        • 五、NPU与AI

          • 01 NPU驱动与运行库架构
          • 02 .xmm 模型加载
          • 03 SVP视频处理
          • 04 AI降噪 (AI_NR)
        • 六、应用程序示例

          • 01 区域运动检测应用
          • 02 MTCNN 人脸检测应用
    • 开源鸿蒙

      • SC-3568HA

        • 一、简介

          • SC-3568HA简介
        • 二、快速上手

          • OpenHarmony概述
          • 镜像烧录
          • 开发环境准备
          • Hello World应用以及部署
        • 三、应用开发

          • ArkUI

            • 第一章 ArkTS语言简介
            • 第二章 UI组件介绍和实际应用(上)
            • 第三章 UI组件介绍和实际应用(中)
            • 第四章 UI组件介绍和实际应用(下)
          • 拓展

            • 第一章 入门指引
            • 第二章 三方库的引用和使用
            • 第三章 应用编译以及部署
            • 第四章 命令行恢复出厂设置
            • 第五章 系统调试--HDC调试
            • 第六章 APP 稳定性测试
            • 第七章 应用测试
        • 四、设备开发

          • 第一章 环境搭建
          • 第二章 下载源码
          • 第三章 编译源码
        • 五、内核的外设与接口

          • 树莓派接口
          • GPIO 接口
          • I2C 接口
          • SPI通信
          • PWM控制
          • 串口通讯
          • TF Card
          • 屏幕
          • 触摸
          • 音频
          • RTC
          • Ethernet
          • M.2
          • MINI-PCIE
          • Camera
          • WIFI&BT
          • 树莓派拓展板
        • 六、资料下载

          • 资料下载
      • M-K1HSE

        • 一、简介

          • M-K1HSE 简介
        • 二、快速开始

          • 开发环境搭建
          • 源码获取
          • 编译说明
          • 烧录指南
        • 三、应用开发

          • 00 应用开发环境搭建
          • 01 第一个应用-Hello World
        • 四、外设与接口

          • 01 Audio
          • 02 RS485
          • 03 Display
        • 五、系统定制开发

          • 系统移植
          • 系统定制
          • 驱动开发
          • 系统调试
          • OTA升级
        • 六、资料下载

          • 资料下载
    • EVS相机

      • CF-NRS1

        • 一、简介

          • 01-产品介绍
          • 02-相关概念
          • 03-MultiVision Studio 介绍
        • 二、开发

          • 01-ShiMetaPi Hybrid vision SDK 介绍
          • 02-Hybrid_vision_toolkit
          • 03-Hybrid_vision_toolkit API (C++)
          • 04 Hybrid Vision algo
          • 05 Hybrid vision algo API
          • 06 EVS Network Server
          • 07 EVS Time Sync
          • 08 Web Window
        • 三、资料下载

          • 资料下载
        • 四、常见问题

          • 常见问题解决指南
      • CF-CRA2

        • 一、简介

          • CF-NRS2 简介
        • 二、资料下载

          • 资料下载
      • EVS模块

        • 一、相关概念
        • 二、硬件准备与环境配置
        • 三、示例程序使用指南
        • 资料下载
    • AI硬件

      • 1684XB-32T

        • 一、简介

          • AIBOX-1684XB-32简介
        • 二、快速上手

          • 初次使用
          • 网络配置
          • 磁盘使用
          • 内存分配
          • 风扇策略
          • 固件升级
          • 交叉编译
          • 模型量化
        • 三、应用开发

          • 开发简介

            • Sophgo SDK开发
            • SOPHON-DEMO简介
          • 大语言模型

            • 部署Llama3示例
            • Sophon LLM_api_server开发
            • 部署MiniCPM-V-2_6
            • Qwen-2-5-VL图片视频识别DEMO
            • Qwen3-chat-DEMO
            • Qwen3-Qwen Agent-MCP开发
            • Qwen3-langchain-AI Agent
          • 深度学习

            • ResNet(图像分类)
            • LPRNet(车牌识别)
            • SAM(通用图像分割基础模型)
            • YOLOv5(目标检测)
            • OpenPose(人体关键点检测)
            • PP-OCR(光学字符识别)
        • 四、资料下载

          • 资料下载
      • 1684X-416T

        • 简介

          • AIBOX-1684X-416简介
        • Demo简单操作指引

          • shimeta智慧监控demo的简单使用说明
      • RDK-X5

        • 简介

          • RDK-X5 硬件简介
        • 快速开始

          • RDK-X5 快速开始
        • 应用开发

          • AI在线模型开发

            • 实验01-接入火山引擎豆包 AI
            • 实验02-图片分析
            • 实验03-多模态视觉分析定位
            • 实验04-多模态图文比较分析
            • 实验05-多模态文档表格分析
            • 实验06-摄像头运用-AI视觉分析
          • 大语言模型

            • 实验01-语音识别
            • 实验02-语音对话
            • 实验03-多模态图片分析-语音对话
            • 实验04-多模态图片比较-语音对话
            • 实验05-多模态文档分析-语音对话
            • 实验06-多模态视觉运用-语音对话
          • ROS2基础开发

            • 实验01-搭建环境
            • 实验02-工作包的创建及编译
            • 实验03-运行 ROS2 话题通信节点
            • 实验04-ROS2 相机应用
          • 40pin-IO开发

            • 实验01-GPIO 输出(LED闪烁)
            • 实验02-GPIO 输入
            • 实验03-按键控制 LED
            • 实验04-PWM 输出
            • 实验05-串口输出
            • 实验06-IIC 实验
            • 实验07-SPI 实验
          • USB模块开发使用

            • 实验01-USB 语音模块使用
            • 实验02-声源定位模块使用
          • 机器视觉技术实战

            • 实验01-打开 USB 摄像头
            • 实验02-颜色识别检测
            • 实验03-手势识别体验
            • 实验04-YOLOv5物体检测
      • RDK-S100

        • 简介

          • RDK-S100 硬件简介
        • 快速开始

          • RDK-S100 硬件简介
        • 应用开发

          • AI在线模型开发

            • 实验01-接入火山引擎豆包 AI
            • 实验02-图片分析
            • 实验03-多模态视觉分析定位
            • 实验04-多模态图文比较分析
            • 实验05-多模态文档表格分析
            • 实验06-摄像头运用-AI视觉分析
          • 大语言模型

            • 实验01-语音识别
            • 实验02-语音对话
            • 实验03-多模态图片分析-语音对话
            • 实验04-多模态图片比较-语音对话
            • 实验05-多模态文档分析-语音对话
            • 实验06-多模态视觉运用-语音对话
          • ROS2基础开发

            • 实验01-搭建环境
            • 实验02-工作包的创建及编译
            • 实验03-运行 ROS2 话题通信节点
            • 实验04-ROS2 相机应用
          • 40pin-IO开发

            • 实验01-GPIO 输出(LED闪烁)
            • 实验02-GPIO 输入
            • 实验03-按键控制 LED
            • 实验04-PWM 输出
            • 实验05-串口输出
            • 实验06-IIC 实验
            • 实验07-SPI 实验
          • USB模块开发使用

            • 实验01-USB 语音模块使用
            • 实验02-声源定位模块使用
          • 机器视觉技术实战

            • 实验01-打开 USB 摄像头
            • 实验02-图像处理基础
            • 实验03-目标检测
            • 实验04-图像分割
    • 核心板

      • C-3568BQ

        • 简介

          • C-3568BQ 简介
      • C-3588LQ

        • 简介

          • C-3588LQ 简介
      • GC-3568JBAF

        • 简介

          • GC-3568JBAF 简介
      • C-K1BA

        • 简介

          • C-K1BA 简介

02 镜像编译

本章节详细介绍如何配置SDK、编译Boot、内核以及根文件系统镜像。SDK支持一键整体编译,也支持单独模块的独立编译,以适应不同的开发调试需求。

说明

本SDK提供make工具和run.sh脚本两种编译方式

1. 基础编译步骤

步骤1:配置环境变量。

进入SDK根目录,执行以下命令加载编译环境:

source build/env.sh

步骤2:选择芯片型号

ShiMeta-Pico-G1提供GK7206V12A和GK7206V11A两种芯片型号选择,具体配置步骤如下:

tip

此配置项在重新选择之前一直生效,无需每次编译时都进行配置

  • 芯片类型选择

    make menuconfig

    Base-->Chip Type-->xm7206v12a-->保存退出

    芯片选型

    说明

    如需选择GK7206V11A请选择xm7206v11a

  • DDR型号选择

    Board-->Boot Regfile Config-->XM7206V12A_EVB_6L_DDR3_2133M_256M_1x16bit-->保存退出

    DDR选型

    说明

    • GK7206V11A 输入:XM7206V11A_EVB_6L_DDR3_2133M_128M_1x16bit
    • GK7206V12A 输入:XM7206V12A_EVB_6L_DDR3_2133M_256M_1x16bit

步骤3:编写配置(可选)。

如果需要修改SDK的默认编译配置,可通过 menuconfig 进行配置,具体参考3. menuconfig配置

make menuconfig

步骤4:编译

配置保存后,可在SDK根目录下使用编译或打包指令进行编译或打包操作,生成所有需要的镜像(包括uboot、kernel、rootfs),以下以整体编译为例:

make build -j

编译完成后,系统会根据目标启动介质(NAND / eMMC / SPI)自动生成对应的镜像,并统一输出到 out/<board_name>/image 目录下,供烧录工具直接使用。

说明

-j 参数后可跟数字以启动多线程并行编译,如 make build -j16,可根据编译服务器的CPU核心数和内存大小进行调整,以加快编译速度。

2. 其他常见编译指令

2.1 完整编译整个SDK

会依次编译:uboot、kernel、rootfs、sample、打包镜像

make build

2.2 清理整个 SDK 编译产物

会删除:out/、临时文件、object 文件、镜像文件、相当于恢复到“未编译”状态

make clean

2.3 仅编译U-Boot

若只修改了source/uboot,可只编译U-Boot,U-Boot 是板子上电后的第一阶段 bootloader

make uboot

2.4 清除U-Boot编译结果

make uboot_clean

2.5 仅编译内核

若只修改了内核相关,如source/kernel,可只编译内核

make linux

2.6 清除内核编译结果

make linux_clean

2.7 仅编译sample示例代码

make sample

2.8 清除sample编译结果

make sample_clean

3. menuconfig 配置

3.1 功能说明

menuconfig 是一种基于 Kconfig 配置体系的图形化终端配置工具,将 SDK 中分散的配置项集中到一个统一界面中管理,通过文本菜单界面的方式,将大量编译选项、芯片型号、工具链、内核版本、Flash 类型、文件系统类型等配置项组织成分级菜单,供开发者交互式选择。

在 GK7206 SDK 中,menuconfig 主要用于生成和维护 SDK 的全局配置文件 cfg.mk。开发者通过执行配置命令进入菜单界面,选择目标芯片、工具链、内核版本、Bootloader 配置、 Flash 类型等选项,保存后生成或更新 cfg.mk,SDK 顶层 Makefile 和 build/base.mk 会包含 cfg.mk,并根据其中的 CONFIG_ 配置项决定后续构建行为。

配置选项包含以下4种状态:

符号含义
[ ] 或 <>不编译
[*]编译进内核
<M>编译为模块(.ko)
<*>编译进内核(强制)

Tip: 在该界面下输入/可以进入搜索界面

3.2 配置选项

顶层菜单结构

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

Base

Base 菜单用于配置 SDK 的基础平台信息,包括芯片型号、芯片架构、交叉编译工具链、日志模式以及 QuickStart 快速启动开关。

Base
├── Chip Type
│   ├── xm7206v11a
│   │   └── 选择目标芯片为 xm7206v11a。
│   │
│   ├── xm7206v10
│   │   └── 选择目标芯片为 xm7206v10。
│   │
│   ├── xm7206v10b
│   │   └── 选择目标芯片为 xm7206v10b。
│   │
│   ├── xm7206v12a
│   │   └── 选择目标芯片为 xm7206v12a。
│   │
│   ├── xm7206v11
│   │   └── 选择目标芯片为 xm7206v11。
│   │
│   └── xm7206v11at
│       └── 选择目标芯片为 xm7206v11at。
│
├── Toolchains Config
│   ├── kernel toolchains
│   │   ├── arm-gcc12.2.0-linux
│   │   │   └── 选择 ARM glibc 工具链用于内核编译。
│   │   │
│   │   ├── aarch64-gcc12.2.0-linux
│   │   │   └── 选择 AArch64 64 位工具链用于内核编译。
│   │   │
│   │   └── arm-gcc12.2.0-linux-uclibceabi
│   │       └── 选择 ARM uClibc 工具链用于内核编译。
│   │
│   └── usr 32bit toolchains
│       ├── arm-gcc12.2.0-linux
│       │   └── 选择 ARM glibc 工具链用于用户态 32 位程序编译。
│       │
│       └── arm-gcc12.2.0-linux-uclibceabi
│           └── 选择 ARM uClibc 工具链用于用户态 32 位程序编译。
│
├── SDK Log Mode
│   ├── log
│   │   └── 启用 SDK 日志模式。
│   │       编译时会增加 CONFIG_LOG_TRACE_SUPPORT=1 等日志相关宏。
│   │
│   └── nolog
│       └── 关闭 SDK 日志模式。
│           适合发布版本或不需要调试日志的场景。
│
└── Support QuickStart
    └── 是否启用 QuickStart 快速启动模式。
        启用后会影响 bootstrap、qs_mcu、initrd、分区表和 bootargs 等启动链路配置。

Board

Board 菜单用于配置板级相关参数。

Board
├── Flash Config
│   ├── Nand Flash support:是否启用 NAND Flash 总体支持。开启后才会显示 NAND Flash 设备类型选择。
│   │   │
│   │   └─── Nand Flash device support
│   │        ├──Nand Flash Support
│   │        │    └── 启用传统并行 NAND Flash 支持。
│   │        │        该选项会影响 NAND 分区表、NAND rootfs 镜像和 NAND 启动参数。
│   │        │
│   │        └── Spi-Nand Flash Support
│   │             └── 启用 SPI-NAND Flash 支持。
│   │                 该选项会影响 SPI-NAND 分区表、rootfs 镜像和启动参数。
│   │
│   ├── SPI Flash Support
│   │   └── 是否启用 SPI NOR Flash 支持。
│   │   │     默认开启。
│   │   │     开启后可生成 SPI Flash 对应的镜像、分区和启动参数。
│   │   │
│   │   Block Size
│   │    └── SPI Flash 块大小配置。
│   │        仅在 SPI Flash Support 开启时有效。
│   │        默认值为 64k。
│   │
│   └── eMMC Flash Support
│       └── 是否启用 eMMC Flash 支持。
│           开启后可选择生成 ext4 rootfs 等适用于 eMMC 的镜像。
│
└── Boot Regfile Config
    └── Boot Reg File
        └── 配置 Boot 阶段使用的寄存器初始化文件名。
            通常用于 DDR、Pinmux 或芯片启动阶段寄存器初始化。

Bootloader System

Bootloader System 用于配置系统启动加载程序相关参数,主要是 U-Boot 版本、U-Boot 默认配置、环境变量存储区域和 DDR Training 支持等。

Bootloader System
├── Boot Type
│   └── uboot
│       └── 选择启动加载程序类型为 U-Boot。
│           当前工程中只提供 uboot 这一种 Boot Type。
│
├── U-boot Version
│   └── u-boot-2020.01
│       └── 选择 U-Boot 版本为 u-boot-2020.01。
│           当前工程中只提供该版本。
│
├── Boot Defconfig
│   └── 配置 U-Boot 默认 defconfig 文件名。
│       例如 xxxxx_defconfig。
│       对应文件位于 U-Boot 源码目录下。
│
├── Environment Variables Partition Start Address
│   └── 配置 U-Boot 环境变量分区的起始地址。
│       默认值为 0x80000。
│       该地址应与 NAND、SPI-NAND 或 SPI-NOR 的块大小对齐。
│
├── Environment Variables Image Size
│   └── 配置 U-Boot 环境变量镜像大小。
│       默认值为 0x40000。
│
├── DDR Training Command Support
│   └── 是否在 Bootloader 中启用 DDR Training 命令支持。
│       默认开启。
│       用于测试 DDR 窗口或调试 DDR 稳定性。
│
└── APP Support
    └── 是否启用 Bootloader 阶段的 APP 支持。
        默认开启。
        该选项通常用于支持启动阶段额外的应用或功能模块。

Linux System

Linux System 是 Linux 系统级配置入口,下面分为三个子菜单:

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

Kernel 菜单用于配置 Linux 内核版本、SMP、多媒体驱动编译方式以及 InitRamdisk 相关配置。

Linux System
└── Kernel
    ├── Kernel Version
    │   ├── linux-5.10.y
    │   │   └── 选择 Linux Kernel 版本为 5.10.y。
    │   │       当前默认值。
    │   │
    │   └── linux-4.9.y
    │       └── 选择 Linux Kernel 版本为 4.9.y。
    │
    │
    ├── Kernel SMP Support
    │   └── 是否启用 Linux Kernel SMP 多核支持。
    │       默认开启。
    │       开启后使用多核内核构建路径,关闭后使用单核内核构建路径。
    │
    ├── Kernel Defconfig
    │   └── 配置 Linux Kernel 默认 defconfig 文件名。
    │       例如 xxxxx_defconfig。
    │       对应配置文件一般位于内核源码目录:
    │       arch/arm/configs/
    │
    ├── Build GMP in Kernel
    │   └── 是否将 GMP 相关驱动以内建方式编译进内核。
    │       选中时通常编译为 built-in;
    │       未选中时通常以 kernel module 方式生成。
    │
    └── InitRamdisk Config
        └── Toybox Config File For InitRamdisk
            └── 配置 InitRamdisk 使用的 Toybox 配置文件名。
                默认值为 toybox-0.8.8。
                对应配置文件通常位于 toybox 源码配置目录。
Linux System -> Filesystem

Filesystem 菜单用于配置根文件系统、BusyBox、C++ 运行库、strip 行为以及 rootfs 镜像格式。

Linux System
└── Filesystem
    ├── Busybox Config File For Root
    │   └── 配置 RootFS 中 BusyBox 使用的配置文件名。
    │       默认值为 busybox-1_26_2。
    │       对应配置文件通常位于 BusyBox 源码配置目录。
    │
    ├── C++ Runtime Libarary Support
    │   └── 是否在 RootFS 中支持 C++ 运行库。
    │       默认开启。
    │       如果用户程序依赖 libstdc++ 等 C++ 运行库,需要开启该项。
    │
    ├── Enable Strip
    │   └── 是否对根文件系统中的可执行文件和库进行 strip。
    │       默认开启。
    │       开启后会减小 rootfs 体积,但会去除调试符号;
    │       如果需要使用 gdb 调试,建议关闭。
    │
    ├── Create Yaffs Rootfs Image
    │   └── 是否生成 YAFFS 格式 rootfs 镜像。
    │       仅在启用 Nand Flash Support 或 Spi-Nand Flash Support 时有效。
    │
    ├── Create Jffs2 Rootfs Image
    │   └── 是否生成 JFFS2 格式 rootfs 镜像。
    │       仅在启用 SPI Flash Support 时有效。
    │
    ├── Create Squashfs Rootfs Image
    │   └── 是否生成 SquashFS 格式 rootfs 镜像。
    │       SquashFS 是只读压缩文件系统,适合对体积敏感的固件场景。
    │
    ├── Create ext4 Rootfs Image
    │   └── 是否生成 ext4 格式 rootfs 镜像。
    │       仅在启用 eMMC Flash Support 时有效。
    │
    ├── eMMC Rootfs Size
    │   └── 配置 eMMC rootfs 镜像大小。
    │       仅在 Create ext4 Rootfs Image 开启时有效。
    │       默认单位为 MB,默认值为 32。
    │
    ├── Create Ubi Rootfs Image
    │   └── 是否生成 UBI 格式 rootfs 镜像。
    │       仅在启用 Nand Flash Support 或 Spi-Nand Flash Support 时有效。
    │
    └── UBI Rootfs Size
        └── 配置 UBI rootfs 分区大小。
            仅在 Create Ubi Rootfs Image 开启时有效。
            默认值为 64M。
Linux System -> Tools

Tools 菜单用于配置是否在 rootfs 或 SDK 构建中加入常用系统工具、调试工具和文件系统工具。

Linux System
└── Tools
    ├── Udev Support
    │   └── 是否启用 udev 支持。
    │       udev 用于 Linux 用户态设备节点管理。
    │
    ├── Fat32 fsck Support
    │   └── 是否加入 FAT32 文件系统检查工具。
    │       用于检测或修复 FAT/FAT32 文件系统。
    │
    ├── Ext3/Ext4 format Support
    │   └── 是否加入 ext3/ext4 文件系统格式化工具。
    │       适用于 eMMC、SD 卡等块设备文件系统格式化场景。
    │
    ├── GDB Support
    │   └── 是否加入 GDB 调试支持。
    │       注意:该选项需要用户自行准备 GDB 源码包;
    │       如果源码包不存在,开启该项可能导致编译失败。
    │
    ├── Ubi/Jffs2 format Support
    │   └── 是否加入 UBI/JFFS2 相关格式化和管理工具。
    │       常用于 NAND 或 SPI-NAND Flash 场景。
    │
    ├── Read/Write Registers Support
    │   └── 是否加入寄存器读写工具。
    │       用于底层调试、硬件寄存器查看和修改。
    │
    ├── Mii ethphy Support
    │   └── 是否加入 MII/以太网 PHY 调试工具。
    │       用于查看或配置以太网 PHY 寄存器。
    │
    └── CAN Tools Support
        └── 是否加入 CAN 总线相关工具。
            用于 CAN 接口调试、收发测试等场景。

4. 使用 run.sh 脚本编译

SDK 根目录下提供了 run.sh 一键编译脚本,封装了常用的编译、清理和信息查询操作,使用更加简便。该脚本无需手动执行 source build/env.sh,内部已自动加载编译环境。

4.1 基本用法

./run.sh <命令> [-j[N]]

其中 -j[N] 为可选的并行编译参数,省略 N 时自动使用全部 CPU 核心。

4.2 配置与信息命令

lunch — 交互式选择开发板配置

通过交互式菜单选择开发板型号和内核版本,自动生成 cfg.mk 配置文件:

./run.sh lunch

执行后会出现如下交互菜单:

  1. 选择开发板型号(列出 configs/ 目录下所有可用的板级配置)
  2. 选择内核版本(如 linux-5.10、linux-4.9,以及对应的 quickstart 版本)

提示

lunch 命令相当于替代了手动执行 make menuconfig 的芯片选型步骤,适合首次编译或切换目标平台时使用。

check — 检查编译环境

检查编译所需的工具链、命令等是否已正确安装,包括 bash、make、gcc、交叉编译工具链和 fakeroot 等:

./run.sh check

info — 查看当前编译信息

显示当前 cfg.mk 中的配置信息,包括芯片型号、芯片架构、内核版本、Bootloader、工具链和 Flash 支持等:

./run.sh info

env — 查看环境配置

显示当前工具链路径等环境信息:

./run.sh env

list — 列出可用的开发板配置

列出所有可用的板级配置和内核版本,并标识当前正在使用的配置:

./run.sh list

4.3 编译命令

命令说明
./run.sh uboot编译 U-Boot bootloader
./run.sh kernel编译 Linux 内核
./run.sh rootfs编译根文件系统
./run.sh driver编译内核驱动(GMP)
./run.sh sysdrv编译 uboot + kernel + rootfs(系统驱动三件套)
./run.sh osal编译 OSAL 适配层
./run.sh media编译媒体库(GMP 库)
./run.sh app编译应用示例代码
./run.sh mcu编译 MCU 固件
./run.sh all全量编译(先执行 clean,再执行完整编译)

说明

./run.sh all 会先清理全部编译产物再重新编译,等同于 make clean && make build。如需增量编译,请使用 sysdrv 或单独编译目标模块。

4.4 清理命令

命令说明
./run.sh clean清理全部编译产物
./run.sh clean uboot清理 U-Boot 编译结果
./run.sh clean kernel清理内核编译结果
./run.sh clean rootfs清理根文件系统编译结果
./run.sh clean driver清理内核驱动编译结果
./run.sh clean sysdrv清理 uboot / kernel / rootfs 编译结果
./run.sh clean media清理媒体库编译结果
./run.sh clean sample清理应用示例编译结果
./run.sh clean all清理全部编译产物

说明

./run.sh <target> clean 与 ./run.sh clean <target> 两种写法等效,均支持。

4.5 并行编译

所有编译和清理命令均支持 -j 参数进行并行编译,以加快构建速度:

# 使用全部 CPU 核心并行编译
./run.sh kernel -j

# 使用 4 个线程并行编译
./run.sh kernel -j4

# 全量编译并使用全部核心
./run.sh all -j

4.6 使用示例

以下是一次完整的首次编译流程示例:

# 1. 首次使用:选择开发板配置
./run.sh lunch

# 2. 检查编译环境是否就绪
./run.sh check

# 3. 确认当前配置
./run.sh info

# 4. 全量编译(使用全部核心)
./run.sh all -j

日常开发中的增量编译示例:

# 仅修改了内核代码,重新编译内核
./run.sh kernel -j

# 修改了 uboot 和内核,编译系统驱动
./run.sh sysdrv -j

# 编译应用示例
./run.sh app -j

# 清理内核编译结果后重新编译
./run.sh clean kernel
./run.sh kernel -j
在 GitHub 上编辑此页
上次更新:
贡献者: ljh, ZSL, lml
Prev
01 开发环境搭建
Next
03 镜像烧录