在ARM系统中,查看CPU主频(时钟频率)可以通过以下多种方法实现。以下是具体步骤及说明:
方法1:通过 /proc/cpuinfo
文件
cat /proc/cpuinfo | grep "BogoMIPS"
或
cat /proc/cpuinfo | grep "CPU MHz"
说明:
-
BogoMIPS:
Linux内核在启动时通过空循环校准的近似性能指标,单位为“百万次循环/秒”。
实际主频 ≈ BogoMIPS × 1.5(经验公式,因架构而异)。
例如,你的输出中BogoMIPS约为1590,则主频≈1590 × 1.5 ≈ 2385MHz(即2.39GHz)。 -
CPU MHz(部分系统显示):
直接显示CPU当前频率(以MHz为单位),如CPU MHz : 1400.000
表示主频1.4GHz。
方法2:使用 dmesg
命令
dmesg | grep "CPU:"
示例输出:
[ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIR [413fc090] revision 0 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: 17000000 Hz (desired 17000000 Hz, rate 17000000 Hz)
- 解析:
CPU: 17000000 Hz
表示主频为17MHz(启动时的默认频率),实际运行频率可能通过调频技术动态调整。
方法3:使用 lscpu
命令
lscpu
示例输出:
Architecture: armv7l
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: ARM
Model: 3
Model name: Cortex-A9
Stepping: 0x3
CPU max MHz: 1400.0000
CPU min MHz: 200.0000
BogoMIPS: 1591.29
- 关键字段:
CPU max MHz
:CPU的最大频率(动态调频上限)。CPU min MHz
:CPU的最小频率(动态调频下限)。BogoMIPS
:同方法1中的解释。
方法4:通过 /sys
文件系统
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
说明:
- 输出:
显示当前CPU频率(以kHz为单位)。例如,输出1400000
表示当前频率为1.4GHz。 - 前提:
需要系统支持cpufreq
驱动(动态调频功能),且用户有读取权限。
方法5:使用 dmidecode
(部分系统支持)
dmidecode -t processor
示例输出:
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x0004, DMI type 4, 42 bytes
Processor Information
Socket Designation: CPU Socket 1
Type: Central Processor
Family: Cortex-A9
Manufacturer: ARM
ID: 41 3F C0 90 00 00 00 00
Version: Cortex-A9 r0p3
Voltage: 1.0 V
External Clock: 1700 MHz
Max Speed: 1400 MHz
Current Speed: 1400 MHz
Status: Populated, Enabled
Upgrade: Other
- 关键字段:
External Clock
:外频(通常为1700MHz)。Max Speed
:CPU最大频率(1.4GHz)。Current Speed
:当前运行频率(1.4GHz)。
总结:推荐方法
- 优先使用
lscpu
:
直接显示主频范围(CPU max MHz
和CPU min MHz
),信息全面且易读。 - 次选
/proc/cpuinfo
:
通过BogoMIPS
估算主频(公式:主频 ≈ BogoMIPS × 1.5)。 - 动态调频系统:
如果系统支持调频(如cpufreq
),通过/sys
文件系统获取实时频率。
注意事项
- 动态调频影响:
如果系统启用了动态调频(如ondemand
或powersave
模式),实际频率可能低于最大主频。可通过以下命令固定频率:echo "performance" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
- 嵌入式系统差异:
部分精简版Linux(如嵌入式ARM系统)可能未安装lscpu
或dmidecode
,此时依赖/proc/cpuinfo
和dmesg
更可靠。