《树莓派实战秘籍》——1.5 技巧05监测树莓派的硬件

1.5 技巧05监测树莓派的硬件

树莓派实战秘籍
你是否担心你不在家时你的Pi投身疯狂派对?这个技巧是关于如何弄个摄像头对准它并将视频传输到Internet上的。开个玩笑!这个技巧中的工具只能监测你的这个小巧硬件的物理状态。

一个“正常的”Linux计算机可能会包括板载健康监测传感器,有相当多的监控芯片和元器件被用在各种系统上,但是对于树莓派来说,所有的硬件完全隐藏在Broadcom片上系统里面,因此你无法使用通常的方式访问它。

为了能够使用这些元器件监视你的Pi的健康,需要使用vcgencmd实用工具。任何可用的通用树莓派Linux发行版应该已经预安装了这个工具,如果没有的话,你可以从固件树上得到一份复制。如果你的发行版编译为支持ARM硬浮点,你可以在hardfp/子目录下查找,否则,可以在opt/子目录下查找。

检查硬浮点

在写这篇文章的时候,大多数Linux发行版(包括Pidora、Raspbian、Occidentalis、OpenELEC以及RaspBMC等)被构建为支持ARMv6硬浮点架构,因为这样可以提供树莓派的最佳性能。然而这些目标平台的一些老版本(以及其他操作系统平台)被构建为优化的ARMv6的软浮点。这两种优化级别彼此互不兼容。在Linux上,有一种很好的方法来检查是否支持ARMv6硬浮点,即使用readelf命令:

你可以在树莓派的Linux发行版上直接运行此命令(可能需要先安装elfutils软件包),或者你也可以很方便地从已经装有readelf工具的树莓派Linux发行版并通过其他系统复制一份二进制文件或库文件。

如果二进制文件支持ARMv6硬浮点优化,你会得到类似下面的输出:

最后一行很重要:Tag_ABI_VFP_args: VFP registers。只有二进制文件被检查为构建时采用了ARMv6硬浮点优化时才会显示这些信息。
安装好vcgencmd工具后(如果需要),查看vcgencmd提供的选项:

这将输出一个包含所有可以传递给vcgencmd工具的命令列表:

不幸的是,关于这些命令以及它们是干什么的,上面的输出实际上并没有给出什么有用的信息。命令中有些看上去似乎是显而易见的,但是当你运行它们的时候,它们会这样返回:

这个工具的文档极其匮乏,不过树莓派社区已经汇集并找到了一些命令的用法。

1.5.1 测量元器件电压

vcgencmd measure_volts命令显示了一些树莓派关键元器件的电压,特别是:

上述每一个元器件都可以作为选项传递给vcgencmd measure_volts命令(如果你没有指定参数,将返回core的值)。你也许会觉得奇怪为什么要关心并测量这些电压,而且在大多数情况下,你也许确实不需要关心它们。它们的值一般如表1-3所示:

你可能会关心这些元器件电压的唯一情况是:如果你决定将你的树莓派超频,在这种情况下这些电压均是可配置的(在技巧06中会有详细介绍)。

你也许希望这个命令返回系统主板电压(这个电压正常条件下在4.75V和5.25V之间变化),但它并不能。参见技巧09获取如何手工获取系统主板电压的相关内容。

1.5.2 测量温度

vcgencmd measure_temp命令会报告树莓派的BCM2835片上系统的core温度(摄氏):

或者,你也可以直接读取/sys/class/thermal/thermal_zone0/temp文件获得同样的温度读数:

趣味数学和科学

要将该值转换为摄氏温度,只需除以1000即可。要得到华氏温度,需要将摄氏温度乘以1.8再加上32。而要得到开尔文温度,则应将摄氏温度加上273.15。如此计算的温度值越来越高,是不是正如我们对树莓派的热情?
从监测树莓派硬件的角度来看,这种读数可能已经足够了。由于实际上CPU/GPU并没有分离(至少从物理和发热的角度来说没有分离),所以它只是给了你一个主板运行有多热的大致概念。也就是说,如果你想获得更详细的(或只是另一个)温度读数,你可以接入一个额外的温度传感器,如技巧37中所述。

