Linux:戴尔笔记本电脑风扇控制并获得CPU温度

时间:2020-01-09 10:37:49  来源:igfitidea点击:

我已经在Dell Inspiron/Latitude/Precision/Vostro笔记本电脑上安装了Debian或Ubuntu Linux。
如何查看当前的CPU温度?
如何控制和查看戴尔笔记本电脑上的风扇状态?

您需要使用" i8kfan"和" sensors"命令在由Linux操作系统驱动的Dell笔记本电脑上获取以下信息:

  • CPU温度
  • 左右风扇状态
  • 左右风扇速度
  • 交流电源状态
  • Fn按钮状态

i8k驱动程序

您需要加载一个名为i8k的驱动程序。
它用于访问Dell笔记本电脑上的SMM BIOS。
商业级Dell笔记本电脑模块(例如Latitude,Inspiron,Vostro等)均得到很好的支持。
此模块包含在Linux内核版本3.0或更高版本中。

如何加载驱动程序?

执行以下modprobe命令以加载i8k驱动程序:

$ sudo modprobe -v i8k

或者

# modprobe -v i8k

输出示例:

insmod /lib/modules/3.5.0-30-generic/kernel/drivers/char/i8k.ko

在Debian/Ubuntu上安装i8kutils软件包

打开一个终端并输入以下命令:

$ sudo apt-get install i8kutils

输出示例:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  i8kutils
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/35.4 kB of archives.
After this operation, 184 kB of additional disk space will be used.
Selecting previously unselected package i8kutils.
(Reading database ... 256376 files and directories currently installed.)
Unpacking i8kutils (from .../i8kutils_1.33_amd64.deb) ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
Setting up i8kutils (1.33) ...
* Not starting. Disabled via /etc/default/i8kmon.
* Not starting. Disabled via /etc/default/i8kbuttons.

编辑文件"/etc/default/i8kbuttons"和"/etc/default/i8kmon",并将" ENABLED"设置为" 1":

ENABLED=1

或者,使用sed命令来完成所有肮脏的工作:

sed -i.bak 's/ENABLED=0/ENABLED=1/' /etc/default/{i8kmon,i8kbuttons}

启动服务(这相当于运行modprobe -v i8k命令):

# /etc/init.d/i8kmon start

输出示例:

* Starting Dell Inspiron fan/cpu-temperature monitor i8kmon             [ OK ]

我如何查看当前状态?

输入以下命令

$ i8kctl

输出示例:

1.0 (null) XYZABC123 43 1 1 77130 78120 0 -1

其中:

  • 1.0i8k格式版本
  • (空)BIOS版本
  • XYZABC123机器ID(戴尔序列号)
  • `43'CPU温度
  • 风扇状态为" 1"
  • 1右风扇状态
  • 7713左风扇速度
  • 7812右风扇速度
  • 交流电源状态为0
  • -1:fn按钮状态

只需打印CPU温度,输入:

$ i8kctl temp

输出示例:

52

在戴尔笔记本电脑上控制风扇速度

首先,只需打印风扇状态信息:

$ i8kctl fan

输出示例:

1 1

fan命令可以接受两个可选参数,这些参数指定左右风扇的新风扇状态。
状态参数可以是:其中,

  • 0:关闭风扇(不推荐)
  • 1:设置低速
  • 2:设置高速
  • -:请勿更改此风扇的状态

例如,以下命令将左风扇(通常由CPU使用)设置为高速,而将右风扇保持不变:

$ i8kctl fan 2 

在此示例中,将左风扇(通常由CPU使用)设置为高速,并保持左风扇不变:

$ i8kctl fan - 2

以下将两个风扇设置为低速:

$ i8kctl fan 1 1

这等效于运行以下命令:

## the syntax is ##
i8kfan leftFan rightFan
 
# Set left fan on high and leaves the right unchanged
i8kfan 2 
 
# Set right fan on high and leaves the left unchanged
i8kfan - 2
 
# Set both fans to low 
i8kfan 1 1

请注意,服务/etc/init.d/i8kmon在守护程序模式下启动i8kmon。
因此,使用i8kfan设置速度是没有意义的,因为守护程序将根据系统温度即时用其自身值覆盖速度。

使用传感器命令

首先,按照此处所述安装和配置lm_sensors软件包,然后执行以下命令以查看有关FAN和CPU核心温度的信息:

$ sensors

建议您使用" acpi -V"命令查看Linux操作系统下的当前电池状态和温度。