
清空记录
历史记录
取消
清空记录
历史记录

前言:为什么RK设备离不开分区知识?
玩过瑞芯微开发板、行业平板、工控盒子、AI摄像头的朋友,大概率踩过这些坑:
1.改完固件分区后板子黑屏、卡Logo、无法进系统;
2.OTA升级失败、恢复模式进不去;
3.userdata空间不够,不知道怎么扩容;
4.分不清GPT分区和老式CMDLINE分区,烧录镜像地址错乱。
所有问题根源,都指向RK平台的分区总控文件——parameter.txt。
它是整个存储(eMMC/NANDFlash)的“地图”,U-Boot、内核、升级工具全部依靠这份文件定位镜像位置。本文基于瑞芯微官方分区规范文档,完整拆解RK分区体系、parameter字段、两种分区格式、全分区功能与开发避坑指南。

核心中枢:parameter.txt文件全解析
•作用:定义固件版本、硬件机型、内核启动参数、完整存储分区表;
•大小上限:最大64KB,不可超限;
•存储特性:GPT模式下不会烧录进 eMMC/NAND,仅工具解析生成分区表;传统CMDLINE模式会单独存parameter分区;
•兼容性:全系列RK 芯片涵盖比如RK3362/RK3566/RK3568/RK3576通用逻辑,仅机器型号参数不同。
FIRMWARE_VER:9.0MACHINE_MODEL:RK3326MACHINE_ID:007MANUFACTURER:RK3326MAGIC:0x5041524BATAG:0x00200800MACHINE:3326CHECK_MASK:0x80PWR_HLD:0,0,A,0,1TYPE:GPTCMDLINE:mtdparts=rk29xxnand:xxx(分区定义)uuid:system=af01642c-9b84-11e8-9b2a-234eb5e198a0
字段 | 作用&修改规则 |
FIRMWARE_VER | 固件版本号,升级工具识别,十进制X.X格式 |
MACHINE_MODEL/MACHINE_ID | 机型标识,OTA校验固件与设备是否匹配,项目自定义 |
MAGIC/CHECK_MASK | 固定值,严禁修改,用于工具兼容校验 |
ATAG/MACHINE | 内核底层匹配参数,MACHINE和芯片一一对应(RK3326填3326、RK3588填3588),不可随意改动 |
PWR_HLD | 电源保持GPIO配置,控制开机供电逻辑,按需调整 |
TYPE | 分区类型:GPT(新平台推荐)/无TYPE=传统CMDLINE分区 |
uuid:system | GPT专属,根文件系统唯一标识,内核挂载必备 |
CMDLINE | 两大核心:串口配置、mtdparts 分区表(全文重点) |
示例片段:0x00002000@0x00004000(uboot)
1.0x00002000:分区扇区大小;
2.@0x00004000:分区起始扇区LBA地址;
3.(uboot):分区名称;
4.单位统一:1sector=512字节
换算示例:0x2000扇区=8192个扇区×512B =4MB。
1.对齐要求:分区起始、大小必须是32KB(64扇区)整数倍;sparse =镜像建议4MB对齐;
2.兼容标识:所有RK平台统一使用rk29xxnand作为存储标识;
3.扩容规则:GPT模式最后一个分区加:grow,自动占用存储剩余全部空间(通常给userdata);传统分区无grow标识,固定大小。

