Linux nvidia gpu change fan speed

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.

Читайте также:  Windows form in eclipse

To add this script to

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

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.

Источник

compizomania

Азбука в Linux для начинающих и не только. Я знаю только то, что ничего не знаю, но другие не знают и этого. Сократ

Страницы

08 мая 2015

Как настроить/контролировать скорость вентилятора видеокарты Nvidia в Ubuntu/Linux Mint

Владельцы компьютеров с видеокартой Nvidia вероятно знают, что после установки проприетарного драйвера автоматически устанавливается графическая программа по настройке драйвера — NVIDIA X Server Settings. Но в ней нет возможности настройки/регулировки вентилятором видеокарты и параметры вращения вентилятора для охлаждения выставлены по умолчанию.
Если вы хотите самостоятельно руководить процессом охлаждения видеокарты, необходимо установить дополнительный компонент Coolbits.

Предупреждение . Выполняйте нижеследующие действия на свой страх и риск.

1. Прежде всего у вас уже должен быть активирован и установлен проприетанный драйвер. Пример:

2. Откройте терминал, скопируйте и выполните следующие команды:

sudo nvidia-xconfig —cool-bits=4

3. Перезагрузите компьютер.

4. После нового входа в систему откройте из системного меню NVIDIA X Server Settings и перейдите в раздел Thermal Settings, где вы теперь должны увидеть дополнительные настройки управлением скоростью вращения вентилятора охлаждения видеокарты.

5. Активируйте пункт Enable GPU Fan Settings, передвиньте флажок регулировки скоростью вращения вентилятора на нужную величину (в процентах) и нажмите кнопку Apply (Применить).

Заключение . Если что-то пойдёт не так, вы всегда можете сбросить термальные настройки, нажав кнопку Reset Hardware Default ( Сбросить настройки по умолчанию).

Читайте также:  Windows command line parse file

31 комментарий :

cool-bits=1 включает возможность оверклокинга
cool-bits=4 включает возможность ручного управления кулером
cool-bits=5 включает И ТО, И ДРУГОЕ

Т.е., если установить значение cool-bits=5, можно не только управлять вентилятором, но и вручную выставлять рабочие частоты видеокарточки, делая, таким образом, overclocking (или downclocking, во избежание перегрева). У меня, например, нижний порог производительности немного задран, а верхний, наоборот, специально занижен — так карточка у меня значительно меньше греется.
http://i.imgur.com/ieE20sM.png
http://i.imgur.com/iF9jLFK.png
http://i.imgur.com/78jmWW0.png
Заодно приведу примеры команд, которые можно закинуть в автозапуск, чтоб каждый раз не лазать в GUI:

nvidia-settings -a «[gpu:0]/GPUOverclockingState=1» -a «[gpu:0]/GPU2DClockFreqs=270,162» -a «[gpu:0]/GPU3DClockFreqs=405,324» (переопределяет рабочие частоты GPU)
nvidia-settings -a «[gpu:0]/GPUFanControlState=1» -a «[fan:0]/GPUCurrentFanSpeed=62» (устанавливает ручное управление кулером и скорость вращения в процентах от максимальной)

Не мое, конечно, дело, но вам впору свои статьи писать, Максим 🙂 Багаж знаний это позволяет.

Так Максим пишет стати на этом сайте. Он является соавтором блога Compizomania. Возможно Вы имели ввиду свой сайт/блог иметь, как автору. Но не каждый продвинутый пользователь хочет содержать свой блог. Для многих продвинутых пользователей проще публиковать статьи в существующем сайте/блоге и отвечать на комментарии пользователей, что и делает Максим.

Спасибо-работает , а для ATI подобной инструкции нет ?

На мобильных картах работать должно? А то у меня чтото с командой cool-bits=1 оверклок не заработал.
U14.04
gt 425m (331.113)
xorg https://yadi.sk/i/o2Ht1WktgWULY

Нашел- http://itmages.com/image/view/2531852/5584c886 http://sourceforge.net/projects/amdovdrvctrl/ может кому-нибудь пригодится

У иеня нет Clock Frequencies. Как написать строки в автозагрузку:nvidia-settings -a «[gpu:0]/GPUOverclockingState=1» -a «[gpu:0]/GPU2DClockFreqs=270,162» -a «[gpu:0]/GPU3DClockFreqs=405,324» (переопределяет рабочие частоты GPU)
nvidia-settings -a «[gpu:0]/GPUFanControlState=1» -a «[fan:0]/GPUCurrentFanSpeed=62» (устанавливает ручное управление кулером и скорость вращения в процентах от максимальной). Двумя разными командами?

==На мобильных картах работать должно? А то у меня чтото с командой cool-bits=1 оверклок не заработал.==
Сложно сказать с уверенностью. У меня нет ноутбука и проверить не на чем. И я толком не знаю, как именно работает команда nvidia-xconfig в Ubuntu, куда сохраняются параметры. В моем Archlinux я не использовал никаких команд, просто добавил строчку
Option «Coolbits» «5»
в секцию Device файла /etc/X11/xorg.conf.d/20-nvidia.conf, но в Ubuntu этого файла может и не быть. Можно попробовать добавить непосредственно в xorg.conf, но если есть какие-то дополнительные конфиги, такой подход не всегда срабатывает.

