dmidecode 是 Linux 下获取内存真实频率和物理插槽信息最可靠的工具,因其直接读取 BIOS/UEFI 固件中的 SMBIOS 表,输出 Speed 和 Locator 字段,而 lshw、/proc/meminfo 等均无法准确提供该硬件属性。
用 dmidecode 查内存频率和槽位信息最可靠
Linux 下查内存条真实频率(不是标称值)和物理插槽位置,dmidecode 是唯一能直接读取 SMBIOS 表的工具,结果来自 BIOS/UEFI 固件,比 lshw 或 cat /proc/meminfo 更准确。
-
sudo dmidecode -t memory输出全部内存模块详情,含Speed(如3200 MT/s)、Locator(如CHANNELA-DIMM0)、Size、Type(DDR4/DDR5) - 只看频率和插槽:用
sudo dmidecode -t memory | grep -E "Locator|Speed|Size|Type" - 注意:普通用户无权限运行,必须加
sudo;部分笔记本或虚拟机可能返回空或“Unknown”,说明固件未填入 SMBIOS 字段
lshw 能补全识别但依赖驱动层解析
lshw 会调用内核接口并尝试解析 DMI 数据,输出更易读,但对老旧主板或精简发行版(如 Alpine)支持弱,且频率字段有时显示为“Unknown”或错误值(比如把 DDR4-3200 显示成 1600 MHz)。
- 查内存硬件拓扑:
sudo lshw -class memory - 重点关注
description(如memory:00000000-7fffffff)、slot(对应物理槽位)、clock(单位 Hz,需换算:1600000000 → 1600 MHz) - 若
clock为空或为 0,说明内核未报告时钟,此时应以dmidecode为准
别信 /proc/meminfo 或 free 里的“频率”
/proc/meminfo 只提供内存总量、可用量、缓存等运行时状态,完全不包含频率、型号、插槽等硬件属性。试图从这里找频率是方向性错误。