1.5.3 监测内存划分

无论是强制分配还是动态分配,vcgencmd get_mem命令都可以返回ARM CPU和显卡GPU的内存值。

要查看当前分配给ARM CPU的内存大小,运行:

要查看当前分配给显卡GPU的内存大小,运行:

1.5.4 检查自定义配置重写

你已经忘记了你对你的树莓派所做的配置更改?具体来说,那些在固件中更改的设置?你可以在/boot/config.txt中查看,这里的vcgencmd get_config命令也可以帮助到你。

要查看所有使用数字(整型)数据类型的配置,运行:

![screenshot]()

要查看所有使用文本(字符串型)数据类型的配置,运行:

只有非常少的配置项是存储为字符串值而不是整型,因此如果vcgencmd get_config str命令没有返回任何值的时候,你不必过于惊讶。
如果你只是想检查某一个指定配置项的值,则用配置名称代替选项传递:

vcgencmd实用工具并不是对用户最友好的工具,但是它确实很深的介入到了树莓派的内部运作。由于这是一个开源工具(源代码可以从前述的树莓派GitHub固件库中checkout),如果你想深入了解树莓派硬件的内部工作原理的话,查看vcgencmd的源码将会是一个很好的起点。

时间: 2024-09-21 07:01:14

《树莓派实战秘籍》——1.5 技巧05监测树莓派的硬件的相关文章

《树莓派实战秘籍》——第 2 章 为树莓派做Linux黑客 2.1 技巧21建立交叉编译器工具链

第 2 章 为树莓派做Linux黑客 虽然树莓派有很多可用的操作系统,但支持得最好的一个肯定是Linux,树莓派基金会通过维护一个Linux内核源代码树的方式保持了对树莓派的硬件支持. Linux以其灵活性和对大量设备的支持而著名.无论你是刚刚开始有兴趣学习Linux,或者准备对Linux动手改造以成为一个令人敬服的黑客,本章都将帮助你完成这一过程. 本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接. 2.1 技巧21建立交叉编译器工具链 树莓派适

《树莓派实战秘籍》——导读

前 言 树莓派的灵感诞生于埃本·厄普顿在剑桥大学负责计算机科学专业学生工作期间(参见前言中的描述),他发现准大学生需要有更多的机会获得编程经验才可以达到大学水平.如我们现在所知的,关于什么将会成为Pi的第一个概念设计诞生于2006年,阿尔法版在2011年年底通过验证,最初的10块板在2012年年初被拍卖,价格高达16 000英镑. 首批10 000台树莓派于开始销售,截至2011年年底,它的SD卡映像文件已经被下载超过了50000次,暗示其普及时代即将来临.当时两家英国的销售商Premier F

《树莓派实战秘籍》——2.2 技巧22构建一个定制内核

2.2 技巧22构建一个定制内核 树莓派实战秘籍 对于很多技巧来说,标准的预购建Linux内核映像已经足够了,不过有些需要的选项或驱动并没有被标准内核启用.这个技巧打开了一些额外的选项,并将对本书中其他的技巧有用. Linux内核是因为以下几个原因而成为一个奇妙的操作系统核心的:首先是它的多功能性,而且它原生支持了大量的架构和设备:然后是其开源代码库,树莓派基金会提供了预购建的专为支持树莓派硬件的客制化的Linux内核映像及相应的源代码树,让你可以建立你自己定制的可以工作在树莓派上的内核映像.这

《树莓派实战秘籍》——2.3 技巧23更新到最新的预建内核