两大分区模式:GPT vs 传统CMDLINE分区
目前RK新SDK(Android9及以上、RK35xx全系)默认GPT分区,老式NAND设备仍在用CMDLINE,两者核心差异一目了然:
对比项 | GPT 分区(推荐) | 传统 CMDLINE 分区(老旧方案) |
TYPE 标识 | 配置TYPE:GPT | 无 TYPE 字段 |
userdata | 末尾加userdata:grow自动扩容 | 固定扇区大小,剩余空间浪费 |
UUID | 必须配置 system 分区 uuid | 无需 UUID |
parameter 存储 | 不写入 Flash,工具动态生成分区表 | 单独划分 parameter 分区烧录文件 |
地址映射 | eMMC/NAND 逻辑地址完全一致 | eMMC 前 4MB 为 loader 保留,分区地址自动偏移 0x2000 扇区;NAND 地址无偏移 |
兼容性 | 标准 EFI 分区,适配现代 U-Boot-next | 即将淘汰,新版 uboot 不再原生支持 |
稳定性 | 分区表磁盘首尾双备份,不易损坏 | 分区表仅存内存,异常断电易丢失 |
•GPT模式:parameter写多少扇区,Flash实际烧录就是多少扇区,eMMC/NAND统一;
•传统CMDLINE+eMMC:uboot定义0x2000,实际烧录地址=0x4000(前4MB存放loader);
•传统CMDLINE+NAND:地址无偏移,定义0x2000即实际0x2000。
全分区功能详解:从引导到用户数据完整链路
RK分区按启动顺序分为前级固件分区、系统核心分区、数据分区三大类,启动顺序:MaskROM→Loader→U-Boot→Trust→Boot→Android系统。
1.uboot(4MB标准)
二级引导程序,初始化DDR、Flash、串口,读取parameter加载内核,刷机、升级模式入口。
2.trust(ATF)
安全固件,ARM可信执行环境,处理加密、安全启动、DRM密钥校验。
3.misc
指令标记分区,无文件系统;U-Boot读取misc标识判断是否进入Recovery、恢复出厂、PCBA测试模式。
4.dtb/dtbo
dtb:基础设备树,描述CPU、串口、存储硬件;dtbo:设备树覆盖,扩展外设(屏幕、摄像头、GPIO)。
5.vbmeta
Android AVB2.0校验分区,验证boot/system镜像完整性,防篡改,校验失败无法开机。
6.security
安全密钥存储区,存放序列号、加密证书、硬件唯一密钥,只读不可随意擦除。
1.boot
正常启动内核分区,包含Linux Kernel+ramdisk根文件系统,设备启动核心。
2.recovery
恢复系统分区,独立小型Android,负责OTA升级、清除userdata、修复系统。
3.backup
系统备份分区,存放关键镜像备份,升级异常时回滚修复。
4.cache
系统缓存分区,APP缓存、升级临时文件,恢复出厂常格式化此分区。
5.system
Android系统根目录,系统框架、系统APP、底层服务,只读分区,OTA核心更新对象。
6.vendor
厂商硬件适配层,驱动、硬件HAL、厂商定制组件,Android10以上系统强制独立分区。
7.oem
厂商自定义分区,存放自有应用、配置、logo资源,刷机可保留自定义数据。
8.metadata
加密元数据分区,用户数据加密、存储权限管理,Android高版本必备。
9.frp
工厂复位保护分区,存储防恢复锁定信息,设备出厂绑定校验。
userdata:grow(GPT专属)
存放APP、用户账号、照片、文件、应用数据;grow标识自动占用存储剩余空间,恢复出厂会清空此分区。示波器验证PWM引脚是否有 38KHz 载波输出
1.uboot/trust/misc/dtb/vbmeta/security全部放在recovery之前;
2.新增硬件自定义分区,若涉及U-Boot读写,必须前置到recovery;
3.userdata固定为最后一个分区,GPT开启自动扩容。
高频踩坑点与实操总结&视频演示
1.修改分区后黑屏卡Logo
原因:分区地址错位、大小未32KB对齐、GPT缺少uuid、TYPE格式写错;
解决:核对扇区对齐,GPT必须添加TYPE:GPT 与 system uuid。
2.OTA升级失败,无法进入Recovery
排查misc分区镜像是否烧录、recovery分区大小不足、parameter机型ID不匹配。
3.userdata空间不足
GPT模式确认末尾添加:grow;传统分区需手动扩大扇区数值,重新打包固件。
4.NAND与eMMC镜像混用烧录错乱
区分分区模式:GPT地址无偏移,传统eMMC存在4MB偏移,不要跨存储介质混用parameter。
5.parameter文件过大
限制64KB,删减无用注释、精简CMDLINE冗余参数,避免工具解析失败。
6.实操新项目、新芯片(RK3566/3568/3588/RV1136)统一使用GPT分区,兼容性、稳定性最优;
7.修改parameter前备份原始文件,分区扇区修改后必须重新打包update.img全量固件;
8.分区遵循启动顺序:底层固件在前,系统分区居中,userdata放最后;
9.魔数MAGIC、CHECK_MASK、MACHINE芯片匹配参数禁止修改,否则设备无法启动。
产品简介
END
