Как контролировать скорость вентилятора?

178

Как я могу контролировать скорость вращения вентилятора компьютера?

На Windows есть замечательная программа под названием SpeedFan .

grizwako
источник
1
Я поставил простое решение cron для карт ATI здесь askubuntu.com/a/875241/375427
Павел Недоба
1
На Linux, fancontrolнастроен с помощью pwmconfig. Используется watch sensorsдля наблюдения за датчиками под нагрузкой процессора и графического процессора. Используйте эти значения на холостом ходу и при полной нагрузке для установки MINTEMPи MAXTEMPсоответственно с INTERVAL=1. Это увеличивает ваши вентиляторы в режиме реального времени по мере увеличения нагрузки. Это наиболее активное охлаждение, обеспечивающее основу для дальнейшей настройки. Запустите pwmconfigодин раз, а затем отредактируйте /etc/fancontrolнапрямую. Запускать sudo service fancontrol restartпосле каждого твика.
Доминик Черизано

Ответы:

149

Примечание перед началом:

Эта функциональность зависит как от вашего оборудования, так и от программного обеспечения. Если ваше оборудование не поддерживает элементы управления скоростью вентилятора или не показывает их ОС, очень вероятно, что вы не сможете использовать это решение. Если это так, но программное обеспечение (также известное как ядро) не знает, как им управлять, вам не повезло.


  1. Установите пакеты lm- sensor и fancontrol .
  2. Настроить lm-сенсоры

    1. В терминале введите sudo sensors-detectи ответьте ДА на все ДА / нет вопросов.
      (Потенциально, это может повредить вашу систему или вызвать сбой системы. Для многих систем это безопасно. Нет никакой гарантии, что этот процесс не повредит вашей системе навсегда, я просто думаю, что вероятность такого критического сбоя действительно очень мала Сохранение всей вашей работы для возможных сбоев / зависаний / перезапусков перед обработкой конфигурации системы - это всегда хорошая идея. Если вы не уверены, прочитайте комментарии и попробуйте поискать в Интернете и получить общий обзор, прежде чем ДА - все, возможно, отборных с вашими ДА-есами все равно будет достаточно)
    2. В конце обнаружения датчиков будет отображен список модулей, которые необходимо загрузить. Введите «yes», чтобы датчики-детекторы вставили эти модули в / etc / modules, или отредактируйте / etc / modules самостоятельно.
    3. Беги sudo service module-init-tools restart. Это прочитает изменения, которые вы сделали /etc/modulesв шаге 3, и вставит новые модули в ядро.
      • Примечание . Если вы работаете в Ubuntu 13.04 или более поздней версии, эту команду третьего шага следует заменить на sudo service kmod start.
  3. Настроить фанконтроль

    1. В терминальном типе sudo pwmconfig. Этот сценарий остановит каждый вентилятор на 5 секунд, чтобы выяснить, какими вентиляторами можно управлять с помощью какого ШИМ. После прохождения скрипта через все вентиляторы вы можете настроить, какой вентилятор соответствует какой температуре.
    2. Вам нужно будет указать, какие датчики использовать. Это немного сложно. Если у вас есть только один вентилятор, обязательно используйте датчик температуры для вашего ядра, чтобы основывать скорость управления вентилятором.
    3. Запустите подсказки и сохраните изменения в расположении по умолчанию.
    4. Внесите коррективы для точной настройки /etc/fancontrolи используйте их sudo service fancontrol restartдля внесения изменений. (В моем случае я установил интервал в 2 секунды.)
  4. Настройка FanControl службы

    1. Беги sudo service fancontrol start. Это также заставит службу fancontrol запускаться автоматически при запуске системы.

В моем случае /etc/fancontrolдля процессора я использовал:

Настройки для hwmon0 / device / pwm2:
(зависит от hwmon0 / device / temp2_input) (управляет hwmon0 / device / fan2_input)

INTERVAL=2
MINTEMP=40  
MAXTEMP=60  
MINSTART=150  
MINSTOP=0  
MINPWM=0  
MAXPWM=255 

а в другой системе это:

INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/nct6775.2608
DEVNAME=hwmon1=coretemp hwmon2=nct6779
FCTEMPS=hwmon2/pwm2=hwmon1/temp2_input
FCFANS=hwmon2/pwm2=hwmon2/fan2_input
MINTEMP=hwmon2/pwm2=49
MAXTEMP=hwmon2/pwm2=83
MINSTART=hwmon2/pwm2=150
MINSTOP=hwmon2/pwm2=15
MINPWM=hwmon2/pwm2=14
MAXPWM=hwmon2/pwm2=255

