Обладаю я великолепнейшим ноутбуком Lenovo ThinkPad T430. Сделал апгрейд, установив максимально возможный процессор Core i7 3840QM, а у него TDP 45W против штатных 35 и он вырубался под тяжёлой нагрузкой.
Спустя 4 месяца дождался с Алиэкспресса улучшенную систему охлаждения от версии с дискретной видеокартой. Отличаются отдельным ушком.
Стало лучше, но при очень большой нагрузке в док-станции с двумя мониторами он всё равно отрубался, несмотря на хорошую дорогую термопасту. И тут я стал гуглить и обнаружил великолепный интерфейс к ACPI, позволяющий управлять вентилятором, и выяснил, что штатно система при высокой температуре крутит вентилятор на 5400 rpm, хотя может быть 5900. 500 оборотов это не в тапки пысать! Если выдать команду в файл-устройство:
# echo level 7 > /proc/acpi/ibm/fan
то выяснится, что скорость вентилятора будет 5400 оборотов. Чтобы выжать максимум, надо выдать команду
# echo full-speed >/proc/acpi/ibm/fan
Для этого есть демон thinkfan.
- Устанавливаем thinkfan из штатных репозиториев:
# apt-get install thinkfan
Дописываем опцию для модуля ядра thinkpad в файл /etc/modprobe.d/thinkpad_acpi.confoptions thinkpad_acpi fan_control=1
и перезагружаемся. - Пишем конфиг /etc/thinkfan.conf. Первая строка — откуда брать температуру, вторая группа записей — первая цифра это номер уровня скорости вентилятора (0-7), вторая — минимальное значение, при котором уходить на предыдущий, третья — максимальное, при котором уходить на следующий.
hwmon /sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_input (0, 0, 55) (1, 48, 60) (2, 50, 61) (3, 52, 63) (4, 56, 65) (5, 59, 66) (7, 63, 87) ("level full-speed", 85, 131072)
3. Строковое значение не даст thinkfan запуститься с ошибкой:
мар 11 22:41:41 remotehost thinkfan[7825]: Invalid fan level string. This check can be disabled by using DANGEROUS mode.
поэтому нужно дописать опцию -D в /etc/default/thinkfan. Получится вот так:
4. Заставляем Thinkfan стартовать вместе с системой и запускаем его:
DAEMON_ARGS="-q -D"
# systemctl enable thinkfan
# systemctl start thinkfan
После всего вышеперечисленного для проверки можно запустить взятую из репозиториев утилиту stress
командой stress --cpu 8
, дабы задать процессору жару. По результатам моих испытаний после прогрева до 87 градусов вентилятор уходит на запредельный режим и позволяет удержать температуру в допустимых пределах. По итогу, спустя 30 минут работы утилиты stress
на всех 8 ядрах температура поднялась максимум до 98 градусов и процессор не ушёл ни в троттлинг, ни в защиту и аварийное выключение.
Кстати говоря, можно спокойно играться с диапазонами, скажем, выключив вентилятор до 60-65 градусов вообще. А зачем он?
Например, с помощью такого профиля:(0, 0, 65)
(1, 60, 70)
(2, 65, 72)
(3, 70, 75)
(4, 73, 80)
(5, 78, 85)
(7, 83, 87)
("level full-speed", 85, 131072)