Answer the question
In order to leave comments, you need to log in
Is it possible to control CPU cooler speed on (X)Ubuntu 14.04 on Lenovo B590 laptop?
Hello.
Such a problem. The cooling fan always runs at 100%, i.e. regardless of the load, the rotation speed is constant.
Installed OS Xubuntu 14.04, kernel 3.15.0-031500-generic.
Windows did not install, did not check whether fan control works in this OS.
The sensors utility just shows "0 RPM"
@Lenovo:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +39.0°C (crit = +88.0°C)
temp2: +35.0°C (crit = +126.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +38.0°C (high = +72.0°C, crit = +90.0°C)
Core 0: +38.0°C (high = +72.0°C, crit = +90.0°C)
Core 1: +35.0°C (high = +72.0°C, crit = +90.0°C)
thinkpad-isa-0000
Adapter: ISA adapter
fan1: 0 RPM
sudo thinkfan -n
WARNING: Using default fan control in /proc/acpi/ibm/fan.
sleeptime=5, tmax=43, last_tmax=43, biased_tmax=43 -> fan="level 0"
sleeptime=2, tmax=45, last_tmax=41, biased_tmax=52 -> fan="level 2"
sleeptime=3, tmax=40, last_tmax=45, biased_tmax=44 -> fan="level 0"
Found the following fan sensors:
hwmon2/device/fan1_input current speed: 0 ... skipping!
There are no working fan sensors, all readings are 0.
Make sure you have a 3-wire fan connected.
Answer the question
In order to leave comments, you need to log in
Solved this problem on my b590 (model with Pentium 2020M processor, built-in video), Linux. For Windows, I believe, everything is similar, but the tools will have to be used differently.
I had to rummage, in the end it turned out that the thinkpad_acpi kernel module (it is used by the sensors utility and others) does not work correctly on this model. Those. It reads temperature information correctly (it seems that this data is located in the same place as in ThinkPads), but it reads / sets the fan speed incorrectly. The acer_ec.pl
utility helped (reading and writing to Embedded Controller registers), description
So, we execute the command (hereinafter we do everything from root):
the output will be something like this
__ | 00 01 02 03 04 05 06 07 | 08 09 0A 0B 0C 0D 0E 0F
__ __ __ __ __ __ __ __ | __ __ __ __ __ __ __ __
00 | 0 0 20 0 0 0 0 0 | 0 0 4 20 0 0 0 48
10 | 3 0 4 0 0 0 0 0 | 0 0 0 0 0 0 0 0
20 | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0
30 | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0
40 | 0 0 0 0 0 0 0 0 | 0 8 9 0 0 0 0 0
50 | 35 0 163 108 0 0 1 0 | 140 0 4 24 1 29 11 14
60 | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0
70 | 98 51 20 0 8 97 0 0 | 8 1 0 65 0 0 0 0
80 | 0 0 0 0 0 0 0 0 | 137 0 0 6 0 0 0 0
90 | 0 2 0 4 196 199 0 0 | 0 177 0 0 0 0 4 11
A0 | 129 128 128 128 128 128 128 128 | 39 35 35 0 57 14 37 33
B0 | 128 128 128 0 0 0 0 0 | 26 0 11 0 0 0 0 3
C0 | 4 2 176 4 4 0 0 0 | 0 0 0 0 0 0 0 0
D0 | 45 27 60 55 78 73 84 80 | 85 81 87 72 88 89 0 0
E0 | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0
F0 | 72 57 69 67 48 57 87 87 | 40 49 46 48 50 41 32 0
[0x93] - CPU fan: Fan mode. 0x04 Auto, 0x14 Manualtherefore, it turns out that we have a fan in automatic mode (because [0x93] == 0x04 ), and in order to lower the speed, you must set it to manual and then set the speed yourself.
[0x94] - CPU fan: Desired fan speed. 0x00-0xFF. With 0x00 being max speed and 0xFF means fan is off
[0x95] - CPU fan: Actual fan speed (in %? See note below).
#поставить небольшую скорость
perl acer_ec.pl := 0x93 0x14
perl acer_ec.pl := 0x94 0xe0 #можно поэкспериментировать с этим значением
#выключить вентилятор вовсе
perl acer_ec.pl := 0x93 0x14
perl acer_ec.pl := 0x94 0xff
#перевести обратно в автоматический режим
perl acer_ec.pl := 0x93 0x04
[email protected]:~# crontab -l
* * * * * PATH="$PATH:/root/ec" fan_control.sh
#!/bin/bash
temp= -- текущая температура CPU, опубликую позже
ec95=`acer_ec.pl ?= 0x95| grep 0xff`
if [ $temp -lt 64 ]; then
val=0xff #off
if [ -z "$ec95" ] && [ $temp -gt 44 ]; then
val=0xe0 #lite
fi
elif [ $temp -lt 70 ]; then
val=0xc0 #medium
fi
echo `date` ${temp}C $val >> /tmp/fan_control.log
if [ -z $val ]; then
acer_ec.pl := 0x93 0x04
else
acer_ec.pl := 0x93 0x14
acer_ec.pl := 0x94 $val
fi
The same problem: B590, there are two systems, in Windows the laptop works much quieter.
In Lubuntu 14.04, the fan runs more actively, although it blows cold.
What I dug out so far:
The system already has a "thinkpad_acpi" module that can control the fan, but this is disabled by default.
Learned this from dmesg:
[ 10.413043] thinkpad_acpi: ThinkPad ACPI Extras v0.25
[ 10.413044] thinkpad_acpi: http://ibm-acpi.sf.net/
[ 10.413045] thinkpad_acpi: ThinkPad BIOS H9ET74WW(1.11), EC unknown
[ 10.413045] thinkpad_acpi: Lenovo Lenovo B590, model 20206
[ 10.431897] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
[ 10.432021] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
[ 10.432022] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...
[ 10.478519] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[ 10.480087] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
[ 10.480151] thinkpad_acpi: Console audio control enabled, mode: monitor (read only)
[ 10.486415] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input7
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question