在银河麒麟系统中,可通过四种命令行方式读取独显gpu温度:1. nvidia专用nvidia-smi命令;2. 内核hwmon接口读取temp1_input(单位m°c);3. thermal子系统thermal_zonex/temp(单位m°c);4. sensors工具配合模块加载。

在银河麒麟操作系统中需要实时掌握独立显卡(如NVIDIA、AMD或国产JM系列)GPU核心当前温度,以判断是否存在散热异常、风扇停转或负载过热风险,但系统未预装图形化监控工具时,必须依赖内核接口与命令行组合读取原始传感器数据。
使用nvidia-smi查看NVIDIA独显核心温度
该命令专为NVIDIA闭源驱动设计,直接调用GPU固件级传感器,输出延迟低、精度高,且无需额外解析单位。仅适用于已正确安装NVIDIA官方驱动的系统。
执行命令:nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits
若返回数字(如58),即表示当前GPU核心温度为58°C;若提示NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver,说明驱动未加载或版本不匹配,需先运行nvidia-smi -L确认设备识别状态。
读取/sys/class/hwmon下GPU温度文件
这是Linux内核原生支持的方式,适用于所有带硬件温度传感器的独立显卡(含NVIDIA、AMD及景嘉微JM7201/JM9系列),无需安装任何软件,数据来源最底层。
第一步:列出全部硬件监控设备目录:ls /sys/class/hwmon/
第二步:逐个检查各hwmon目录下的name文件,定位GPU相关芯片:cat /sys/class/hwmon/hwmon0/name 2>/dev/null || cat /sys/class/hwmon/hwmon1/name 2>/dev/null
第三步:常见GPU芯片名包括nvidia、amdgpu、jm7201_temp、jm9_temp等;找到后读取其temp1_input文件:cat /sys/class/hwmon/hwmonX/temp1_input(X替换为实际编号)
【注意:该值单位为毫摄氏度(m°C),例如输出48250表示48.25°C】
通过/sys/class/thermal获取平台级GPU热区温度
该方式适用于飞腾、鲲鹏平台搭载JM系列国产GPU的整机,thermal子系统将GPU纳入统一热策略管理,路径稳定、命名语义明确,是麒麟V10 SP3及以上版本推荐方式。
执行命令:ls /sys/class/thermal/ | grep -i "gpu\|vga\|graphic"
若输出类似thermal_zone4,则运行:cat /sys/class/thermal/thermal_zone4/temp
该值单位为毫摄氏度,直接除以1000即可得°C值;若返回0或报错No such file or directory,说明当前GPU未被thermal子系统识别,需回退至hwmon方式。
使用sensors命令综合读取(含GPU)
方法一:先确保lm-sensors已配置并加载GPU模块。对NVIDIA显卡,需在sensors-detect过程中手动启用nvidia模块;对JM系列,部分版本需加载jm_gpu_temp模块。
方法二:执行sensors,查找含GPU、edge、die或asic字样的行,温度值通常紧随+XX.X°C格式出现。
方法三:若sensors无GPU输出,尝试强制刷新模块列表:sudo modprobe -r nvidia && sudo modprobe nvidia(NVIDIA)或sudo modprobe jm_gpu_temp(景嘉微),再重试sensors。