Вот некоторая полезная информация о настройках и что они действительно делают

GrizzLy
источник
111
Я пытался следовать вашему руководству, но застрял на третьем шаге с этой ошибкой: / usr / sbin / pwmconfig: Там не установлены модули датчиков с поддержкой pwm
tamale
6
У меня была такая же проблема с pwmconfig, пока я не запустил
функцию
5
Что делать, если sudo Sensor-Detect не предлагает никаких датчиков? -> Извините, датчики не обнаружены. Либо в вашей системе нет датчиков, либо они не поддерживаются, либо они подключены к адаптеру I2C или SMBus, который не поддерживается. Если вы узнаете, какие чипы у вас на плате, проверьте lm-sensors.org/wiki/Devices для получения статуса водителя.
H3R3T1K
5
Если у вас возникли проблемы, обязательно проверьте dmesg на наличие сообщений об ошибках. В моем случае недавние изменения в ядре не позволили мне загрузить необходимый драйвер, и мне пришлось добавить acpi_enforce_resources=laxк своим параметрам ядра, чтобы вернуть старую функциональность. Смотрите также: goo.gl/tUcr36
букзор
19
Я пробовал это, и я не могу получить больше, чем sudo pwmconfig, потому что я получаю: «Не установлены модули датчиков с поддержкой pwm». Это происходит после того, как команда датчиков обнаружила «цифровой термодатчик Intel». Я также попробовал этот параметр ядра. Кто-нибудь может предложить решение?
Sman789
44

Если у вас есть ThinkPad , есть программное обеспечение, thinkfanкоторое делает именно это. Как видно из названия, оно специально сделано для ThinkPads ( thinkpad_acpi).

Программное thinkfanобеспечение доступно в стандартных репозиториях Ubuntu, но для его настройки требуется несколько шагов.

Вот простое пошаговое руководство:

http://staff.science.uva.nl/~kholshei/thinkfan_guide/

