Nvidia fan speed control linux

Температура видеокарты в Linux

В одной из предыдущих статей я рассказывал, как посмотреть температуру процессора в Linux. Для этих целей можно использовать утилиту sensors, а для просмотра более подробной информации в графическом интерфейсе есть psensor. За температурой видеокарты тоже нужно следить. Обычно, нагрев видеокарты можно отследить в программах для её тестирования, например в том же Unigine Heaven и в других подобных продуктах, но есть ещё один способ.

Температуру видеокарт Nvidia в Linux можно посмотреть с помощью утилиты, поставляемой вместе с проприетарными драйверами. С её же помощью можно настроить обороты кулера на видеокарте. Таких утилит на самом деле несколько. Рассмотрим их в этой статье.

Температура видеокарты в Linux

1. Утилиты sensors и psensor

Набор программ sensors позволяет отображать не только температуру процессора, но и видеокарты. Здесь она отображается как PCI Adapter, однако иногда в этом пункте может отображаться и температура процессора, поэтому будьте внимательны и посмотрите другие способы. Сначала надо установить lm_sensors, откройте терминал и наберите:

sudo apt install lm_sensors

Затем необходимо обнаружить все сенсоры в системе:

Читайте более подробно об этом в статье про температуру процессора. А сейчас мы посмотрим температуру:

Или в графическом интерфейсе:

2. Утилиты Nvidia

Для этого пункта необходимо, чтобы были установлены проприетарные драйверы. Чтобы посмотреть текущую температуру видеокарты, откройте утилиту Nvidia Settings из главного меню системы и перейдите на вкладку Thermal Settings:

Здесь в графе Temperature вы увидите текущую температуру видеокарты. Другой способ посмотреть температуру — утилита nvidia-smi. Она работает только через терминал:

Здесь вы увидите количество оборотов кулера и текущую температуру видеокарты. А ещё можно посмотреть только температуру:

nvidia-smi -q -d temperature

Настройка кулера видеокарты

Для того чтобы настроить частоту оборотов кулера, надо использовать утилиту Nvidia Settings. Сначала выполните:

sudo nvidia-xconfig -a —cool-bits=28

Затем установите нужное число оборотов кулера, например 90 процентов:

nvidia-settings -a ‘[gpu:0]/GPUFanControlState=1’ -a ‘[fan:0]/GPUTargetFanSpeed=90’

Кулер на видеокарте сразу же начнёт вращаться с заданной скоростью. Надеюсь, эта информация была вам полезна.

Нет похожих записей

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

4 комментария

Статичная скорость кулера это костыль,лишний шум в общем ужас, лучше использовать специализированный софт и настроить обороты согласно температурам. У карт от зеленый в драйверах есть баг (по другому назвать я это не могу) видиокарта которая умеет работать на пасиве постоянно держит высокие частоты тем самым греется, в этом случае если нужная тишина то можно просто заблокировать уровень производительности на самом минимальном. «options nvidia NVreg_RegistryDwords=»PowerMizerEnable=0x1; PowerMizerDefaultAC=0x3;» >> /etc/modprobe.d/99-nvidia-registry.conf» Единственный минус если нужна будет вся мощь то придется делать ребут. Я специально брал игровую карту которая без проблем будет работать в простое без включения вертушек, и включать их только при нагрузке но в лине все как всегда)))

А как настроить чтобы не было превышения определенной тем-ры карты? Чтобы карта не перегревалась?

Автор пишет:
«Для того чтобы настроить частоту оборотов кулера, надо использовать утилиту Nvidia Settings. Сначала выполните:
sudo nvidia-xconfig -a —cool-bits=28″

Ищем на странице:
«Option «Coolbits» «integer»

When «4» (Bit 2) is set in the «Coolbits» option value, the nvidia-settings Thermal Monitor page will allow configuration of GPU fan speed, on graphics boards with programmable fan capability.»

После выставления —cool-bits иксы надо перезапустить, ну, или просто комп перезагрузить.
После этого в графическом интерфейсе nvidia-settings в разделе «Thermal Settings» появится чекбокс, установив который, можно в ручную устанавливать обороты вентилятора, просто двигая бегунок мышкой, или вписав нужное число в поле ниже и нажав Apply.

