# 镜像构建及VSCode插件使用 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- 概述 # SDK下载与编译 本文适用于 **Quectel PI RK3576 M2** 板卡 ## 下载SDK 您可以通过以下方式获取 Quectel PI RK3576 M2 的 Linux SDK: ### 从GitHub克隆 您也可以直接从 GitHub 仓库克隆 SDK 源码。([M2 SDK Github链接]()) 克隆完成后,进入 SDK 主目录即可开始使用。 ## 自定义编译打包 > **注意**:以下章节适用于需要修改源码或自定义配置的开发者。如果您只是使用官方固件,可以跳过此部分。 ### 环境配置 克隆完源码后进入 RK3576 SDK 目录,通过 `source` 加载统一构建脚本。该操作只在当前终端会话中注册构建函数;新开终端后需要重新执行。 ```bash cd /SDK # 方式一:一键(推荐)——装依赖 + 下载底包(~5GB) + 生成 sysroot + 校验 source build.sh echo '' | buildenv # 执行此步骤会检查环境并下载相关依赖 # 方式二:分步,也可以自己一步一步执行 ./tools/setup-deps.sh check # 只检测,缺失包名打印到 stdout ./tools/setup-deps.sh install # 交互输入 sudo 密码安装 ./tools/fetch-base-image.sh # 下载并解压 Quectel_Pi_M2编译资源包 → base_image/ ./tools/fetch-base-image.sh --keep-zip -u # 自定义/保留 zip ./tools/extract-sysroot.sh prebuilds/base_image/rootfs.img prebuilds/sysroot # 生成 sysroot ``` ### 应用编译 ```bash source build.sh # 导出 SYSROOT/CROSS_COMPILE/CC/CMAKE_TOOLCHAIN_FILE 等 newapp myapp # 从模板创建 → docs/examples/myapp newapp myapp gpio # 指定模板:hello/gpio/serial/pwm/i2c/camera/network/thread/sysinfo/rtc/nvme/pcie buildapp docs/examples/myapp # 自动识别 Makefile / CMake 并编译 # 等价 Makefile 入口 make newapp NAME=myapp make app DIR=docs/examples/myapp # 也可进入工程手动编 cd docs/examples/myapp && make cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE && cmake --build build ``` ### 内核编译 ```bash source build.sh buildkernel # = tools/build-kernel.sh kernel → kernel/boot.img, resource.img buildboot # 仅生成 FIT boot.img buildoverlays # overlay/*.dts → build/overlays/*.dtbo buildmenuconfig # 内核 menuconfig(保留 .config) builddefconfig # 恢复默认配置 buildsavedefconfig # 保存精简 defconfig buildclean # 清理 build/ 与内核产物 # 直接调脚本等价 ./tools/build-kernel.sh kernel|boot|overlays|all|check|clean|menuconfig # 环境变量 JOBS=16 ./tools/build-kernel.sh kernel # 并行数 FORCE_DEFCONFIG=1 ./tools/build-kernel.sh # 强制重置 .config TOOLCHAIN_DIR=<目录> ./tools/build-kernel.sh ``` ### 应用层 overlay(追加自定义文件到文件系统镜像) ```bash # overlay/ 目录结构 == rootfs 根路径,例 overlay/opt/app → /opt/app(可执行自动加 0755) ./tools/build-rootfs.sh apply # → build/rootfs-overlay.img ./tools/build-rootfs.sh remove /opt/xxx # 删除镜像内文件 ./tools/build-rootfs.sh extract # 解压镜像 ./tools/build-rootfs.sh repack # 目录重新打包 ./tools/build-rootfs.sh check|clean OVERLAY_DIR=/path ./tools/build-rootfs.sh apply ``` ### 一键编译(整编) ```plaintext source build.sh && buildall ``` ### 产物 - build/result/update.img — 完整固件(整包烧录) - build/result/boot.img — 单独内核 boot(单分区烧录) - kernel/boot.img 、 build/overlays/*.dtbo 、 build/rootfs-overlay.img ## 自定义烧录 生成编译产物后,tools/flash/ 已内置官方烧录工具 upgrade_tool (Rockchip rockusb 协议,v2.44),Windows 另有 GUI 版 RKDevTool ### 前提条件 - 已用 buildall 生成固件( build/result/update.img 等) - 板子进入 Loader 模式 :同时按住 EDL 键和PWR键再上电 - USB 连接主机;Linux 下需权限( 加 sudo 或配 udev 规则) ```plaintext cd /SDK FLASH=tools/flash/linux/upgrade_tool # Linux;Mac 用 tools/flash/mac/upgrade_tool chmod +x $FLASH ``` ### 整包烧录(最常用) ```plaintext # 烧完整固件(UF = UpgradeFirmware) sudo $FLASH UF build/result/update.img # 烧完不自动重启 sudo $FLASH UF build/result/update.img -noreset ``` ### 单分区烧录(增量/调试,省时间) WL `` [SizeSec] `` ,偏移单位 = 512B 扇区 (取 parameter.txt 中 @ 后的号)。 ```plaintext sudo $FLASH WL 0x1A000 build/result/boot.img        # boot 分 区 sudo $FLASH WL 0x16000 prebuilds/base_image/uboot.img   #  uboot sudo $FLASH WL 0x8A000 build/rootfs-overlay.img     # rootfs (含 overlay 的自定义镜像) ``` ### 平台对比 | **平台** | **命令行工具** | **GUI** | | --- | --- | --- | | Linux | tools/flash/linux/upgrade_tool | — | | macOS | tools/flash/mac/upgrade_tool | — | | Windows | tools/flash/windows/upgrade_tool.exe | tools/flash/windows/RKDevTool/RKDevTool_Release/RKDevTool.exe | # VSCode插件使用 Quectel Pi官方插件目前已上架微软商城,用户可自行在微软商城搜索下载安装,插件提供可视化界面和UI友好界面,方便用户进行SDK下载开发编译烧录等操作 ## 插件获取 VSCode商城搜索Quectel Pi ,下载安装完成后会在左侧侧边栏看到插件的logo ```{image} images/image_HtfVb1etMoYorRx1SK6cXVe1n2e.webp :width: 1544px :height: 701px :align: center ``` ```{image} images/image_O71JbYykqolKuLxBuSkcjpVqn2f.webp :width: 1705px :height: 957px :align: center ``` ## 插件使用 SDK编译需要linux环境,所以我们建议将SDK下载到Ubnutu系统的主机下,可以使用VSCode的SSH进行远程连接,如果是Windows电脑可以配置WSL Ubnutu子系统,然后使用VSCode进行WSL连接 使用过程中如果需要更详细文档介绍或者驱动下载,可以点击Documentation访问官网文档 ```{image} images/image_DzWEbd77AoO6wPxUEa4cU1tBnub.webp :width: 1775px :height: 952px :align: center ``` ### 下载SDK 连接到Ubnutu子系统后,可以点击Manager SDK,选择M2系列SDK进行下载,然后输入一个SDK保存路径回车 ```{image} images/image_AszsbIM9Lo1yYexkokTcWB96nDb.webp :width: 1477px :height: 931px :align: center ``` ### 连接SDK 下载完SDK后,我们需要对SDK进行一个连接,这里连接可以选择本地连接也可以选择SSH远程连接,分别对应SDK下载在本机或者远程机的(我们也可以现在远程机上下载SDK,然后本地使用Windows环境去远程连接SDK操作也是可以的) ```{image} images/image_ZzY4bt7jfomixtxO7tNcRWAUnSe.webp :width: 1621px :height: 840px :align: center ``` ### 全量编译 连接完SDK后可以进入编译一栏选择配置构建环境检查SDK环境,然后点击全量编译即可快速对SDK进行编译 ```{image} images/image_Fc53bAXSpo2z6Kxw6jJcnzA9nyc.webp :width: 1619px :height: 872px :align: center ``` ### 全量烧录 编译完成后,点击烧录,可进行全量烧录,需先确保板子连接并且进入Loader模式,若adb能识别到设备,也可以点击Enter Loader进入Loader模式 ```{image} images/image_EqFxbkzGOoXNcexZWzvczIFwn3b.webp :width: 1680px :height: 721px :align: center ``` ### 应用编译 在应用一栏里,可以根据已有的应用模版创建应用并自行修改,随后可对该应用进行编译 ```{image} images/image_UF4ebGsd1oxY1QxOsENcez2jnHc.webp :width: 1836px :height: 821px :align: center ``` ```{image} images/image_UbXlbF8mSolIS3xoUp2cYuRLngz.webp :width: 1617px :height: 836px :align: center ``` 编译完成后可自行推送进设备使用