ThinkPad T430, i3840QM, Linux и перегрев

Обладаю я великолепнейшим ноутбуком Lenovo ThinkPad T430. Сделал апгрейд, установив максимально возможный процессор Core i7 3840QM, а у него TDP 45W против штатных 35 и он вырубался под тяжёлой нагрузкой.

Спустя 4 месяца дождался с Алиэкспресса улучшенную систему охлаждения от версии с дискретной видеокартой. Отличаются отдельным ушком.

Shopee Malaysia | Free Shipping Across Malaysia

Стало лучше, но при очень большой нагрузке в док-станции с двумя мониторами он всё равно отрубался, несмотря на хорошую дорогую термопасту. И тут я стал гуглить и обнаружил великолепный интерфейс к ACPI, позволяющий управлять вентилятором, и выяснил, что штатно система при высокой температуре крутит вентилятор на 5400 rpm, хотя может быть 5900. 500 оборотов это не в тапки пысать! Если выдать команду в файл-устройство:
# echo level 7 > /proc/acpi/ibm/fan
то выяснится, что скорость вентилятора будет 5400 оборотов. Чтобы выжать максимум, надо выдать команду
# echo full-speed >/proc/acpi/ibm/fan

Для этого есть демон thinkfan.

  1. Устанавливаем thinkfan из штатных репозиториев:
    # apt-get install thinkfan
    Дописываем опцию для модуля ядра thinkpad в файл /etc/modprobe.d/thinkpad_acpi.conf
    options thinkpad_acpi fan_control=1
    и перезагружаемся.
  2. Пишем конфиг /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. Получится вот так:
DAEMON_ARGS="-q -D"
4. Заставляем Thinkfan стартовать вместе с системой и запускаем его:
# 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)


Комментирование закрыто