(в основном это переведенная версия этого немецкого руководства: http://thinkwiki.de/Thinkfan )


Соответствующая информация из почты:

Шаг 1. Установите программное обеспечение thinkfan и датчики:

sudo apt-get install thinkfan lm-sensors

Шаг 2. Убедитесь, что демон управляет вентилятором, отредактировав файл thinkpad.conf:

sudo nano /etc/modprobe.d/thinkfan.conf

добавив следующую строку:

options thinkpad_acpi fan_control=1

Шаг 3. Сделайте так, чтобы демон автоматически загружался при запуске, отредактировав файл:

sudo nano /etc/default/thinkfan

убедившись, что клавиша СТАРТ установлена ​​на да, то есть должна быть строка, которая говорит:

START=yes

Шаг 4. Определите датчики вашего ноутбука:

sudo sensors-detect

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

Шаг 5. Загрузите новые модули. В Ubuntu 13.10 это сделано:

sudo service kmod start

в то время как для предыдущих версий, таких как 13.04, вместо этого вам нужно будет выполнить:

sudo service module-init-tools start

Шаг 6. Определите, какие датчики используются:

sensors

(те, которые указывают 0 градусов, не используются, я не знаю, почему они тоже «обнаружены»). Помните, какие из них используются.

Шаг 7. Узнайте полные пути этих датчиков:

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

Вывод должен быть списком путей, таких как / sys / devices / ...

Шаг 8. Скопируйте и вставьте пути к датчикам в файл конфигурации /etc/thinkpad.conf. Для этого сначала откройте файл:

sudo nano /etc/thinkfan.conf

Там уже должна быть строка, как

#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3) 

(# -символ означает, что эта строка закомментирована). Добавьте строку, начинающуюся с датчика (без символа #) и скопируйте и вставьте первый датчик. Повторите это, если у вас есть более одного датчика. Например, на моей машине вывод в шаге 7 дает

/sys/devices/virtual/hwmon/hwmon0/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp3_input
/sys/devices/platform/thinkpad_hwmon/temp4_input
/sys/devices/platform/thinkpad_hwmon/temp5_input
/sys/devices/platform/thinkpad_hwmon/temp6_input
/sys/devices/platform/thinkpad_hwmon/temp7_input
/sys/devices/platform/thinkpad_hwmon/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp8_input
/sys/devices/platform/thinkpad_hwmon/temp2_input
/sys/devices/platform/coretemp.0/temp4_input
/sys/devices/platform/coretemp.0/temp2_input 

В моей машине используются те, которые указаны в первой и последних двух строках, поэтому я добавил три строки:

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

Шаг 9. Наконец, мы можем установить уровни скорости вентилятора в файле конфигурации. Откройте файл /etc/thinkpad.conf, если он еще не был открыт.

sudo nano /etc/thinkfan.conf

Уровни вентиляторов, которые я использую на ThinkPad X201:

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767) 

Последняя строка обеспечивает полную скорость вращения вентилятора (127 = «отключено», т.е. не регулируется). Вы можете играть с этими уровнями, чтобы соответствовать вашим потребностям / желаниям, но ПОЖАЛУЙСТА, БУДЬТЕ ОСТОРОЖНЫ!

Шаг 10. Перезагрузка. Все должно работать сейчас. Чтобы проверить, правильно ли работает Thinkpad, используйте

sudo thinkfan -n

который запускает thinkfan в подробном режиме. Возможно, вы захотите сначала остановить демон thinkfan:

sudo /etc/init.d/thinkfan stop

Если вы хотите снова запустить демон thinkfan, введите:

sudo /etc/init.d/thinkfan start

Просто чтобы завершить, мой файл конфигурации /etc/thinkfan.conf:

# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# sensor /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.

# Syntax:
# (LEVEL, LOW, HIGH)
# LEVEL is the fan level to use (0-7 with thinkpad_acpi)
# LOW is the temperature at which to step down to the previous level
# HIGH is the temperature at which to step up to the next level
# All numbers are integers.
#

# I use this on my T61p:
#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)

#(0, 0, 55)
#(1, 48, 60)
#(2, 50, 61)
#(3, 52, 63)
#(4, 56, 65)
#(5, 59, 66)
#(7, 63, 32767)


# My settings for my ThinkPad X201: (kris)

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, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767)
Kris
источник
2
Один комментарий: вы хотите иметь большее перекрытие значений температуры, как закомментировано в таблице. Особенно в диапазоне 45-55. В противном случае скорость вращения вентилятора постоянно меняется. Это очень тревожно. (Постоянный шум вентилятора не беспокоит так сильно, как колеблющийся шум.)
HongboZhu
1
Мы (сообщество Linux) действительно сосем UX. :( Установка скорости вентилятора не должна быть 10-ступенчатым процессом.
Александр
2
@ Александр Если вы сильно настроены по этому поводу, вы можете написать и поддерживать небольшую программу для автоматизации этого процесса.
Крис
1
@ Крис Я был бы более склонен изменить оригинальную программу, чтобы не иметь такой бессмысленный процесс конфигурации. Увы, у меня нет ThinkPad, я просто проходил мимо этого поста в поисках доступных вариантов управления вентилятором.
Александр
/etc/modprobe.d/thinkfan.conf не существует в моем Ubuntu 14.04. Что теперь?
Youda008
14

Для нескольких компьютеров Dell вы можете установить пакет i8kutils:

sudo apt install i8kutils

Если у вас не протестированный Dell (например, мой Dell XPS 14z), вам может потребоваться принудительная загрузка модуля ядра:

sudo modprobe i8k force=1
morhook
источник
2
У меня Dell XPS 14 L421X. <code> сенсоры </ code> не показали поклонников. после установки пакета i8kutils я получаю датчики coretemp-isa-0000 Адаптер: ISA-адаптер Физический идентификатор 0: + 54,0 ° C (высокий = + 87,0 ° C, крит = + 105,0 ° C) Ядро 0: + 50,0 ° C (высокий = + 87,0 ° C, крит = + 105,0 ° C) Ядро 1: + 52,0 ° C (высокая = + 87,0 ° C, крит = + 105,0 ° C) Адаптер i8k-virtual-0: виртуальное устройство справа Вентилятор: 0 об / мин Процессор: + 55,0 ° C
филколборн
Это работает для HP?
Бессмертный игрок
1
@ бессмертный игрок, я думаю, что не будет. Модуль ядра специально разработан для компьютеров Dell.
Morhook
Может быть , добавить, что для Apple , есть macfanctldи mbpfanи ThinkPad, естьthinkfan
rubo77
7

Установите и настройте пакеты lm- sensor и fancontrol :

sudo apt-get install lm-sensors fancontrol

Документация по их настройке доступна на их страницах руководства.

Эта функция должна предоставляться в ACPI-совместимом BIOS, но, похоже, большинство производителей материнских плат не следуют стандарту.

psusi
источник
12
Можете ли вы предоставить более подробные инструкции по их установке и использованию?
Стефано Палаццо
Вы можете найти это на странице руководства или на www.lm-sensors.org.
psusi
40
Я знаю, я просто думал, что этот ответ может быть лучше :)
Стефано Палаццо
Ссылка, которую дал @psusi, не работает, новая ссылка здесь: github.com/groeck/lm-sensors
Светлана Белкин
1
Я думаю, что у вас есть неправильное имя пользователя.
Маркроксор
3

