新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/11/15 11:41:43来源:尧图网络
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
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