Решил эту проблему на своем b590 (модель с процессором Pentium 2020M, видео встроенное), линукс. Для Windows, полагаю, все аналогично, но инструменты придется использовать другие.
Пришлось порыться, в итоге выяснилось, что модуль ядра thinkpad_acpi (именно его использует утилита sensors и другие) работает некорректно на этой модели. Т.е. информацию о температуре он читает правильно (похоже эти данные находятся там же где и у Think Pad-ов), а вот скорость вентилятора считывает/устанавливает неверно.
Помогла утилита
acer_ec.pl (чтение и запись в регистры Embedded Controller-а),
описание
Итак, выполняем команду (тут и далее всё делаем от рута):
perl acer_ec.pl regs
вывод будет примерно такой
__ | 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],[0x94],[0x95], если они ненулевые и
[0x93] == 4, а
[0x94] и
[0x95] примерно в районе 200 (хотя эти 2 значения могут варьироваться), то у вас мой случай и далее надо читать следующий пост (да-да, именно в ветке про acer aspire):
forum.notebookreview.com/threads/acer-aspire-timel... (там же пользователи Windows могут почитать про аналоги
acer_ec.pl для этой ОС)
В частности, там можно найти следующее:
[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).
следовательно, выходит, у нас вентилятор в автоматическом режиме (т.к.
[0x93] == 0x04), а чтобы понизить обороты необходимо выставить ручной и далее задать самому скорость.
Несколько примеров (опять запускаем из-под рута):
#поставить небольшую скорость
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
Мой скрипт, который вызывается cron-ом раз в минуту
root@b590:~# crontab -l
* * * * * PATH="$PATH:/root/ec" fan_control.sh
и выставляет обороты вентилятора в зависимости от температур возващаемых командой sensors. Не уверен, что этот вариант самый красивый и безопасный, но патчить thinkpad_acpi или что-то подобное желания не было.
fan_control.sh (название скрипта) и acer_ec.pl (с правами на запуск
chmod +x acer_ec.pl) должны находиться в /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