Вот обновленная версия для ответа, рекомендующего thinkfan , работающего с Ubuntu 19.04.

Настроить

Приведенные ниже инструкции относятся к любому ThinkPad, который имеет /proc/acpi/ibm/fanи /proc/acpi/ibm/thermal"устаревшие" устройства. Это позволяет избежать необходимости установки lm-sensorsпакета.

Тем не менее, вы все равно можете установить, lm-sensorsчтобы увидеть больше датчиков температуры и получить более детальный контроль над вашими вентиляторами (а именно, с шагом 256 ШИМ, а не с фиксированными шагами "0-7 и 127" с устаревшими устройствами. Кроме того, thinkfanтеперь может работать с lm-sensorsдатчиками, это больше не относится к компьютерам IBM / Lenovo ThinkPad. Об man thinkfanиспользовании этих «расширенных» сенсорных устройств см. также актуальная информация в немецком Thinkwiki .

  1. Установите необходимый пакет:

    sudo apt-get install thinkfan
    
  2. Добавьте следующую строку в /etc/modprobe.d/thinkfan.conf:

    options thinkpad_acpi fan_control=1
    
  3. Настройте thinkfanслужбу на автоматический запуск при запуске системы:

    1. Добавить строку START=yesв/etc/default/thinkfan

    2. Выполните следующую команду ( источник ):

      sudo systemctl enable thinkfan.service
      
  4. Приспосабливайте /etc/thinkfan.confс помощью правильных указателей к нужным устройствам и уровням вентиляторов. Комментарии там предоставляют документацию. На любом Thinkpad с устаревшим вентилятором и тепловыми устройствами следующее должно обеспечить хорошую отправную точку (также должно быть безопасно для жесткого диска, см. Комментарии в файле для получения дополнительной информации). Обратите внимание, что здесь используются новые ключевые слова - те, что в другом ответе выше, не рекомендуются.

    tp_fan /proc/acpi/ibm/fan
    tp_thermal /proc/acpi/ibm/thermal
    
    (0, 0, 47)
    (1, 43, 52)
    (2, 48, 55)
    (3, 51, 58)
    (4, 54, 63)
    (5, 59, 70)
    (6, 66, 79)
    (7, 74, 92)
    (127, 85, 32767) 
    

Контрольная работа

Чтобы проверить настройки (после перезагрузки), вы можете сделать следующее:

  • В одном окне терминала запустите thinkfanв недемонизированном режиме, чтобы вы могли видеть его сообщения:

    sudo service thinkfan stop && sudo thinkfan -n
    
  • В другом окне терминала следите за текущими значениями температуры, поставляя ваше устройство измерения температуры, если оно отличается:

    while true; do sleep 1; cat /proc/acpi/ibm/thermal; done
    
  • В еще одном окне терминала нагрейте процессор (и прервите его Ctrl+, Cесли что-то в управлении температурой не работает должным образом):

    sudo apt install stress-ng
    stress-ng --cpu-1
    
tanius
источник
1
Потрясающие. Это решило это для моего T490 с Pop_OS 19.04. Вентилятор все еще включается, но не все время.
Нитай
1
В новых устройствах ThinkPad их нет /proc/acpi/ibm/thermal, поэтому необходимо проделать дополнительную работу для этого случая (это удобно указано на этой замечательной немецкой странице ThinkWiki). Кажется, у меня все получилось, поэтому я могу обновить ваш ответ или создать другой. Спасибо!
Клифф
1

Попробуйте посмотреть в настройках UEFI (или BIOS) вашего ПК. Там может быть установка для управления вентилятором , где вы можете поставить вентилятор в Silent Mode, Performance Mode, Full Speed, Customizeи т.д.

Как получить доступ к настройкам UEFI : перезагрузите компьютер, и ключ для их ввода, скорее всего, появится в одном из углов (например Press F2 to enter UEFI setup)

Настройка ASRock UEFI для управления вентиляторами

xjcl
источник
Это AskUbuntu, а не AskUEFI :)
Maarten