需用lm-sensors、/sys/class/hwmon、/sys/class/thermal、cputemp或watch命令获取麒麟v10各cpu核心温度:lm-sensors支持多平台并标注core编号;hwmon提供毫摄氏度原始值;thermal_zone可区分封装与裸片温度;cputemp为华为预装专用工具;watch实现动态监控。

如果您在麒麟V10系统中需要精确掌握每个CPU核心的实时运行温度,以评估负载分布、识别异常发热核心或验证散热策略有效性,则需依赖能解析多核传感器数据的工具或内核接口。以下是多种经实测兼容麒麟V10桌面版(含SP1/SP2/SP3)及鲲鹏/飞腾平台的可行方法:
一、使用 lm-sensors 工具读取各核心温度
lm-sensors 支持识别 Intel Core i 系列、AMD Ryzen 及部分国产CPU(如飞腾D2000、鲲鹏920)的 per-core 温度传感器,输出中会明确标注“Core 0”、“Core 1”等字段,适用于图形界面与终端双环境。
1、以 root 权限安装对应源软件包:对于 apt 源系统(如V10桌面增强版),执行 sudo apt-get install lm-sensors;对于 yum 源系统(如V10 SP3服务器版),执行 sudo yum install lm_sensors。
2、运行自动探测脚本:sudo sensors-detect,全程按回车接受默认配置,直至提示加载模块。
3、手动加载核心温度驱动(x86_64平台):sudo modprobe coretemp;飞腾平台请改用 sudo modprobe ft2000_temp;鲲鹏平台请改用 sudo modprobe hisi_thermal。
4、执行 sensors 命令,输出中所有以 “Core” 开头的行即为各物理/逻辑核心独立温度值,单位为摄氏度(°C)。
二、解析 /sys/class/hwmon 下 per-core temp*_input 文件
/sys/class/hwmon 接口直接映射硬件传感器寄存器,部分主板芯片组(如Intel H470/B560、飞腾FT-2000+配套南桥)会为每个核心暴露独立的 temp*_input 文件,可实现无依赖只读访问。
1、列出全部监控设备:ls /sys/class/hwmon/,确认存在 hwmonN 目录(如 hwmon0、hwmon1)。
2、逐个检查芯片标识:cat /sys/class/hwmon/hwmon0/name,若输出为 coretemp 或 ft2000_temp,则该设备支持多核温度分离。
3、定位核心温度节点:ls /sys/class/hwmon/hwmon0/temp*_label 2>/dev/null,查看是否返回类似 temp1_label、temp2_label 的文件;若有,对应 temp1_input、temp2_input 即为各核心原始值。
4、读取单个核心温度:cat /sys/class/hwmon/hwmon0/temp1_input,结果为毫摄氏度(m°C),例如 48250 表示 48.25°C。
三、通过 /sys/class/thermal/thermal_zone* 区分封装与裸片温度
thermal 子系统在麒麟V10 SP3内核(≥4.19.90)中已适配国产SoC热区抽象,thermal_zone0 通常代表CPU封装整体温度,而 thermal_zone1 或 thermal_zone2 可能映射到独立裸片(die)或核心簇(cluster),尤其在多Die架构(如鲲鹏920四Die设计)中具备区分能力。
1、列出全部热区:ls /sys/class/thermal/,重点关注 thermal_zone0 至 thermal_zone3 范围。
2、识别热区类型:cat /sys/class/thermal/thermal_zone0/type,若返回 cpu-thermal,则为CPU总成;若返回 soc-die 或 cluster0,则可能对应特定核心组。
3、读取目标热区温度:cat /sys/class/thermal/thermal_zone1/temp,数值单位为毫摄氏度(m°C),需除以1000转换为标准摄氏度。
四、使用 cputemp 命令(华为L410/W515等预装机型专用)
cputemp 是华为定制工具,预装于部分搭载鲲鹏920的麒麟V10 OEM设备(如L410台式机、W515一体机),可直接输出每个物理核心的当前温度及历史极值,无需额外探测或模块加载。
1、确认命令是否存在:which cputemp,若返回路径(如 /usr/bin/cputemp),则已就绪。
2、以普通用户权限运行:cputemp -v,-v 参数启用详细模式,将逐行列出 Core 0 ~ Core N 的实时温度。
3、若提示“Permission denied”,需临时赋予执行权:sudo chmod +x /usr/bin/cputemp。
五、结合 watch 实现核心温度动态刷新
watch 命令可周期性执行任意温度读取指令,并高亮变化值,便于观察负载突变时各核心温升响应差异,适合压力测试或散热调试场景。
1、对 sensors 输出进行2秒刷新:watch -n 2 'sensors | grep \"Core \"',仅显示含“Core ”的温度行。
2、对 hwmon 多核心文件批量读取并格式化:watch -n 2 'for i in /sys/class/hwmon/hwmon0/temp{1..8}_input; do [ -f "$i" ] && echo "$(basename $i): $(cat $i) m°C"; done | head -n 8'。
3、设置触发告警:当某核心超阈值时闪烁提示,例如 watch -n 1 'sensors | grep "Core 0" | awk \'{if($3>75) print "\033[5;31mWARNING: Core 0 > 75°C\033[0m"}\' '。











