尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Buildroot 下如何查看 RK3588 板子的总内存,并分析 Reserved Memory 与 CMA

发布时间:2026/9/24 17:30:44

资讯中心
01
ARTICLE

Buildroot 下如何查看 RK3588 板子的总内存,并分析 Reserved Memory 与 CMA

Buildroot 下如何查看 RK3588 板子的总内存,并分析 Reserved Memory 与 CMA
在 RK3588 Buildroot 系统中我们经常会遇到一个问题板卡明明标称 16 GB RAM为什么执行free -h后却只显示 15 GiB这些“少掉”的内存去了哪里本文以一块实际的 16 GB RK3588 板卡为例通过/proc/meminfo、free、dmesg和/proc/iomem逐步确认物理内存容量并分析 Linux 保留内存和 CMA。一、最简单的方法查看 MemTotalBuildroot 本质上仍然是 Linux。查看 Linux 当前管理的总内存最通用的方法是grep MemTotal /proc/meminfo实际输出MemTotal: 16333572 kB换算成 GiB16333572 / 1024 / 1024 ≈ 15.58 GiB结论这基本可以确认板卡是 16 GB RAM 版本。Linux 显示约 15.58 GiB 并不代表内存损坏或少装了内存。二、使用 free 查看内存状态如果 Buildroot 中的 BusyBox 支持free可以执行free -h本机输出total used free shared buff/cache available Mem: 15Gi 114Mi 15Gi 55Mi 267Mi 15Gi Swap: 0B 0B 0B还可以查看几个关键字段grep -E MemTotal|MemFree|MemAvailable /proc/meminfoMemTotal: 16333572 kB MemFree: 15941844 kB MemAvailable: 16007752 kB字段含义MemTotalLinux 最终可管理的总 RAM。MemFree当前完全空闲的 RAM。MemAvailable综合可回收缓存等因素后当前大致还能提供给应用程序使用的内存。三、为什么 16 GiB 最终只有约 15.58 GiB16 GiB 理论容量16 × 1024 × 1024 16777216 KiB而本机MemTotal 16333572 KiB差值为16777216 - 16333572 443644 KiB ≈ 433.25 MiB也就是说相比完整 16 GiB大约有 433 MiB 没有出现在最终的MemTotal中。对于 RK3588 这类 SoC这通常来自启动固件、设备树、内核以及硬件相关的保留区域。四、使用 dmesg 查看启动阶段的内存账单执行dmesg | grep -i -E memory|reserved|cma本机关键输出Reserved memory: created CMA memory pool at 0x0000000010000000, size 256 MiB Memory: 16063132K/16752640K available (19392K kernel code, 3574K rwdata, 7200K rodata, 6912K init, 819K bss, 427364K reserved, 262144K cma-reserved)这里能得到非常有价值的信息项目大小说明启动阶段识别 RAM16752640 KiB ≈ 15.98 GiB已经非常接近完整的 16 GiB。reserved427364 KiB ≈ 417 MiB平台、内核、设备树等相关保留内存。CMA262144 KiB 256 MiB连续内存分配器的内存池。完整 16 GiB 与启动阶段内核识别量相差16777216 - 16752640 24576 KiB 24 MiB这部分可理解为 Linux 接管内存之前由平台、固件或 SoC 地址布局等因素形成的差异。五、CMA 是什么CMAContiguous Memory Allocator主要用于向硬件驱动提供较大的物理连续内存。RK3588 是多媒体 SoC视频编解码、DRM/KMS 显示、HDMI、摄像头、ISP 和 DMA 等场景都可能需要连续内存。本机创建了Reserved memory: created CMA memory pool at 0x10000000, size 256 MiB也就是一块 256 MiB 的 CMA 池。注意CMA 不能简单理解为“永久浪费掉的 256 MiB”。空闲的 CMA 页面在合适条件下可以被可迁移页面利用当硬件需要连续物理内存时内核再通过页面迁移腾出连续空间。本机 HDMI RX 驱动还有一条很有代表性的日志rk_hdmirx fdee0000.hdmirx-controller: No reserved memory for HDMIRX, use default CMA这说明 HDMI RX 没有独立的专用内存区域而会使用系统默认 CMA。因此对于承担视频播放、HDMI、MPP、DRM/KMS 等任务的 RK3588不能为了让free多显示一点内存就随意删除 CMA。六、使用 /proc/iomem 查看物理地址布局执行cat /proc/iomem本机部分输出00200000-083fffff : System RAM 09400000-efffffff : System RAM 10000000-1fffffff : reserved e9f00000-ee059fff : reserved 100000000-3fbffffff : System RAM 3ec000000-3fbffffff : reserved 3fc500000-3ffefffff : System RAM 4f0000000-4ffffffff : System RAM 4fc563000-4fc5c2fff : reserved ... 4fdecb000-4ffffffff : reserved其中0x10000000 0x1fffffff 0x10000000 bytes 256 MiB与前面dmesg中的 256 MiB CMA 地址范围吻合。不要直接把 /proc/iomem 中所有 reserved 地址段相加后称为“丢失的内存”。这些地址段可能属于不同层级和用途。分析总内存时应结合dmesg、/proc/meminfo和设备树综合判断。七、查看设备树中的 reserved-memory如果希望继续查清楚保留内存具体属于哪些设备可以查看运行中的设备树ls -la /sys/firmware/devicetree/base/reserved-memory/如果 BusyBox 的find支持相应参数也可以find /sys/firmware/devicetree/base/reserved-memory -maxdepth 2 -type f -print这里可能包含 CMA、可信执行环境以及 Rockchip BSP 定义的其他 reserved-memory 节点。八、启动时占用的部分内存还会释放本机还出现Freeing unused kernel memory: 6912K Freeing drm_logo memory: 1384K说明内核初始化阶段的一部分内存以及启动 Logo 使用的内存在启动完成后会被释放。因此不能简单拿启动瞬间的available、reserved和cma-reserved做一次减法就要求结果与最终MemTotal完全一致。九、本机内存关系总结16 GiB 物理 RAM │ ├── 约 24 MiB │ └── Linux 接管之前的平台/固件等差异 │ └── Linux 启动阶段识别约 15.98 GiB │ ├── reserved约 417 MiB ├── CMA256 MiB特殊的可回收/可迁移内存池 ├── 内核代码、数据以及其他运行开销 │ └── 系统启动完成 └── MemTotal ≈ 15.58 GiB检查项目结果物理内存规格16 GiB内核启动阶段识别约 15.98 GiBMemTotal16333572 KiB ≈ 15.58 GiBCMA256 MiBdmesg 中 reserved约 417 MiBSwap0是否发现明显内存容量异常没有最终结论这块 RK3588 的确是 16 GB RAM 版本。Buildroot/Linux 最终显示约 15.58 GiB 属于正常的平台与系统内存保留现象并没有发现异常的内存“丢失”。十、常用命令汇总# 查看 Linux 总内存 grep MemTotal /proc/meminfo # 查看当前内存使用情况 free -h # 查看关键内存字段 grep -E MemTotal|MemFree|MemAvailable /proc/meminfo # 查看启动阶段内存、reserved 和 CMA dmesg | grep -i -E memory|reserved|cma # 查看物理地址空间 cat /proc/iomem # 查看设备树 reserved-memory ls -la /sys/firmware/devicetree/base/reserved-memory/ # BusyBox find 支持时 find /sys/firmware/devicetree/base/reserved-memory -maxdepth 2 -type f -print
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。