Следует отнестись к этому с ОСОБОЙ ОСТОРОЖНОСТЬЮ И ВНИМАНИЕМ! Я не уверен, что в биосе видео карты есть защита от дурака, и она повысит обороты автоматом при достижении критической температуры. Сам не проверял, кому охота, отпишитесь потом, выжила видюшка или нет =)

Читайте также:  Dwar server files windows

Кому лень руками, ниже скриптик, найденный на просторах интернета, хотя, ПО от производителя и само хорошо регулирует обороты, но, всё же есть косяки, из-за которых приходится использовать скрипты.

DELAY=1
MIN_TEMP=60
MAX_TEMP=75

CARDS_NUM=`nvidia-smi -L | wc -l`

for ((i=0; i /dev/null
if [ «$?» -ne 0 ]; then
exit 1;
fi
done

echo «GPUFanControlState set to 1 for all cards»

while true
do
echo «#################»
echo «$(date +»%d/%m/%y %T»)»
for ((i=0; i /dev/null
if [ «$?» -ne 0 ]; then
exit 1;
fi
# ######
nvidia-settings -a [fan:$i]/GPUTargetFanSpeed=$FAN_SPEED > /dev/null
echo «GPU$ $°C -> $
done
sleep $DELAY
done

пы/сы: Всё на свой страх и риск, естественно..

Источник

How to control Nvidia graphics card Fan Speed Automatically in Linux

By countercookie
Post date

In linux, the fan speed is not controlled by default and the card itself auto adjusts the fan speed; in this tutorial I’m going to teach a way to Automatically and Manually control the fan speed of an Nvidia graphics card on Linux with proprietary driver s at Boot and Reboot.
1.Controlling fan speed Manually (Mandatory configuration changes)

Nvidia doesn’t enable this feature by default and it’s on the user to enable it using the command line.
Back in the days, it used to be nvclock but the support was dropped in 2010. Here’s a short guide on how to control the fan using Nvidia X Server Settings.
The ‘Nvidia X server Settings’ application is installed along with the proprietary driver.The following command needs to be executed in Terminal to enable fan control in Nvidia X server Settings:

Note that this might not work on some distributions and you may be required to edit /etc/xorg.conf.d/20-nvidia.conf and add the following lines:

Note: You may want to change the Coolbits value to your own needs. The reference sheet is available at http://download.nvidia.com/XFree86/Linux-… But it’s recommended to keep it at 28 to enable all the features.

After this, a reboot or a logout is required to apply the changes.

After the reboot/login, open the NVIDIA X Server Settings application

Go to the ‘Thermal Settings’ section and you can control the fan speed by your own hands:

2.Controlling fan speed Automatically at boot with a script (Step 1 required)

Now this was only controlling it manually through the nvidia-settings software. These changes will not apply at boot and do not auto adjust; but the changes were required in order to enable fan control.
I found a little program on github to control the fan speed with a fan curve:

Download the program from github with this command:

after that, cd to the directory which it downloaded in:

now we see a few files:

The only file which needs to be modified is the config file; inside this file, fan curve and some other options can be set; here are some of the important ones:

Now in this example; the fan speed would be 30% at the temperature of 45 Celsius, 37% at 55 Celsius and so on. after changing the values to your preference, save the changes.
The fan speed is controlled by file temp.sh . First make the script, executable with the command below:

Then run the script:

If everything is working fine, the fan speed will adjust and you’ll see the changes on your terminal. Now stop the script by using CTRL+C .

Now if I want the script to run at reboot without being bothered; it can be added to the startup applications manager of the DE(kde has

/.config/autostart-scripts/) or add it to

/.xprofile . The latter is highly recommended since it will start whenever your X server has started and every distribution supports it.

If you want to add it to your Desktop Environment’s startup application manager; just simply search it and add the temp.sh script wherever you saved it. Every Desktop Environment is different and the process is super easy; so I’m not including it in this tutorial. You can search for it for your own Desktop Environment.

To add this script to

/.xprofile and make it executable; do as follows:

Читайте также:  Simcity 4 вылетает windows 10

Or just edit it with your own text editor. Note that this file might not exist in some cases; but it will execute anyways.

Save the file and wallah! Now the script will run and auto adjust the fan speed by the curve set at boot.

3.Controlling fan speed Automatically at boot with the Green With Envy GUI

There is a nice GUI to properly control Nvidia graphics cards in linux called Green With Envy or GWE for short.

It’s not available in ubuntu’s official repos as of now but it’s available on flatpak . Setup flatpak using this link: https://flatpak.org/setup/.

After setting up flatpak; install GWE with the following commands:

After that, you can run it with the following command:

Working with the GUI is pretty easy and straightforward(Hell, that’s why I introduced it) and doesn’t require explanation.

This program can be added to startup by adding the above to

/.xprofile ; To do so, execute the following:

By default, this program cannot add itself to startup but the above will work around that.

4. Controlling Fan Speed Headlessly

In order to control an nvidia graphics card’s fan speed headlessly; an X server needs to be started. It can be the minimum. Just to get X initialized; then nvidia-settings will work and so will tools such as nfancurve.

There is a great tool to do that automatically by starting an X server for each gpu: https://github.com/andyljones/coolgpus

Apparently nvidia unlike amd doesn’t provide hwmon in sysfs in order to control the fans.

Источник

Управление кулером Linux

Читаете, вы, сейчас эти строки и слышите равномерный, в меру громкий шум кулера. Однозначно слышите, иначе вас бы не заинтересовала эта статья. На самом деле громкая работа кулера в Linux довольно частая проблема недавно перешедших с Windows-пользователей. А ведь он не должен так шуметь.

В Windows, обороты вентилятора и многие другие параметры управляются автоматически в зависимости от нагрузки на систему и следовательно температуры оборудования, здесь же из коробки вентилятор всегда крутится на полную мощность, независимо от того, играете вы тяжелую игру, компилируете программу или просто просматриваете интернет страницы. Это нужно исправлять. В этой инструкции мы рассмотрим управление кулером Linux и настройку автоматической регуляции оборотов в зависимости от температуры.

Подготовка системы

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

Установка lm_sensors

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

Для Ubuntu или Debian команда установки выглядит следующим образом:

sudo apt install lm-sensors

Для Fedora и RHEL:

sudo yum installlm-sensors

sudo emerge -av lm-sensors

Также для Gentoo в ядре необходимо будет включить следующие функции:

Device Drivers —>
-*- I2C support —>
I2C device interface
Hardware Monitoring support —>
//вообще говоря, лучше включить все драйвера оборудования а потом посмотреть какие загрузятся и отключить ненужные.
[M] Intel Core/Core2/Atom temperature sensor (coretemp)

Не забудьте пересобрать все пакеты с флагом lm_sensors

Настройка lm_sensors

Теперь нам нужно найти и записать информацию обо всех доступных сенсорах, для этого выполните:

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

Now follows a summary of the probes I have just done.
Just press ENTER to continue:

А потом опять y для сохранения собранной конфигурации в файл:

Do you want to overwrite /etc/conf.d/lm_sensors? Enter s to specify other file name?
(yes/NO/s):

Далее, добавляем сервис в автозагрузку:

sudo systemctl enable lm-sensors

sudo systemctl start lm-sensors

Уже можем посмотреть показания сенсоров:

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

Управление кулером Linux

Управление оборотами вентилятора linux выполняется с помощью сервиса fancontrol. Для установки в Ubuntu:

sudo apt install fancontrol

sudo yum install fancontrol

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

Читайте также:  Diagtrack что это за служба windows

pwmconfig revision 6166 (2013-05-01)
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.
We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

Сначала программа покажет доступные драйверы вентиляторов:

Found the following fan sensors:
hwmon1/device/fan1_input current speed: 3292 RPM
hwmon1/device/fan2_input current speed: 0 … skipping!
hwmon1/device/fan3_input current speed: 0 … skipping!

Здесь вы видите предупреждение о том что вентиляторы linux будут отключены на некоторое время (5 секунд), как прочитаете нажмите Enter. Дальше будет выполнено тестирование доступных скоростей кулера:

Testing pwm control hwmon1/device/pwm1 …
hwmon1/device/fan1_input … speed was 3292 now 1051
It appears that fan hwmon1/device/fan1_input
is controlled by pwm hwmon1/device/pwm1
Would you like to generate a detailed correlation (y)? y
Note: If you had gnuplot installed, I could generate a graphical plot.
PWM 255 FAN 3276
PWM 240 FAN 3169
PWM 225 FAN 3026

Дальше настроим максимальную, минимальную и рабочую температуры, сначала выберите кулер, например 1:

Select fan output to configure, or other action:
1) hwmon1/device/pwm3 3) Change INTERVAL 5) Save and quit
2) hwmon1/device/pwm1 4) Just quit 6) Show configuration

