ThinkFan Control не использует полный потенциал вентилятора, когда это необходимо

У меня есть Thinkpad x201, и он очень быстро перегревается из-за температуры окружающей среды и в конечном итоге убивает себя без предупреждения (и это действительно раздражает меня).

Снаружи есть 34 градуса Цельсия, в то время как компьютер поднимает температуру до 80 градусов без важных задач и достигает (с 1 градусом в секунду) до 100 градусов с более тяжелой задачей.

Я следовал рекомендациям, чтобы запустить вентилятор раньше, чтобы он поддерживал постоянную температуру или когда он был на критической температуре, чтобы использовать максимальную скорость, но он все еще придерживался автоматических значений.

Технические аспекты

Ресурс, который я использовал, находится здесь: http://staff.science.uva.nl/~kholshei/thinkfan_guide/

Я настроил значения так, чтобы вентилятор запускался при более низких температурах, начиная с 0 до 20 градусов для уровня 0 и так далее.

Моя конфигурация для /etc/thinlfan.conf:

$ tail -n 15 /etc/thinkfan.conf

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp4_input
sensor /sys/devices/platform/coretemp.0/temp2_input

(0, 0, 21)
(1, 20, 22)
(2, 21, 25)
(3, 24, 28)
(4, 26, 33)
(5, 30, 40)
(6, 36, 49)
(7, 44, 62)
(128, 60, 65)
(129, 63, 100000)

Последние два значения являются экспериментальными.

, когда я бегу:

$ sudo thinkfan -n

WARNING: Using default fan control in /proc/acpi/ibm/fan.

, когда я бегу:

$ echo level disengaged | sudo tee /proc/acpi/ibm/fan 

Вентилятор вращается приблизительно. 6500 об / мин, который действительно эффективен (температура медленно падает), но он удерживается на этом уровне в течение приблизительно 5 секунд после того, как снова переключается в автоматический режим.

Мой вопрос: как я могу вручную установить максимальную скорость вращения вентилятора в эти жаркие дни / Как я могу настроить значения так, чтобы температура не повышалась так сильно?

Сегодня я впервые пытаюсь это сделать, поэтому не ожидайте от меня представления о том, что я могу попробовать, кроме как установить задание cron, которое будет устанавливать уровень каждую секунду, что является плохой идеей.

И последнее: я не могу позволить себе перестать работать, и самое главное, я предпочитаю время от времени менять вентилятор, а не процессор.

Спасибо за вашу помощь и понимание, если вам нужны какие-либо другие детали, дайте мне знать.

Ох ... вот мой выпуск lsb:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 13.10
Release:        13.10
Codename:       saucy

... и uname:

$  uname -r      
3.11.0-23-generic
6
задан 11 June 2014 в 02:36

4 ответа

После некоторого дальнейшего исследования это - то, как мне удалось заставить его работать, как я хотел.

Пользовательские температурные пороги - конфигурация скорости вентилятора

Я установил thinkfan от способного (чтобы быть честным я не могу помнить, было ли это уже установлено или нет :-S)

Быть уверенным проверка, если Вам назвали процесс thinkfan

CLI:

ps -ef | grep thinkfan

и если это не там установка это с

CLI:

sudo apt-get install thinkfan 

Это - конфигурация, расположен в /etc/thinkfan.conf

Отображающаяся температура - скорость определяется как в следующем отрывке:

...
(0, 0, 21)
(1, 20, 22)
(2, 21, 25)
...

Каждая группа определяет следующие значения (уровень, minTemperature, maxTemperature), другое правило состоит в том, что группы должны наложиться друг между другом.

Уровень определяется в как целое число и не строка, как я первоначально думал, как так:

  • 0 - 7 - восемь уровней указывают от 0 до ~4200RPM
  • 126 - максимальная скорость
  • 127 - расцепленный ~6900RPM

Моя конфигурация в /etc/thinkfan.conf взгляды теперь как так:

(0, 0, 21)
(1, 20, 22)
(2, 21, 25)
(3, 24, 28)
(4, 26, 33)
(5, 30, 40)
(6, 36, 49)
(7, 44, 52)
(126, 50, 59)
(127, 57, 100000)

Значения для изделия температур более или менее вычислили от графиков psensor, который показал очень ясный, что у меня есть неэффективный вентилятор, но я думаю, что это - нормальное рассмотрение, что ноутбук довольно стар.

1
ответ дан 11 June 2014 в 02:36

Попробуйте эту конфигурацию, она хорошо работает на Lenovo ThinkPad L512 / L520:

thinkfan

sudo apt-get install -y thinkfan

Установки Настраивает модули ядра

echo "options thinkpad_acpi fan_control=1" > /etc/modprobe.d/thinkpad_acpi.conf

, модуль ядра Перезагрузки

modprobe -r thinkpad_acpi && modprobe thinkpad_acpi

Настраивает Перезапуск thinkfan

sudo sed -i 's|START=no|START=yes|' /etc/default/thinkfan
sudo sed -i 's|DAEMON_ARGS="-q"|DAEMON_ARGS="-q -b 1 -s 15"|' /etc/default/thinkfan

