在i8kmon Ubuntu 14.04中设置温度阈值

我的戴尔Inspiron 15R出现了过热问题,并安装了i8kmon来控制Ubuntu 14.04上的风扇速度。

这是’lm-sensors’输出的副本:

 coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +62.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +57.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +61.0°C (high = +87.0°C, crit = +105.0°C) i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM CPU: +62.0°C 

即使将/etc/i8kmon的温度阈值设置为:

 set config(daemon) 1 # Automatic fan control, override with --auto option set config(auto) 1 # Report status on stdout, override with --verbose option set config(verbose) 1 # Status check timeout (seconds), override with --timeout option set config(timeout) 1 # Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt} set config(0) {{0 -} -1 55 -1 55} set config(1) {{1 -} 55 70 55 70} set config(2) {{2 -} 60 128 60 128} 

风扇应该启动时不启动。 什么可能是错的想法? 以下是使用--verbose选项手动运行i8kmon时的log副本:

 i8kmon v1.30 11/16/2013 - Copyright (C) 2013 Vitor Augusto  config(0) = {0 0} -1 60 -1 65 config(1) = {1 0} 50 70 55 75 config(2) = {1 1} 60 80 65 85 config(3) = {2 2} 70 128 75 128 config(acpi) = acpi config(auto) = 1 config(daemon) = 1 config(geometry) = config(i8kfan) = /usr/bin/i8kfan config(min_speed) = 2000 config(sysconfig) = /etc/i8kmon.conf config(t_high) = 80 config(timeout) = 5 config(unit) = C config(use_conf) = 1 config(userconfig) = ~/.i8kmon config(verbose) = 1 status(ac) = 0 status(acpi_timer) = 0 status(left) = status(leftspeed) = 0 -1 -1 -1 status(lspeed) = 0 status(lstate) = 0 status(lstuck) = 0 status(nfans) = 2 status(right) = status(rightspeed) = 0 0 0 0 status(rspeed) = 0 status(rstate) = 2 status(rstuck) = 0 status(state) = 0 status(t_high) = 0 status(t_low) = 0 status(temp) = 0 status(timer) = status(ui) = 0 1410467738 acpi: Battery 0: Discharging, 89%, 03:13:17 remaining temp, left, right, ac state: 60 -1 2 0 # exec /usr/bin/i8kfan 0 0 temp, left, right, ac state: 59 -1 0 0 # exec /usr/bin/i8kfan 0 {} temp, left, right, ac state: 58 -1 0 0 # exec /usr/bin/i8kfan 0 {} temp, left, right, ac state: 58 -1 0 0 # exec /usr/bin/i8kfan 0 {} temp, left, right, ac state: 60 -1 0 0 # exec /usr/bin/i8kfan 0 {} temp, left, right, ac state: 58 -1 0 0 # exec /usr/bin/i8kfan 0 {} temp, left, right, ac state: 59 -1 0 0 # exec /usr/bin/i8kfan 0 {} temp, left, right, ac state: 58 -1 0 0 # exec /usr/bin/i8kfan 0 {} temp, left, right, ac state: 58 -1 0 0 # exec /usr/bin/i8kfan 0 {} temp, left, right, ac state: 60 -1 0 0 

似乎温度是错误的, i8kmon没有打开风扇。

根据lm-sensors

 i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM 

您有一个唯一的Right Fan ,因此左侧风扇值应始终为-1 。 您必须在文件/etc/i8kmon.conf set config更改为以下值:

 set config(0) {{-1 0} -1 40 -1 40} set config(1) {{-1 1} 40 60 40 60} set config(2) {{-1 2} 60 128 60 128} set config(3) {{-1 2} 60 128 60 128} 

在状态{-1 0} ,没有左风扇,右风扇关闭,在状态{-1 1} ,右风扇应该在低速运行,而在状态{-1 2}它应该全速运行。 其他值,例如40 60 40 60 ,对应于每个状态的温度阈值—最小值和最大值—有和没有交流电源。

您还需要添加以下选项:

 # Run as daemon, override with --daemon option set config(daemon) 0 # Automatic fan control, override with --auto option set config(auto) 1 # Report status on stdout, override with --verbose option set config(verbose) 1 # Status check timeout (seconds), override with --timeout option set config(timeout) 20 

最后,您需要在/etc/modprobe.d/中创建包含行options i8k force=1的文件i8k.conf

查看man i8kmon更多细节