linux - 关于检测树莓派的 CPU 和 GPU 温度,网上流传的两段脚本为何不同?

 酸奶82 发布于 2022-11-07 07:23

目前网络上流传的检测树莓派 CPU 和 GPU 的温度主要是两个脚本,例子在这里(树莓派-GPIO、CPU、温度、内存 和 用Python小程序获取树莓派的CPU和GPU温度)

我分别认真读了两段脚本,发现一个问题,截图如下:

如图所示,两个红框圈出来的地方,读取的是同样的内容,但一个是作为 CPU温度,另一个是作为 GPU温度。并且,运行结果也不一样,截图如下:

如图,其中第一个跑的脚本是对应第一图中右边一个脚本,第二个跑的脚本对应第一图中左边一个脚本。时间相差不超过2秒。

我的设备情况是:树莓派 2代,CPU 和 GPU 均贴了一块铜质散热片,未装入盒子内,使用 iPad mini 1代的充电头和摩托罗拉手机的 micro USB 线供电,使用网线接入路由器,采用 SanDisk Class10 8GB TF卡,刷入的系统为 2015-02-16-raspbian-wheezy,入手后未安装其他软件。

想问一下,到底哪一个才是正确的。


2015-03-11更新:
根据答案部分@eziozl 前辈的回答,查看了他提供的wiki,注意到下图中这样一部分内容:

这里的资料表明,vcgencmd measure_temp测出的是 CPU 的核心温度,那么现在的问题是,根据@沙渺 前辈的回答:以CPU名义注册的温度传感器也只有一个,位于/sys/class/thermal/thermal_zone0。所以这两者都表示 CPU温度,所以想问,GPU 的核心温度怎么获取?

而根据@eziozl 前辈给出的另一个链接里看到如下图这样的内容:

这是否说明,其实所谓获取到的 CPU温度 就是 CPU 和 GPU 的温度?如何区分两者呢?

2 个回答
  • 都是准确的,建议你同时执行两个程序看看,这两个文件都是系统生成文件,可以反应os从cpu获取的当时温度。
    具体可以参考:https://wiki.archlinux.org/index.php/Raspberry_Pi
    http://elinux.org/RPI_vcgencmd_usage

    2022-11-12 01:58 回答
  • vcgencmd当然只有一个,位于/opt/vc/bin/vcgencmdvcgencmd及所属的/opt/vc软件包,都是和VideoCore通讯的闭源程序(看名字就知道了)。

    而以CPU名义注册的温度传感器也只有一个,位于/sys/class/thermal/thermal_zone0

    所以CPU和GPU温度分开测量,当然两者都是可信的。尤其是对于其实有4个CPU核心的Pi2来说更是如此。

    测量结果不稳定的现象,具体来看表现为温度数据的更新其实是在“乱飘”。即使在同一个时间点(都不用差1秒钟)也可能读到两个差出很多的数据值。可以尝试以下命令来观察这个现象。

    • while :; do cat /sys/class/thermal/thermal_zone0/temp; done
    • while :; do vcgencmd measure_temp; done

    但我确实不能解释这个是为什么。

    2022-11-12 01:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有