Теперь выберите датчик температуры для этого кулера:

Devices:
hwmon0 is k10temp
hwmon1/device is it8712
Current temperature readings are as follows:
hwmon0/temp1_input 37
hwmon1/device/temp1_input 47
hwmon1/device/temp2_input 40
hwmon1/device/temp3_input -128
Select a temperature sensor as source for hwmon1/device/pwm3:
1) hwmon0/temp1_input
2) hwmon1/device/temp1_input
3) hwmon1/device/temp2_input
4) hwmon1/device/temp3_input
5) None (Do not affect this PWM output)

Теперь укажите температуру, при которой вентилятор linux будет вращаться на минимальной скорости:

Enter the low temperature (degree C)
below which the fan should spin at minimum speed (20): 45

Затем температуру, при которой нужно переходить на максимальные обороты:

Enter the high temperature (degree C)
over which the fan should spin at maximum speed (60): 60

Далее, нужно указать минимальное значение оборотов pwm, можно узнать нажав кнопку t

Enter the minimum PWM value (0-255)
at which the fan STOPS spinning (press t to test) (100):2

Какое значение pwm использовать если температура превышает минимальную, по сути, это рабочие обороты:

Enter the PWM value (0-2) to use when the temperature
is below the low temperature limit 100

Какое значение использовать при превышении максимальной температуры:

