D
D
Dmitry2014-06-16 05:00:08
ubuntu
Dmitry, 2014-06-16 05:00:08

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

Specifications here: www.ulmart.ru/goods/603874#properties_full
If you need more information, I will add.
UPD:
1. Staff.science.uva.nl/~kholshei/thinkfan_guide is installed. It looks like it works, but the rotation speed is unchanged

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"

2. Laptop-mode-tools changed to TLP - does not help
3. The kernel, as written above, has been updated to the latest.
4. pwmconfig - swears:
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

2 answer(s)
P
pkkk, 2015-02-03
@zmeyjr

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

Pay attention to the values ​​in the cells [0x93],[0x94],[0x95] , if they are non-zero and [0x93] == 4 , and [0x94] and [0x95] are around 200 (although these 2 values ​​may vary), then you have my case and then you need to read the following post (yes, it’s in the thread about acer aspire):
forum.notebookreview.com/threads/acer-aspire-timel... (Windows users can also read about acer_ec analogues there .pl for this OS)
In particular, you can find the following there:
[0x93] - CPU fan: Fan mode. 0x04 Auto, 0x14 Manual
[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).
therefore, 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.
A few examples (run as root again):
#поставить небольшую скорость
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

My script, which is called by cron once a minute
[email protected]:~# crontab -l
* * * * * PATH="$PATH:/root/ec" fan_control.sh

and sets the fan speed depending on the temperatures returned by the sensors command. I'm not sure that this option is the most beautiful and safe, but there was no desire to patch thinkpad_acpi or something like that.
fan_control.sh (script name) and acer_ec.pl (with permission to run chmod +x acer_ec.pl ) must be in /root/ec
#!/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

V
Vladimir, 2014-07-02
@arcman

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

Actually, in the log there is a link to the project itself on SF ( ibm-acpi.sourceforge.net/), where you can find a document with its description ( ibm-acpi.sourceforge.net/README).
I also found how-to here ( www.thinkwiki.org/wiki/How_to_control_fan_speed).
There is an option for Ubuntu 8.04, but it does not work for me (there are no specified files).
As I understand it, you must first enable fan speed control by passing the "fan_control=1" parameter to the module, after which it will be possible to steer.
By the way, after fixing the fan regulator, you can try to lower the voltage on the processor, so that it would heat up less:
"Lowering the processor operating voltage, or tuning Enhanced Intel SpeedStep"
habrahabr.ru/post/228233

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question