在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更可靠。