Як контролювати швидкість обертання вентилятора?


177

Як я можу контролювати швидкість вентилятора комп'ютера?

У Windows є чудова програма під назвою SpeedFan .


1
Я розміщую тут просте рішення Cron для карт ATI askubuntu.com/a/875241/375427
Павел Нієдоба

1
На Linux fancontrolналаштовано за допомогою pwmconfig. Використовуйте watch sensorsдля спостереження за датчиками під навантаженням процесора та GPU. Використовуйте ці значення на холостому ходу та повне навантаження для встановлення MINTEMPта, MAXTEMPвідповідно, з INTERVAL=1. Це збільшує ваші шанувальники в режимі реального часу, коли навантаження збільшується. Це найбільш активне охолодження, що забезпечує базову лінію для подальшого налаштування. Запустіть pwmconfigодин раз, а потім відредагуйте /etc/fancontrolбезпосередньо. Бігайте sudo service fancontrol restartпісля кожного підправлення.
Домінік Серісано

Відповіді:


149

Примітка перед початком:

Ця функціональність залежить як від вашого обладнання, так і від програмного забезпечення. Якщо ваше обладнання не підтримує контроль швидкості вентилятора або не показує їх в ОС, дуже ймовірно, що ви не могли використовувати це рішення. Якщо це так, але програмне забезпечення (ака-ядро) не знає, як ним керувати, вам не пощастить.


  1. Встановіть lm-датчики та пакети вентиляторів .
  2. Налаштуйте lm-датчики

    1. У термінальному типі sudo sensors-detectі відповідь ТАК на всі ТАК / немає питань.
      (Потенційно це може пошкодити вашу систему або призвести до збоїв у системі. Для багатьох систем це безпечно. Немає гарантії, що цей процес не пошкодить вашу систему назавжди, я просто думаю, що шанс такого критичного виходу дійсно дуже низький .Збереження всієї вашої роботи для можливих збоїв / заморожування / перезапуску перед тим, як обробляти конфігурацію системи, завжди є хорошою ідеєю. Якщо ви не впевнені, прочитайте коментарі та спробуйте пошукати в Інтернеті та отримати деякий огляд на високому рівні, перш ніж ТАК все, можливо, вибірково з вашими YES-іми все одно буде достатньо)
    2. В кінці датчиків виявлення буде показаний список модулів, які потрібно завантажити. Введіть "так", щоб сенсори-детектори вставляли ці модулі в / etc / модулі або редагували / etc / модулі самостійно.
    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. Налаштування сервісу вентиляторів

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

У моєму випадку /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

Ось корисна інформація про налаштування та те, що вони насправді роблять


111
Я спробував слідувати вашому керівництву, але затримався на етапі третьої з цією помилкою: / usr / sbin / pwmconfig: Не встановлено сенсорних модулів, здатних на підтримку pwm
Tamale

6
У мене була така ж проблема з pwmconfig, поки я не запустив сенсори-детектори
Gearoid Murphy

5
Що робити, якщо для детектування sudo датчиків не з'являються жодні датчики? -> Вибачте, датчиків не виявлено. Або у вашої системи немає датчиків, або вони не підтримуються, або вони підключені до адаптера I2C або SMBus, який не підтримується. Якщо ви дізнаєтеся, які мікросхеми є на вашій дошці, перевірте lm-sensors.org/wiki/Пристрої щодо стану драйверів.
H3R3T1K

5
Якщо у вас виникають проблеми, не забудьте перевірити свій dmesg на повідомлення про помилки. У моєму випадку останні зміни ядра не дозволили мені завантажити необхідний драйвер, і мені довелося додати acpi_enforce_resources=laxдо своїх параметрів ядра, щоб повернути стару функціональність. Дивіться також: goo.gl/tUcr36
bukzor

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 встановлено значення "Так", тобто має бути рядок, що говорить:

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. Перезавантажте систему. Все має працювати зараз. Для того, щоб перевірити, чи правильно працює запуск, використовуйте

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)

2
Один коментар: ви хочете мати більше перекриття значень температури, як зазначено в таблиці. Особливо в асортименті 45-55. В іншому випадку швидкість вентилятора продовжує гортати. Це дуже тривожно. (Постійний шум вентилятора не турбує так сильно, як коливається шум.)
HongboZhu

1
Ми (спільнота Linux) насправді смотримо на UX. :( Встановлення швидкості обертання вентилятора не повинно бути кроком у 10 кроків.
Олександр

2
@Alexander Якщо ви дуже сильно ставитеся до цього, ви можете написати та підтримувати невелику програму для автоматизації цього процесу.
Кріс

1
@Kris Я б більше схильний змінити оригінальну програму, щоб не було такого безглуздого процесу конфігурації. На жаль, у мене немає блокноту, я просто проходив повз цю посаду, шукаючи варіанти управління вентиляторами, доступні там.
Олександр

/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

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 RPM CPU: + 55,0 ° C
Філборборн

Це працює для hp?
Безсмертний гравець

1
@ безсмертний гравець, я думаю, це не буде. Модуль ядра розроблений спеціально для машин Dell.
morhook

Можливо додати, що для Apple є macfanctldі mbpfanдля ThinkPad єthinkfan
rubo77

7

Встановити та налаштувати пакети lm-датчиків та вентиляторів :

sudo apt-get install lm-sensors fancontrol

Документація для їх налаштування доступна на їхніх сторінках.

Це функція, яку повинен забезпечувати сумісний з ACPI BIOS, але, здається, більшість виробників материнських плат не намагаються слідувати стандарту.


12
Чи можете ви надати більш детальні інструкції щодо їх встановлення та використання?
Стефано Палацо

Ви можете знайти це на сторінці "man" або на веб-сайті www.lm-sensors.org.
psusi

40
Я знаю, я просто думав, що ця відповідь може бути кращою :)
Стефано Палаццо

Посилання, яке дав @psusi, не працює, нове посилання тут: github.com/groeck/lm-sensors
Світлана Бєлкін

1
Я думаю, у вас неправильно написане ім’я користувача.
markroxor

2

Ось оновлена ​​версія відповіді, що рекомендує 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
    

1
Дивовижно. Це вирішило це для мого T490 з Pop_OS 19.04. Вентилятор все ще включається, але не весь час.
Нітай

1

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

Як отримати доступ до налаштувань UEFI : перезавантажте комп'ютер, і ключ для їх введення, швидше за все, з’явиться в одному з кутів (наприклад Press F2 to enter UEFI setup)

Налаштування ASRock UEFI для управління вентилятором


Це AskUbuntu, а не AskUEFI :)
Маартен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.