cat <<EOF> /etc/thinkfan.conf
hwmon /sys/devices/virtual/hwmon/hwmon0/temp1_input
(0, 0,  65)
(1, 65, 70)
(2, 70, 75)
(3, 75, 80)
(4, 80, 85)
(5, 85, 90)
(7, 90, 32767)
EOF

thinkfan демон

/etc/init.d/thinkfan restart
4
ответ дан 11 June 2014 в 02:36

Я использовал в своей Lenovo Thinkpad x220 (это - обновленный ответ, который имел отношение к системам с systemd

sudo -i
  • установка thinkfan

    apt install thinkfan
    
  • настройте модуль ядра

    echo "options thinkpad_acpi fan_control=1" > /etc/modprobe.d/thinkfan.conf
    
  • модуль ядра перезагрузки

    modprobe thinkpad_acpi
    
  • настройте значение по умолчанию thinkfan конфигурация

    sed -i 's|START=no|START=yes|' /etc/default/thinkfan
    sed -i 's|DAEMON_ARGS="-q"|DAEMON_ARGS="-q -b 1 -s 15"|' /etc/default/thinkfan
    
  • Проверьте свои датчики

    find /sys/devices -type f -name "temp*_input"
    

и это - результат в моей Lenovo Thinkpad x220:

/sys/devices/virtual/hwmon/hwmon0/temp1_input
/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp3_input
/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp2_input
  • запишите в /etc/thinkpad.conf на основе результатов выше

    tp_fan /proc/acpi/ibm/fan
    hwmon /sys/devices/virtual/hwmon/hwmon0/temp1_input
    hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp3_input
    hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
    hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp2_input
    (0,     0,      40)
    (1,     32,     55)
    (2,     54,     66)
    (3,     65,     76)
    (4,     75,     80)
    (5,     78,     85)
    (6,     82,     88)
    (7,     85,     32767)
    
  • Включите сервис, таким образом, он будет запущен автоматически в каждых полномочиях начальной загрузки и отбрасывания.

    systemctl enable thinkfan
    exit
    
  • Перезагрузите свой ноутбук

    systemctl enable thinkfan
    
  • После перезагрузки проверьте сервис

    systemctl status thinkfan.service
    

результат будет похож на это:

● thinkfan.service - simple and lightweight fan control program
   Loaded: loaded (/lib/systemd/system/thinkfan.service; enabled; vendor preset: enabled)
   Active: active (running) since Jum 2016-10-07 20:09:30 WIB; 28min ago
  Process: 2494 ExecStart=/usr/sbin/thinkfan (code=exited, status=0/SUCCESS)
 Main PID: 2496 (thinkfan)
   CGroup: /system.slice/thinkfan.service
           └─2496 /usr/sbin/thinkfan

Okt 07 20:09:30 thinkpad-x220 systemd[1]: Starting simple and lightweight fan control program...
Okt 07 20:09:30 thinkpad-x220 thinkfan[2494]: thinkfan 0.9.1 starting...
Okt 07 20:09:30 thinkpad-x220 thinkfan[2494]: Daemon PID: 2496
Okt 07 20:09:30 thinkpad-x220 systemd[1]: Started simple and lightweight fan control program.
6
ответ дан 11 June 2014 в 02:36

Для отладки скорости вентилятора и температуры я использую этот удобный однострочный код. Это может быть полезно.

while true; do echo -e "\n\n\n####################\n$(sensors)\n\n###\n$(uptime)\n###\n$(cat /proc/cpuinfo | grep -i "mhz")\n####################"; sleep 1; done

Необходимо установить и настроить lm-sensors.

Позвольте мне объяснить петлю.

Это цикл while, и он выполняется до тех пор, пока состояние истинно. , хотя верно. Поскольку состояние не меняется внутри цикла, он работает практически вечно. Чтобы выйти из цикла, вам нужно отменить его с помощью ctrl+c на клавиатуре.

Поэтому, пока состояние истинно, сделай что-нибудь. В этом случае выполните echo с параметром -e. Проверьте man echo, чтобы узнать, что он делает. Сначала я добавляю несколько разрывов строк \n и несколько символов решетки, чтобы визуально было лучше различать, на что вы смотрите.

Следующее, что я хочу повторить, это результат сенсоров. Когда вы запускаете sensors в своем терминале, он что-то возвращает — результат. Таким образом, в bash вы можете эхо вывести результат чего-либо, обернув вокруг него $().

Опять же, я хочу иметь некоторые разделения, чтобы различать информацию.

Тогда я хочу посмотреть, какая сейчас нагрузка на компьютер. Итак, я повторяю результат uptime.

И опять же, я хочу разлуки.

Чтобы узнать, с какой скоростью процессор работает в данный момент, я просматриваю /proc/cpuinfo и grep с помощью -i (checkout man grep для получения подробной информации об этом) для МГц , так как это информация, которую я хотел бы видеть.

С помощью ; A заканчиваю первую часть цикла. Поскольку цикл while не имеет ограничений на частоту обработки, он будет работать очень быстро. Поэтому я добавляю sleep -1, чтобы сделать паузу на секунду. Я также заканчиваю эту команду ; и, чтобы сообщить циклу, что он может закончиться прямо здесь, я заканчиваю цикл с done в конце.

Надеюсь, это объяснение легко понять.

1
ответ дан 17 December 2019 в 12:59

Другие вопросы по тегам:

Похожие вопросы: