我有一台 Dell Precision M4500、Intel Core i5 CPU,运行 Linux(Ubuntu Lucid),并且想监控 CPU 温度。
我试过 lm-sensors:sensors-detect
没有找到任何传感器;按照它的提示(“这在笔记本电脑上比较常见,因为笔记本电脑的热管理由 ACPI 而不是操作系统处理。”)我试过了,acpi -V
但没有发现任何热信息。Gnome 面板小程序“硬件传感器监视器”只报告 GPU 温度,没有其他信息。
我下一步应该尝试什么?
答案1
我发现 M4500 的 CPU 温度为:
cat /sys/kernel/debug/ips/cpu_temp
答案2
我要sensors
开始做我自己的工作了(Linux Mint- Debian)通过加载 coretemp 模块:
sudo modprobe coretemp
然后再次运行传感器。如果有效,请通过以下方式使其永久生效:
sudo echo "coretemp" >> /etc/modules
您还可以安装 i8kutils,然后加载 i8k 模块并从 /proc/i8k 获取温度:
sudo apt-get install i8kutils
sudo modprobe i8k
cat /proc/i8k | cut -d " " -f 4
还可以看看 dellfand。请注意,我必须添加#include <sys/stat.h>
到 dellfand.cc 才能编译它。安装后,您可以调整风扇速度。例如:
sudo ./dellfand 0 3 40 50 65
sudo ./dellfand 0 0.2 25 40 65
答案3
这可能与 Gnome 和/或 lm-sensors 使用的相同,但也可能不同。说实话,我对这个问题的细节不太了解;我主要只知道如何寻找东西,并且知道温度信息通常在哪里以及它是什么样子。
在我的戴尔电脑上(大约 6 年前的 Trooper Pentium M 笔记本电脑),
$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
将以千分之一摄氏度为单位打印当前温度。我认为这个特定位置是标准位置,尽管还有其他位置。例如,它也可以在 处找到/sys/devices/virtual/hwmon/hwmon0/temp1_input
。我不确定这是否是同一个传感器。
如果这不起作用,你可以尝试
$ find /sys -iname "*temp*" -or -iname "*ther*"
对于一个相当野蛮的小队方法(*ther*
将捕捉“热量”并且通常不会捕捉到太多其他东西)。
如果你不这么认为,我想你可以是野蛮小队并做一些类似的事情
$ find /sys/ -type f | while read f; do
if grep -q '^[0-9]\{5\}$' $f
&& (( $(wc -l $f | cut -f 1 -d \ ) == 1 ));
then
echo $f;
fi;
done 2>/dev/null;
它应该打印出所有一行长且由 5 位数字组成的文件,这通常是这些伪文件的样子。
如果找不到,可以稍微扩大搜索范围,方法是更改为\{5\}
查找\+
任意数量的数字,和/或在字符范围.
后添加一个。 执行这两项操作将使您能够捕获浮点表示,尽管他们似乎不太可能这样做。9
[0-9]
我不确定这两种方法有多大用处,因为信息可能/sys/...
根本不在 sysfs 中(即 )。您可能能够/proc/
使用类似的技术在 下找到它 — 但要过滤掉编号目录和/proc/self
,否则您最终将搜索系统上所有进程的元数据。
答案4
Dell 使用专有主板传感器通信,大多数实用程序都无法识别这些通信。我只能建议你尝试尽可能多的不同实用程序。