2.3 技巧23更新到最新的预建内核 树莓派实战秘籍 让你的树莓派使用最新的Linux内核?你当然可以这么做,而且有一种方法可以让你不必从源代码构建就能够获取它们. 树莓派基金会的好人们经常努力工作增加新的功能到Linux内核源代码树中,而且他们又进一步定期更新一份预构建的Linux内核映像文件的拷贝.这个内核专门为树莓派配置了一系列选项及模块.使用这个内核意味着你可以确定所有内置到树莓派的硬件,以及任何树莓派的特定功能都可以正确地启动. 发行版特点 一些Linux发行版可能假定某些没有在树莓派

《树莓派实战秘籍》——1.9 技巧09解决电源问题

1.9 技巧09解决电源问题 树莓派实战秘籍 Pi并不需要很多功率,但这也表示它所要求的功率就是它所需要的功率,如果供电过多或不足,都会造成运行时的问题. 树莓派运行时需要一个5V(DC)电源,可以从专用的Micro USB B型端口(在主板上丝印标记为"Power")供电,或者从GPIO扩展(主板上标记为"P1")引脚(具体来说,5V引脚的位置是P1-02和P1-04)供电. 如果你有一个可以用于大部分Android手机的充电器,那么你也就同时有了一根Pi的电源线

《树莓派实战秘籍》——1.15 技巧15连接GPIO脚到面包板上

1.15 技巧15连接GPIO脚到面包板上 树莓派实战秘籍 在你构建电子项目的时候,免焊面包板是一个相当有用的朋友,尤其是在原型设计或只是测试设备的时候更是如此.让我们动手做一个简单的到树莓派的连接. 虽然你可以直接通过常见的跳线或者直接在添加的设备和GPIO的引脚之间焊接一个线来简单地连接树莓派GPIO引脚和设备,但让你工作的空间越大,你可以发挥的余地就会越多,我们可靠的老朋友面包板正可以在这方面给你提供帮助.面包板如图1-7所示,即使你以前从未做过任何一个电子项目,你应该也注意到这家伙那白色

《树莓派实战秘籍》——1.2 技巧02挂载SD卡

1.2 技巧02挂载SD卡 树莓派实战秘籍 你当然可以直接从正在运行的树莓派上访问其文件,但使用SD卡读卡器将SD卡挂载到一台独立的计算机上,将会使很多任务(如添加或编辑文件)变得更容易. 虽然树莓派就是一台独立的Linux计算机,不过如果你手头有另外一台计算机的话确实可以为你提供帮助,在有的情况下,它甚至可能是不可或缺的.幸运的是,现在许多计算机都带有内置的SD卡读卡器,即使你的计算机没有内置,它们的价格也不贵并且很容易买到.所以,即使你买的是预装系统的SD卡,你也应该拥有一个SD卡读卡器以及

《树莓派实战秘籍》——1.12 技巧12连接SSH

1.12 技巧12连接SSH 树莓派实战秘籍 对于任何headless项目.以及任何从方便的角度来说和你相距较远的项目,或者仅仅只是因为你懒得穿过房间,这些情况下你都需要知道如何SSH到你的树莓派上. OpenSSH,由OpenBSD项目为安全通信所创建的开源的工具集,很可能在你选择的任何发行版上都有效. 如果你有一点点复古倾向,请注意"Squeeze"这个在"Wheezy"之前的版本,它并没有在默认情况下运行SSH. 如果你不能确定,你要做的就是尝试SSH到你的P

《树莓派实战秘籍》——第 1 章 配置技巧

第 1 章 配置技巧 树莓派实战秘籍人们会说起点通常就是开始的好地方什么的,但是这是一本黑客的书,你很可能会跳过无关内容而直奔感兴趣的话题.要不就是这本书前面一定是用古代英语写的,因为你在不停的翻页,看上去就像书中有一些可怕的印刷错误. 这就是说,有些事情最好在开始干之前先把它们置之脑后,树莓派有一些意想不到的奇怪特性,你最好做到事先心中有数.如果你在Linux或电子黑客方面是新手,或者两方面都不了解,那么一个很好的做法是在做任何其他黑客行为之前先将本章通读一遍.你也许可以学会一些知识,而且还可