我有一台运行 Ubuntu 14.04 的 Beaglebone Black。我用 guide to flashing a pre-built image to eMMC 闪过它.
根据我看过的指南,我应该能够读取 /sys/class/hwmon/hwmon0/device/temp1_input
来获取 CPU 温度。但是,我的系统上没有这样的路径;我猜是 Beaglebone Black 的内核模块 AM3358 ARM CPU提供了这个功能,我的图像缺少这样的模块,但我不知道从哪里开始获得这样的模块。事实上,/sys/class/hwmon
是一个空目录。
这些是我拥有的模块:
$ lsmod | sort
6lowpan_iphc 10154 1 bluetooth
bluetooth 316797 10 bnep,rfcomm
bnep 11946 2
can_dev 7430 1 c_can
c_can 9400 1 c_can_platform
c_can_platform 5927 0
g_multi 3238 0
iptable_filter 1149 1
ip_tables 11857 1 iptable_filter
libcomposite 38715 5 usb_f_acm,usb_f_ecm,usb_f_rndis,g_multi,usb_f_mass_storage
musb_am335x 1075 0
musb_dsps 8369 0
musb_hdrc 76236 1 musb_dsps
rfcomm 46571 0
rfkill 14659 2 bluetooth
u_ether 9524 3 usb_f_ecm,usb_f_rndis,g_multi
usb_f_acm 5687 1
usb_f_ecm 7901 1
usb_f_mass_storage 34664 2 g_multi
usb_f_rndis 17711 2 g_multi
u_serial 9631 1 usb_f_acm
x_tables 12575 3 ip_tables,xt_multiport,iptable_filter
xt_multiport 2051 1
...和整体状态:
$ uname -a
Linux hostname 3.14.26-ti-r43 #1 SMP PREEMPT Wed Dec 24 05:27:12 UTC 2014 armv7l armv7l armv7l GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
那么,如何读取缺少此文件的 Beaglebone Black 上的 CPU 温度?
最佳答案
我在网上搜索了一下,结果一无所获。
到目前为止,我发现当前的 Debian(我正在使用 Linux bbone 4.1.12-ti-r29 #1 SMP PREEMPT Mon Nov 9 22:46:19 UTC 2015 armv7l GNU/Linux
) 以及它的所有衍生产品以及它最近的前身(至少可以追溯到您的内核 3.14.26)不再填充 /sys/class/hwmon
。
此外,lm-sensors
在板上找不到任何传感器,所以这也是一个死胡同。
我从 TI 那里了解到,温度传感器从来都不是真正打算供最终用户使用的。 TI 甚至规定了一种通过外部传感器测量电路板温度的方法(请参阅 here)。
所以,这是一个无赖,但你有它。
编辑:我还发现 Debian 8.2 显示了我在这里描述的行为,但是,今天我刷新了 Debian 7.9(来自 here ; Linux bbone 3.8.13-bone79 #1 SMP Tue Oct 13 20 :44:55 UTC 2015 armv7l GNU/Linux
) 和 that 带有一个完全填充的 /sys
包括 /sys/class/hwmon/hwmon0/device/temp1_input
这是以摄氏度为单位的温度读数。请注意,这可能是不应该依赖的相对温度(根据 TI)。
关于ubuntu - 在 Beaglebone Black 上读取 CPU 温度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28099822/