Enter the PWM value (2-255) to use when the temperature
is over the high temperature limit (255): 255

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

Select fan output to configure, or other action:
1) hwmon1/device/pwm3 3) Change INTERVAL 5) Save and quit
2) hwmon1/device/pwm1 4) Just quit 6) Show configuration
select (1-n): 5

Сохранить и выйти под номером 5. Добавте fancontrol в автозагрузку:

sudo systemctl enable fancontrol

sudo systemctl start fancontrol

Чувствуете? тишина… теперь fancontrol управляет вашими кулерами и шума без надобности больше не будет.

Ручное управление оборотами кулера

Меня всегда интересовало, как вручную выключить кулер. Сразу забегая на перед скажу, что ничего не сгорит, температура просто будет плавно расти. Если запущен fancontrol останавливаем, чтобы не мешал:

sudo systemctl stop fancontrol

Смотрим доступные устройства:

ls /sys/class/hwmon/hwmon1/device/ | grep pwm

Здесь pwm1, pwm2.. это файлы кулеров. Разрешаем ручное управление вентилятором linux, например, для pwm1:

echo 1 >>/sys/class/hwmon/hwmon1/device/pwm1_enable

Включаем на полную:

echo 255 >> /sys/class/hwmon/hwmon1/device/pwm1

А теперь на минимум:

echo 0 >> /sys/class/hwmon/hwmon1/device/pwm1

Выводы

Теперь вы достаточно знаете и управление кулером не вызовет у вас проблем. Вы можете заставить свой компьютер или ноутбук не шуметь и не мешать вам спать ночью. В современных системах это вовсе может не понадобится, там кулером управляет UEFI и не допускает того чтобы он крутился быстрее, чем это необходимо. Если остались вопросы, пишите их в комментариях!

Источник

Оцените статью