==У иеня нет Clock Frequencies ==
Если вы активировали cool-bits=4, то это добавляет только управление кулером. Для оверклокинга нужны cool-bits=5 или cool-bits=1 Причем, не факт, что будет работать. Зависит от карточки и версии драйвера. В статье есть упоминание про «на свой страх и риск»
==Как написать строки в автозагрузку. Двумя разными командами?==
Две строчки, начинающиеся с nvidia-settings и далее до примечания в скобках — это две разные длинные команды и в автозапуск помещать их тоже надо по отдельности. Но использовать ОБЕ совсем НЕОБЯЗАТЕЛЬНО. И параметры частот и оборотов в командах надо подбирать индивидуально под свою карту. Я всего лишь привел примеры. Используйте их, только если знаете, что делаете.

Владимир, нет, имел ввиду именно статьи, а не отдельную площадку. К чему плодить ресурсы в сети, когда уже есть качественные и интересные?
Я не знал, что Максим здесь публикуется. Теперь знаю 🙂

Moriarty, в Вашем файле xorg.conf есть комментарий «generated by nvidia-xconfig», то есть nvidia-xconfig непосредственно туда и сохраняет все параметры. Попробуйте отредактировать секцию Device вручную, добавив Option «Coolbits» «5» или Option «Coolbits» «1», например, так:

Читайте также:  What is gnu and gnome in linux

Section «Device»
Identifier «Device0»
Driver «nvidia»
VendorName «NVIDIA Corporation»
BoardName «GeForce GT 425M»
Option «Coolbits» «5»
EndSection

и перезагрузить компьютер. Почему параметр не добавился командой sudo nvidia-xconfig, честно говоря, не знаю. Возможно, вводили с ошибкой.

P.S.
==На мобильных картах работать должно? А то у меня чтото с командой cool-bits=1 оверклок не заработал.
U14.04
gt 425m (331.113)==

Немного еще покурил мануалы 🙂 Для некоторых карт 400-й серии и для других карт с архитектурой Fermi и новее, оверклокинг может включаться командой
sudo nvidia-xconfig —cool-bits=8
(страница PowerMizer преобразуется в таблицу с редактируемыми значениями). Работает только с драйвером 337 и новее!

P.S. Возможно, я ошибаюсь, но по моему опыту, down-clocking действительно может быть довольно полезен. Никаких «тормозов» он на практике не вызывает. Максимальная производительность нужна только в играх, а видеокарта зачем-то норовит перескочить на «максимальный перфоманс» при малейшем увеличении нагрузки. Это приводит только к ее нагреву и росту оборотов вентилятора. На самом деле, нижнего порога производительности должно вполне хватать даже для HD-видео.

Еще бы написали как фиксировать настройку PowerMizer, было бы вообще отлично. Надоело при каждой перезагрузке ставить её вручную(

Этот комментарий был удален автором.

Что значит «фиксировать настройку PowerMizer»? Если Вы имеете в виду настройки оверклокинга (или даунклокинга), как на этих двух скриншотах

так я привел команду, которая их устанавливает:

nvidia-settings -a «[gpu:0]/GPUOverclockingState=1» -a «[gpu:0]/GPU2DClockFreqs=270,162» -a «[gpu:0]/GPU3DClockFreqs=405,324»

После этой команды PowerMizer и начинает выглядеть так:

где Memory Transfer Rate 648 = 324*2

Отредактируйте команду под свои частоты и закиньте в автозапуск.

P.S. Если Вы имеете в виду вот это http://i.imgur.com/XE94kwO.png , то это просто:
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1
Сбросить обратно на Auto:
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=2
Сбросить на Adaptive:
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=0

У меня мобильная видеокарта nvidia gt540, после добавления параметра sudo nvidia-xconfig —cool-bits=4 и последующей перезагрузке, только сбивается разрешение экрана, а опция управлением кулера не включается. Может у кого заработало на ноутбуке, отпишитесь пожалуйста! Буду примногом благодарен!

Лучше бы написали как сделать, чтобы после установки проприетарного драйвера nvidia можно было регулировать обороты с помощью fancontrol, так как там можно задать скорость в зависимости от температуры, а не просто тупо выкручиваь вертушку на определенное количесвто оборотов. В общем проблема в том, что при использовании драйвера nouveau, fancontrol нормально работает и настраивается через pwmconfig, а посте установки драйверов от nvidia сенсор управления оборотами, как и считыаение с него данных, становится недоступным для программы fancontrol/pwmconfig. Может есть какой-то аргумент, чтобы отдать управление скоростью вращения вентилятора сторонней программе, так как мне кажется, что возможно это где-то блокируется. Плюс использования fancontrol состоит в том, что обороты регулируются в зависимости от температуры с установленным лично вами порогом.
PS. Прошивать Bios с другими значениями не вариант, так как нужно это делать налету и в зависимости от комнатной температуры.

==Лучше бы написали как сделать, чтобы после установки проприетарного драйвера nvidia можно было регулировать обороты с помощью fancontrol==
Fancontrol для проприетарных дров не предназначен.

==задать скорость в зависимости от температуры==
Можно использовать скрипт на bash или python для этой цели. Мне доводилось видеть подобные. Если хорошо поискать, можно найти в интернете. Был бы я силен в програмировании, сам бы написал, благо алгоритм там, по большому счету, простой как два пальца :).

Источник

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