Skip to content

NVIDIA

Эта статья описывает процесс установки и настройки драйверов для видеочипов NVIDIA.

На данный момент существуют 2 драйвера:

1. Проприетарный драйвер от NVIDIA

NVIDIA — это собственный драйвер самой компании nvidia.com. NVIDIA драйвер является закрытым программным обеспечением и поставляется отдельно от ядра Linux, требуя индивидуальной установки.

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

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

2. Драйвер Nouveau

Nouveau — это open-source проект, созданный независимыми разработчиками с использованием методов реверс-инжиниринга. В настоящее время он разрабатывается под эгидой X.Org Foundation и размещается на freedesktop.org. Nouveau является частью проекта MESA 3D, и систем GNU/Linux.

Из-за обратно-проектируемого метода разработки, уровень поддержки различных архитектур GPU может варьироваться, поэтому важно знать какая у Nouveau поддержка архитектуры вашей видеокарты.

Драйвер Nouveau изначально присутствует в ядре системы, и, обычно, не требует вмешательств.

Информация

У Nouveau есть страница с названиями видеокарт, их кодовыми наименованиями и их архитектурой.

См. страницу Code Names

Выбор правильного драйвера:

При выборе драйвера для графического чипа, следует учесть три основных аспекта:

  1. Развитие драйверов: Как Nouveau, так и NVIDIA постоянно обновляются и развиваются. Невозможно точно предсказать, какие функции будут добавлены или изменены в каждом из них в будущем. Если однажды услышали, что чего-то нет в каких-то драйверах, через полгода это может поменяться.
  2. Архитектура графического чипа: Важно учитывать, что старые модели графических чипов, как правило, лучше работают с драйвером Nouveau, чем с последними поддерживаемым драйвером NVIDIA, однако всё индивидуально и необходимо проверять для каждой архитектуры видеочипов отдельно. Для проверки уровня поддержки различных архитектур можно обратиться к FeatureMatrix для Nouveau и к этой странице в случае с NVIDIA (См. блок Настройка драйвера).
  3. Происхождение драйверов: Проприетарный драйвер NVIDIA разрабатываются самой компанией NVIDIA и зачастую не контактирует с сообществом Linux. В то же время Nouveau является частью проекта Mesa 3D (одной из основных частей графического стека Linux), однако разрабатывается с помощью реверс-инжиниринга. Это означает, что проприетарный драйвер обычно обеспечивает более высокий уровень поддержки видеокарт NVIDIA, в то время как Nouveau обеспечивает более глубокую интеграцию с системами GNU/Linux.

На данный момент, драйверы имеют следующие основные различия:

Проприетарный драйвер NVIDIA обеспечивает управление питанием большего числа видеокарт, поддерживает работу CUDA, а также обеспечивает лучшую поддержку игр и графических программ.

С другой стороны, Nouveau встроен в ядро Linux и обычно не требует дополнительных настроек. Он также поддерживает управление питанием, но на меньшем количестве видеокарт, не поддерживает CUDA и имеют плохую поддержку игр. В некоторых моментах обеспечивает лучшую поддержку там, где NVIDIA имеет плохую.

Информация

Дополнительную информацию о поддержке управления питанием с использованием Nouveau можно найти здесь: PowerManagement

Рекомендации по выбору:

Если вам необходимы игры, CUDA и другие технологии NVIDIA, и при использовании Nouveau возникают проблемы с производительностью, рекомендуется установить драйвер NVIDIA.

Если вы не используете вышеупомянутые технологии, и ваша видеокарта работает стабильно на Nouveau, рекомендуется остаться на нём.

Проприетарный драйвер NVIDIA:

Установка (Смена Nouveau драйвера на проприетарный)

Способ 1. Через EPM

Для упрощения процесса установки проприетарного драйвера для графических карт NVIDIA можно использовать интерфейс EPM. Данный скрипт включает в себя наиболее полную первоначальную настройку, включая активацию wayland и решение проблемы с неизвестным монитором, но только для нового драйвера.

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

Выполните следующую команду в терминале:

shell
su -
epm play switch-to-nvidia

Подсказка

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

После успешного завершения работы скрипта нужно перезагрузить операционную систему.

Способ 2. Вручную

Для перехода с Nouveau на NVIDIA рекомендуется сначала обновить ядро:

shell
su -
update-kernel

Для дальнейшей установки проприетарного драйвера NVIDIA, необходимо перезагрузить операционную систему.

Установим проприетарный драйвер NVIDIA:

shell
su -
rpm -e $(rpm -qf `modinfo -F filename nouveau`)
apt-get install nvidia_glx_common
nvidia-install-driver
make-initrd

Осторожно

Не следует запускать фирменный инсталлятор драйвера NVIDIA из .run-файла!

Настройка драйвера

Существует 5 версий драйвера NVIDIA, устанавливающиеся в зависимости от возраста вашей видеокарты. Далее будет описана важная информация и настройка каждой из этих версий.

Чтобы узнать версию Вашего драйвера, необходимо ввести:

shell
inxi -G

Драйвер 550.54.14 или новее

При установке драйвера через EPM настройка под wayland уже будет произведена. Если Вы использовали этот способ, дальнейшая настройка не требуется (кроме работы заставки).

Если установили вручную, смотрите дальнейшую настройку.

Сессия Wayland

Для работы Wayland необходимо настроить сохранение выделенных ресурсов видеопамяти

Внимание

У драйвера NVIDIA существуют известные проблемы и несовместимости, связанные с wayland. Вы можете ознакомиться с ними для лучшего понимания дел на данный момент.

Работа заставки (plymouth)

Для работы заставки необходимо запустить модули драйвера как можно раньше, для этого необходимо положить их в initramfs

Также, если у вас в параметрах ядра есть initcall_blacklist=simpledrm_platform_driver_init, его необходимо удалить и использовать другой способ из решения проблем с «Неизвестным монитором»

Подсказка

Проверить, есть ли этот параметр можно в файле /etc/sysconfig/grub2 в строке с параметром GRUB_CMDLINE_LINUX_DEFAULT.

Осторожно

В первую очередь это важно для тех, кто установил через EPM или пользователей дистрибутива Ximper.

Этот параметр будет у Вас будет по-умолчанию.

Драйвер 470.223.02

Информация

Драйвер до версии 495 имеет поддержку только одного buffer API — EGLStreams.

Он часто предавался критике и не взыскал популярности, но безальтернативная связка с NVIDIA "заставляла" некоторые крупные проекты работать с ним.

Начиная с 495, NVIDIA представила поддержку GBM, и с тех пор подавляющее большинство проектов отказалось от EGLStreams.

GNOME, один из немногих, кто ещё поддерживает EGLStreams. но на сегодняшний день эта поддержка постепенно уходит на второй план.

Проблема с Intel:

Драйвер 470.223.02 и более ранние версии, начиная с Linux 5.18 могут работать неправильно в системах с процессорами Intel 11-го поколения и новее, из-за несовместимости с Indirect Branch Tracking. Можно отключить его, добавив значение ibt=off в параметр GRUB_CMDLINE_LINUX_DEFAULT:

shell
su -
mcedit /etc/sysconfig/grub2
grub-mkconfig -o /boot/grub/grub.cfg

Внимание

Имейте в виду, что эта функция безопасности отвечает за защиту от ряда методов эксплойта .

Сессия Wayland

Для работы Wayland необходимо 2 вещи:

  1. Активировать метод Kernel Mode Setting
  2. Настроить сохранение выделенных ресурсов видеопамяти

Внимание

У драйвера NVIDIA существуют известные проблемы и несовместимости, связанные с wayland. Вы можете ознакомиться с ними для лучшего понимания дел на данный момент.

Работа заставки (plymouth)

Для работы заставки необходимо запустить модули драйвера как можно раньше, для этого необходимо положить их в initramfs

Также, если у вас в параметрах ядра есть initcall_blacklist=simpledrm_platform_driver_init, его необходимо удалить и использовать другой способ из решения проблем с «Неизвестным монитором»

Подсказка

Проверить, есть ли этот параметр можно в файле /etc/sysconfig/grub2 в строке с параметром GRUB_CMDLINE_LINUX_DEFAULT.

Осторожно

В первую очередь это важно для тех, кто установил через EPM или пользователей дистрибутива Ximper.

Этот параметр будет у Вас будет по-умолчанию.

Драйвер 390.157

Информация

Драйвер до версии 495 имеет поддержку только одного buffer API — EGLStreams.

Он часто предавался критике и не взыскал популярности, но безальтернативная связка с NVIDIA "заставляла" некоторые крупные проекты работать с ним.

Начиная с 495, NVIDIA представила поддержку GBM, и с тех пор подавляющее большинство проектов отказалось от EGLStreams.

GNOME, один из немногих, кто ещё поддерживает EGLStreams, но на сегодняшний день эта поддержка постепенно уходит на второй план.

Драйверы NVIDIA до версии 470 не поддерживают аппаратное ускорение Xwayland.

Для драйвера до версии ~400 ускоренное декодирование видео NVDEC недоступен.

Сессия Wayland

Для работы Wayland необходимо 2 вещи:

  1. Активировать метод Kernel Mode Setting
  2. Настроить сохранение выделенных ресурсов видеопамяти

Внимание

У драйвера NVIDIA существуют известные проблемы и несовместимости, связанные с wayland. Вы можете ознакомиться с ними для лучшего понимания дел на данный момент.

Работа заставки (plymouth)

Для работы заставки необходимо запустить модули драйвера как можно раньше, для этого необходимо положить их в initramfs

Также, если у вас в параметрах ядра есть initcall_blacklist=simpledrm_platform_driver_init, его необходимо удалить и использовать другой способ из решения проблем с «Неизвестным монитором»

Подсказка

Проверить, есть ли этот параметр можно в файле /etc/sysconfig/grub2 в строке с параметром GRUB_CMDLINE_LINUX_DEFAULT.

Осторожно

В первую очередь это важно для тех, кто установил через EPM или пользователей дистрибутива Ximper.

Этот параметр будет у Вас будет по-умолчанию.

Драйвер 340.108

Информация

Для драйвера до версии ~400 ускоренное декодирование видео NVDEC недоступен.

Сессия Wayland

Драйвер до версии 364.12 не имеет поддержку Kernel Mode Settings.

Сессия Wayland на данном драйвере не поддерживается.

Полезные программы:

Информация

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

Группа устанавливаемых пакетов, может постоянно меняться, поэтому для уточнения рекомендовано проверить сам EPM скрипт

NVIDIA Settings

Утилита для настройки и оптимизации графических параметров на компьютерах с видеокартами NVIDIA. Она позволяет пользователям настраивать качество изображения, разрешение экрана, а также различные параметры, связанные с производительностью видеокарты. С помощью Nvidia Settings можно также включить или отключить определённые функции, такие как вертикальная синхронизация или сглаживание.

В зависимости от сессии Xorg или Wayland возможны различаться набор настроек в утилите NVIDIA Settings. Например, в Wayland нельзя настроить вертикальную синхронизацию и тройную буферизацию, так как они работа по-другому в этом окружении. Также в Wayland нет поддержки G-Sync, так как эта технология работает только с NVIDIA и требует специального оборудования. В целом, основные функции NVIDIA Settings доступны в обоих окружениях, но некоторые дополнительные возможности могут быть ограничены.

Установка из репозитория

NVIDIA Settings можно установить любым привычным и удобным способом:

Установка через терминал

shell
su -
apt-get update
apt-get install nvidia-settings
shell
epm -i nvidia-settings

nvidia-smi

nvidia-smi (также NVSMI) предоставляет возможности мониторинга и управления для NVIDIA Tesla, Quadro, GRID и GeForce начиная с семейства Fermi.

shell
su -
apt-get update
apt-get install nvidia-smi
shell
epm -i nvidia-smi

switcheroo-control

Утилита для выбора графического устройства при запуске приложения с типом устройств dual-GPU

Для пользовательского выбора графического устройства при запуске приложения в рабочем окружении GNOME, необходимо установить утилиту switcheroo-control

Информация

Для систем, имеющих как встроенный, так и выделенный графический процессор, switcheroo-control по умолчанию принудительно использует встроенный графический процессор для экономии энергии.

Установка через терминал

shell
su -
apt-get update
apt-get install switcheroo-control
systemctl enable --now switcheroo-control.service
shell
epm -i switcheroo-control
systemctl enable --now switcheroo-control.service

После установки приложения switcheroo-control, в меню появится пункт «Запустить с помощью выделенной видеокарты»

EnvyControl

EnvyControl это утилита командной строки которая позволяет выбирать режим работы гибридной графики, на выбор представлено три режима

Гибридный режим

  • Позволяет драйверу самому решать какой графический процессор использовать, обычно большую часть времени используется интегрированная графика, а дискретная графика работает только если она нужна, например в играх или программах для монтажа
  • Позволяет использовать RTD3, подробнее
  • Работает только на видеокартах Turing и выше
  • Возможны проблемы с HDMI

Интегрированный режим

  • Использует только интегрированную графику (Intel или AMD) отключая Nvidia
  • Мониторы подключённые к Nvidia работать не будут

Nvidia режим

  • Используется исключительно видеокарта от Nvidia

Пара примеров

Установить интегрированный режим:

shell
su-
envycontrol -s integrated

Установить гибридный режим и включить RTD3 (если ничего не указывать то значение будет равно двум):

shell
su-
envycontrol -s hybrid --rtd3

Установить гибридный режим, включить ForceCompositionPipeline, а так же установить coolbits на 28 разрешая разгон видеокарты:

shell
su-
envycontrol -s nvidia --force-comp --coolbits 24

Установка через терминал

shell
su -
apt-get update
apt-get install envycontrol
shell
epm -i envycontrol

После установки рекомендуем ввести команду envycontrol --help чтобы ознакомиться со всеми возможностями утилиты, если вы желаете использовать графическую утилиту, доступно так же расширение для GNOME

vulkan-tools

Программа vulkaninfo отображает информацию о поддерживаемых возможностях Vulkan для пользователей графических устройств NVIDIA. Необходимо установить пакет vulkan-tools:

shell
su -
apt-get update
apt-get install vulkan-tools
shell
epm -i vulkan-tools

Для вывода информации vulkaninfo в терминале введите:

shell
vulkaninfo --summary

nvidia-vaapi-driver

Реализация VA-API, использующая NVDEC в качестве бэкенда. Эта реализация специально разработана для использования в Firefox для ускоренного декодирования веб-содержимого и может работать некорректно в других приложениях. Доп. информацию смотрите на странице проекта

shell
su -
apt-get update
apt-get install nvidia-vaapi-driver

nvidia-modprobe

Утилита nvidia-modprobe используется компонентами драйвера NVIDIA в пользовательском пространстве для проверки загрузки модуля ядра NVIDIA и наличия файлов символьных устройств NVIDIA. Эти возможности обычно предоставлялись системами конфигурации дистрибутива GNU/Linux, такими как udev. По возможности рекомендуется использовать встроенные механизмы вашего дистрибутива GNU/Linux для управления загрузкой модулей ядра и созданием файлов устройств. Эта утилита предоставляется в качестве запасного варианта для работы независимо от дистрибутива.

shell
su -
apt-get update
apt-get install nvidia-modprobe

nvidia-cuda-toolkit

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

shell
su -
apt-get update
apt-get install nvidia-cuda-toolkit

nvidia-xconfig

nvidia-xconfig - это инструмент, предназначенный для обеспечения базового управления по параметрам конфигурации, доступным в драйвере NVIDIA X11.

shell
su -
apt-get update
apt-get install nvidia-xconfig

Выбор проприетарного драйвера в ЦУС (Только для X11)

Осторожно

Выбор драйвера через ЦУС происходит через изменение /etc/X11/xorg.conf.d/10-monitor.conf, а значит работает только на Xorg сессии и только на поздних этапах, игнорируя KMS.

На данный момент, такой способ изменения драйвера не будет работать с wayland, и является устаревшим и не рекомендуется

Данная инструкция рекомендована для использования только на стационарных ПК, в которых графическая карта NVIDIA будет использована как основная. Для ноутбуков с гибридной графикой рекомендуется пропустить этот шаг и воспользоваться утилитой switcheroo-control, или же envycontrol ::: ::: info Удостоверьтесь, что у вас стоит пакет 'alterator-x11', а также сам драйвер от NVIDIA. Если его нет, установите.

Без этого не будет необходимого параметра «Дисплей» и варианта выбора «nvidia - NVIDIA (proprietary)»

выбор проприетарного драйвера

Заходим в Центр управления системой.

nvidia-acc-1

Выбираем параметр Дисплей в категории Графический интерфейс.

nvidia-acc-2

В графе Драйвер нажимаем на кнопку Другой драйвер.

nvidia-acc-3

В открывшемся окне выбираем nvidia - NVIDIA (proprietary).

После выбора соглашаемся, нажимаем ОК и Применить и снова перезагружаем операционную систему.

Детальная настройка драйвера

Активация Kernel Mode Setting.

Необходимо прописать в параметр GRUB_CMDLINE_LINUX_DEFAULT значение nvidia-drm.modeset=1 и сгенерировать новых grub.cfg:

shell
su -
mcedit /etc/sysconfig/grub2
grub-mkconfig -o /boot/grub/grub.cfg

Подсказка

Чтобы проверить, работает ли KMS, напишите в терминале от пользователя root (Администратора):

'cat /sys/module/nvidia_drm/parameters/modeset'

Если консоль выводит «Y» значит работает.

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

В драйверах 550.54.14 и выше настройка KMS не нужна

Начиная с октября 2023 года, в ручной активации KMS нет необходимости. Правильная опция будет прописана вместе с установкой драйвера и будет находиться в /etc/modprobe.d/nvidia_common.conf.

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

NVIDIA предлагает 2 способа:

1 способ. Через сохранение в безымянных временных файлах.

Такой способ позволяет использовать глубокий уровень сна (S4 и S5), и не требует дополнительной поддержки S0ix.

Внимание

Существу проблемы на некоторых устройствах с PRIME. Этот способ направлен больше на настольные ПК

Как включить:

Активируем интерфейсы управления питания NVIDIA:

shell
su -
systemctl enable nvidia-suspend.service nvidia-resume.service nvidia-hibernate.service

Подсказка

Эти интерфейсы заменяют стандартные sleep hibernate и resume, давая возможность записать ресурсы видеопамяти перед отключением питания у видеокарты.

Информация

Если вы устанавливали проприетарный драйвер NVIDIA при помощи epm, то данная команда уже была выполнена автоматически.

В опциях драйвера NVIDIA указываем о смене способа сохранения ресурсов видеопамяти и указываем куда:

shell
su -
cat << _EOF_ > /etc/modprobe.d/nvidia_videomemory_allocation.conf
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_TemporaryFilePath=/var/tmp
_EOF_
make-initrd

Информация

Для сохранения ресурсов видеопамяти важно, чтобы файловая система имела поддержку безымянных временных файлов и имела достаточный объём для сохранения видеопамяти. Объём, равный сумме всей видеопамяти + 5% от неё, будет вполне достаточно для её сохранения.

Узнать количество видеопамяти можно командой: nvidia-smi -q -d MEMORY |grep 'FB Memory Usage' -A1

Также, во избежание нехватки места, следует избегать директорий с tmpfs в опции NVreg_TemporaryFilePath. (Таких как /tmp или /run.)

NVIDIA не даёт каких-то конкретных рекомендаций, какую директорию использовать, но на форумах зачастую рекомендуют /var/tmp, и судя по её описанию, этот вариант наиболее рационален.

2 способ. Через через режим сохранения питания S0ix.

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

Как включить:

Проверяем, поддерживает ли система s2idle. Для этого выполните команду:

shell
cat /sys/power/mem_sleep

Подсказка

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

Проверяем, поддерживает ли s0ix видеочип. Для этого выполните команду, перед этим подставив расположение вашего устройства(Посмотрите по каталогам после /proc/driver/nvidia/gpus. У каждого устройства своё значение). :

shell
grep 'Video Memory Self Refresh' /proc/driver/nvidia/gpus/<Domain>:<Bus>:<Device>.0/power

Подсказка

Если ответ Video Memory Self Refresh: is supported значит s0ix поддерживает и можно проверять систему дальше.

Если система и видеочип поддерживает указанные режимы, добавляем параметр NVreg_EnableS0ixPowerManagement=1:

shell
su -
modprobe nvidia NVreg_EnableS0ixPowerManagement=1

Если при выводе cat /sys/power/mem_sleep s2idle не был в скобках (Вот так: [s2idle]), выполняем в консоли:

shell
su -
echo "s2idle" > /sys/power/mem_sleep

После указания опции и режима , тестируем сон и проверяем, всё ли корректно загрузилось. Если всё хорошо, добавляем настройки на постоянную загрузку:

shell
su -
cat << _EOF_ > /etc/modprobe.d/enable_S0ix_power_management.conf
options nvidia NVreg_EnableS0ixPowerManagement=1
_EOF_
make-initrd

Если ранее приходилось вручную указывать s2idle, прописываем в параметр GRUB_CMDLINE_LINUX_DEFAULT значение mem_sleep_default=s2idle и генерируем новых grub.cfg:

shell
su -
mcedit /etc/sysconfig/grub2
grub-mkconfig -o /boot/grub/grub.cfg

Информация

При переходе видеокарты в спящий режим S0ix, будет выполнятся один из 2-х сценариев:

  • Если использование памяти было меньше определённого порога, видеопамять с копируется в системную память и полностью отключится вместе с графическим процессором
  • Если использование памяти было больше определённого порога, видеопамять будет в режиме самообновления, в то время как остальная часть графического процессора будет отключена

По умолчанию, этот порог составляет 256 МБ, и его можно изменить с помощью параметра NVreg_S0ixPowerManagementVideoMemoryThreshold. Имейте ввиду, чем больше указан размер, тем выше вероятность, что часть видеопамяти не будет сохранена.

Ранняя загрузка модулей NVIDIA

Для того, чтобы запустить модули NVIDIA на этапе initramfs, необходимо добавить их в /etc/initrd.mk и отключить "фичи" (features) "nvidia", которая запрещает их загрузку.

Добавьте в /etc/initrd.mk строки MODULES_TRY_ADD +=nvidia nvidia-drm nvidia-modeset nvidia-uvm и DISABLE_FEATURES += nvidia и перегенерируйте initramfs:

shell
su -
cat << _EOF_ >> /etc/initrd.mk

# trying to load nvidia modules
MODULES_TRY_ADD += nvidia nvidia-drm nvidia-modeset nvidia-uvm
DISABLE_FEATURES += nvidia
_EOF_
make-initrd

Внимание

При добавлении модулей в initramfs не будет работать этот способ "замена драйверов nouveau/nvidia "на лету"" с сайта www.altlinux.org

Управление питанием PCI-Express Runtime D3 (RTD3)

Драйвер NVIDIA имеет поддержку динамического управления питанием графического процессора NVIDIA (PCI-Express Runtime D3 (RTD3) Power Management.

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

И всё это не влияя на функциональность позволит работать графическому процессору с меньшей производительностью, но меньшим потреблением энергии.

Для работы RTD3 необходимо следующее:

  • Ноутбук
  • Процессор из серия чипсетов Coffee Lake или новее
  • Видеокарта архитектуры Turing или новее
  • Linux ядро версии 4.18 и новее
  • Ядро Linux собрано с CONFIG_PM (CONFIG_PM=y). Как правило, если система поддерживает S3 (suspend-to-RAM), то и CONFIG_PM будет определён как надо

Информация

Для Ampere или более поздних версий видеокарт, RTD3 включено по умолчанию. Настройка не нужна.

Для видеокарт Turing настройка должна быть включена вручную:

Для автоматизации управления надо добавить правила в '/lib/udev/rules.d':

shell
su -
cat << _EOF_ > /lib/udev/rules.d/80-nvidia-pm
# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"

# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"
_EOF_
make-initrd

В /etc/modprobe.d добавляем конфигурационный файл с параметром:

shell
su -
cat << _EOF_ > /etc/modprobe.d/nvidia_RTD3.conf
# This options activate RTD3
options nvidia "NVreg_DynamicPowerManagement=0x02"
_EOF_
make-initrd

Информация

Более подробное описание работы, а также решение возможных проблем смотрите в документации NVIDIA.

PAT

Драйвер NVIDIA позволяет сменить старый атрибут страничной организации памяти MTRR на PAT.

PAT более современная технология и является более гибким атрибутом, добавляя новые возможности для организации памяти.

Чтобы её включить, в /etc/modprobe.d добавляем конфигурационный файл с параметром:

shell
su -
cat << _EOF_ > /etc/modprobe.d/nvidia_PAT.conf
# This options activate PAT
options nvidia NVreg_UsePageAttributeTable=1
_EOF_
make-initrd

Внимание

Удостоверьтесь, что ваша система поддерживает PAT, а в противном случае, у вас могут быть проблемы с системой.

Проверка поддержки PAT:

shell
su -
cat /proc/cpuinfo | grep pat

GSP прошивка

Некоторые видеокарты имеют GSP процессор, который может использоваться для разгрузки задач и управления графическим процессором. По умолчанию, он включён для ограниченного числа видеокарт. Тем не менее, начиная с архитектуры Turing, этот процессор присутствует во всех видеокартах и его можно принудительно включить(Подробнее см. GSP firmware)

В /etc/modprobe.d добавляем конфигурационный файл с параметром:

shell
su -
cat << _EOF_ > /etc/modprobe.d/nvidia_GSP_firmware.conf
# This options force unlock GPU firmware
options nvidia NVreg_EnableGpuFirmware=1
_EOF_
make-initrd

Фреймбуфер от NVIDIA

Начиная с драйвера версии 545.29, можно включить фреймбуфер предусмотренный nvidia-drm. Он заменяет стандартные фреймбуферы, такие как efifb или vesafb. Для работы, необходимо, чтобы работал KMS

shell
su -
cat << _EOF_ > /etc/modprobe.d/nvidia-framebuffer.conf
# This options unlock experimental nvidia framebuffer
options nvidia_drm fbdev=1
_EOF_

Осторожно

Это экспериментальная функция и работает нестабильно.

Решение известных проблем

«Неизвестный монитор» в настройках дисплеев в сессии Wayland

Информация

Данная проблема может привести к не работе устройств ввода: мышка, тачпад. Особенно часто данные проблемы проявляются в играх.

На данный момент существует 3 способа устранения фантомного неизвестного монитора:

Способ 1. Использование собственного фреймбуфера от NVIDIA:

Смотрите настройку фреймбуфера от NVIDIA

Способ 2. Отключение загрузки simpledrm:

Внесём изменение в конфигурацию GRUB:

shell
su -
mcedit /etc/sysconfig/grub2

Добавляем в параметр GRUB_CMDLINE_LINUX_DEFAULT значение initcall_blacklist=simpledrm_platform_driver_init и генерируем grub.cfg.

shell
su -
grub-mkconfig -o /boot/grub/grub.cfg

Внимание

Данное решение приводит к невозможности входа в tty, к отсутствию вывода логов во время загрузки (Если не включён Plymouth с заставкой, закрывающий эту загрузку), и к чёрному экрану, если система, по какой-то причине не запустилась вовсе.

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

Информация

При использовании epm, данный способ будет применён автоматически.

Способ 3. Отключение монитора через настройки

Откройте настройки GNOME и во вкладке дисплеев отключите "неизвестный монитор".

После настроек для сессии wayland, wayland в GDM не появляется

Если, после настройки, по каким-то причинам сессия с wayland протоколом не появляется(нет явных пунктов с X11), его можно принудительно включить в GDM через маскирование правил:

su -
ln -s /dev/null /etc/udev/rules.d/61-gdm.rules

Информация

Перед маскированием правил, удостоверьтесь, что Вы правильно настроили сохранение выделенных ресурсов видеопамяти. Чаще всего проблемы именно из-за этого.

Также прочтите комментарии самих GDM правил и поищите правила, относящиеся к вашей системе.

Вполне возможно, есть объективная причина не давать Вам режим wayland.

Не работает KMS

Если при загрузке GNOME чёрный экран, либо при проверке 'cat /sys/module/nvidia_drm/parameters/modeset' выводит 'N', можно попробовать включить KMS через командную строку ядра.

Чёрный экран при выборе сессии X11, либо ошибка в инициализации CUDA

Драйвер NVIDIA для Linux по умолчанию использует Message Signaled Interrupts (MSI). Это обеспечивает лучшую совместимость и масштабируемость, из-за избегания совместного использования IRQ.

Было замечено, что некоторые системы имели проблемы с поддержкой MSI.

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

shell
su -
cat << _EOF_ > /etc/modprobe.d/nvidia_MSI.conf
# This options deactivate MSI
options nvidia NVreg_EnableMSI=0
_EOF_
make-initrd

Если при установке или первом запуске чёрный экран, артефакты или другие проблемы

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

Для этого необходимо на этапе выбора вариантов загрузки в GRUB нажать кнопку <<e>>, найти первую строку с linux /boot/vmlinuz и дописать в э����������������������у строку один из следующих параметров (параметр должен быть отделён пробелом от других, в какой очерёдности будет параметр не имеет важности):

  • nomodeset — не загружать видеодрайверы для видеокарты до момента, пока не будет загружена графическая система X. В результате система загружается в текстовом виде, можно видеть сообщения процесса загрузки, проблема «чёрного экрана загрузки» устраняется;
  • xdriver — графический установщик предпринимает попытку автоматического подбора драйвера видеокарты, но иногда это ему не удаётся. Данным параметром можно отключить «искусственный интеллект» и явно указать нужный вариант драйвера;
  • instdebug — если будет присутствовать этот параметр, то перед запуском и после завершения работы графического установщика будет запущена командная оболочка (shell). Это очень полезное средство для выявления причин отсутствия запуска графической части программы установки. Последовательность работы внутренних сценариев следующая: install2 → xinit → alterator-install2 → alterator-wizard. При необходимости можно вручную загрузить Xorg (команда xinit) и в открывшемся окне терминала запустить alterator-install2 (или alterator-wizard) вручную. Лог-файлы инсталлятора сохраняются в /tmp. xdriver — отключает авто определение и принудительно загружает указанный драйвер; можно указать любой драйвер, поддерживаемый Xorg. Например, i915, nvidia, radeon, fglrx и т.д.

Существуют универсальные видеодрайверы:

  • vesa — минимальный драйвер, работает в общем так же, как и любой другой, но ожидает не конкретной видеокарты, а пытается следовать стандартам VESA (многие видеокарты его нормально поддерживают). Этот драйвер умеет только выводить изображение без ускорения и прочих «излишеств», достаточно медленно работает.
  • fbdev — ещё более «тупой» драйвер. Он передаёт команду связаться с ядром и пытается рисовать картинку через него. Под этим драйвером может оказаться со стороны ядра несколько разных драйверов, но чаще всего это опять же VESA, но особая, ядерная версия. Это часто работает ещё медленнее, но практически всегда. И современная тенденция такова, что пытаются увеличить возможности и быстродействие ядерного модуля.

Информация

Всё описание взято отсюда: ALT Linux Wiki: Первая помощь - Проблемы с драйвером видеокарты

Прочие решения известных проблем

Также, другие проблемы и возможные их решения, вы можете найти в главе 8 документации NVIDIA

Известные нерешённые проблемы

Системы, где есть Nvidia со второй гибридной графикой нет доступа к Wayland сессии:

На сегодняшний день есть проблемы с запуском Wayland, на системах с гибридной графикой, поэтому правила в GDM запрещает работу Wayland в таких случаях.

Про проблему написано тут и тут.

Внимание

Вы можете отключить правила GDM, замаскировав их, но тогда можете столкнуться с проблемами!

Прочие известные нерешённые проблемы

В главе 9 документации NVIDIA можно ознакомиться с известными нерешёнными проблемами у драйвера NVIDIA

Проблемы c Wayland протоколом

У NVIDIA c wayland существуют нерешённые проблемы. Вы можете ознакомиться с ними в приложении L документации NVIDIA

Способы управления частотами/лимитами видеокарты

nvidia-smi

Информация

Все указанные цифры указаны для примера. Все решения и риски лежат на вашей ответственности.

С его помощью можно установить порог TDP

shell
su -
nvidia-smi -pl 160.30

Вывести в терминале поддерживаемые частоты:

shell
su -
nvidia-smi -q -d SUPPORTED_CLOCKS

Установить пороги часто GPU:

shell
su -
nvidia-smi --lock-gpu-clocks=0,1695 --mode=1

Установить пороги часто видеопамяти:

shell
su -
nvidia-smi --lock-memory-clocks=0,5001

Для детальной настройки смотрите его man-страницу

Подсказка

Описание одного из примеров применения управления лимитами через nvidia-smi можно посмотреть тут: https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks#Lowering_GPU_Boost_Clocks

Ещё одно описание применения: https://justin.palpant.us/monitor-and-maximize-nvidia-gpu-performance-on-linux/

Внимание

Изменение параметров не сохраняется при перезагрузке. Для сохранения параметров используйте bashrc, udev, либо systemd.

Пример для способа с systemd можно посмотреть тут.

Пример для udev тут.

Coolbits (Только для X11)

Для сессии x11 (через X Config Options) существует возможность активировать не поддерживаемые NVIDIA функции через NV-CONTROL X расширение. Активация функций происходит через указание битовой макси:

Осторожно

Для работы необходима сессия под X11 и отключённый режим nvidia_drm_modeset=0, поэтому, на сегодняшний день эта возможность является устаревшей.

Также, для разных версий драйвера в документации заявлено разное кол-во функций. в документации для 364.19 их описано 6, а в 550.54.14 их уже 2.

БитОписание
1Если установлено значение "1" (бит 1), позволяет разгонять старые (до Fermi) ядра на странице "Тактовые частоты" в разделе "Настройки nvidia".
2Если установлено значение "2" (бит 1), драйвер NVIDIA попытается инициализировать SLI при использовании графических процессоров с разным объёмом видеопамяти.
4Если установлено значение "4" (бит 2), на странице nvidia-настройки термомонитора будет доступна настройка скорости вращения вентилятора графического процессора на графических платах с программируемыми возможностями вентилятора.
8Если установлено значение "8" (бит 3), на странице PowerMizer в панели управления nvidia-настройки отобразится таблица, которая позволяет устанавливать смещения для каждого тактового домена и уровня производительности для применения к тактовым значениям. Это разрешено на некоторых графических процессорах GeForce. Не все тактовые диапазоны или уровни производительности могут быть изменены.(для Fermi и выше)
16Если установлено значение "16" (бит 4), интерфейс командной строки nvidia-settings позволяет настроить перенапряжение графического процессора. Это разрешено на некоторых графических процессорах GeForce.(для Fermi и выше)
0Если установлено значение "0" (бит 0), все неподдерживаемые функции отключены.

Установить битовую маску можно либо вручную в конфигурационном файле xorg.conf в разделе Device, либо через такие программы, как nvidia-xconfig и EnvyControl

Пример работы с nvidia-xconfig:

shell
nvidia-xconfig --cool-bits=2

Пример ручной записи в xorg.conf:

shell
su -
cat << _EOF_ > /etc/X11/xorg.conf.d/22-cool_bits.conf
Section "Device"
	Identifier "NVIDIA GeForce"
	Driver     "nvidia"
	Option     "Coolbits" "24"
EndSection
_EOF_

PowerMizer

PowerMizer -- это созданная NVIDIA технология предназначенная для экономии энергии.

Внимание

Начиная с драйвера 530.XX, данная технология была убрана и рекомендовано использовать nvidia-smi (ссылка на форум обсуждения). На старых драйверах работает в штатном режиме.

Цитата

Поскольку мир сталкивается с постоянно растущей потребностью в своих ресурсах, любая возможность устранить растрату энергии может помочь. Технология NVIDIA® PowerMizer® — это интеллектуальное решение для управления питанием, доступное на всех графических процессорах (GPU) NVIDIA, которое может эффективно продлить срок службы батареи и сократить потери энергии — и все это при обеспечении производительности по требованию даже при подключении к сети.

PowerMizer разрешает изменить политику работы энергосбережения видеокарты.

Изменение политики складывается из включения\выключения технологии, и из стратегии и указания режима производительности для каждого типа работы питания (от сети АС и от батареи DC).

1) Включение PowerMizer

Включение/выключение технологии происходит через указание в параметре PowerMizerEnable значений 0x0(выключен) и 0x1(включён).

Пример: PowerMizerEnable=0x1

2) Стратегии

Они позволяют выбирать логику подбора частот.

Существуют следующие стратегии:

СтратегияОписание
22Стратегия с фиксированной тактовой частотой - карта работает с фиксированная частота вне зависимости от использования графического процессора
33Адаптивная стратегия тактовой частоты - карта работает на максимальном уровне энергосбережения пока приложения не начинают интенсивно использовать ресурсы карты. (проверяет необходимость смены режима производительности каждые 15 секунд)

Указываются они для каждого типа работы питания следующим образом: PerfLevelSrc=0x[стратегия для работы от батареи][стратегия для работы от сети].

Пример: PerfLevelSrc=0x2233

3) Режимы производительности

Как такового выбора частот нет, вместо этого предлагается разных 3 пресета.

Режимы производительности применяются только при стратегии с фиксированной частотой 22. Для адаптивной стратегии 33 указание режима не требуется.

Существуют следующие режимы производительности:

РежимОписание
0x1Максимальная производительность - обычно уровень производительности с самым высоким уровнем производительности
0x2Сбалансированный - используется один из средних уровней производительности
0x3Максимальное энергосбережение - обычно используется минимальный уровень производительности

Значения указываются в параметрах PowerMizerDefault и PowerMizerDefaultAC.

Пример: PowerMizerDefaultAC=0x3;PowerMizerDefault=0x1

ПараметрОписание
PowerMizerDefaultСодержит значение режима PowerMizer, которое будет использоваться для режима питания от батареи
PowerMizerDefaultACСодержит значение режима PowerMizer, которое будет использоваться для режима питания от сети

Если у вас только один тип работы питания, либо определяется только один (обычно от сети - AC, проверьте текущий параметр GPUPowerSource), используйте только тот параметр, который определяется в системе.

Есть 2 способа записи настроек:

Описание примера

В примере использовал вариант, когда для работы от сети и от батареи выбран с фиксированной частотой PerfLevelSrc=0x2222, для питания от батареи выбрал максимальное энергосбережение PowerMizerDefaultAC=0x3, а для питания от сети максимальную производительность PowerMizerDefaultAC=0x3

  1. Через запись в /etc/modprobe.conf:
shell
su -
cat << _EOF_ > /etc/modprobe.d/nvidia_PowerMizer.conf
options nvidia NVreg_RegistryDwords="PowerMizerEnable=0x1;PerfLevelSrc=0x2222;PowerMizerDefault=0x1PowerMizerDefaultAC=0x3"
_EOF_
make-initrd
  1. через запись в /etc/X11/xorg.conf (Только для X11):
shell
su -
cat << _EOF_ > /etc/X11/xorg.conf.d/21-PowerMizer.conf
Section "Device"
	Identifier "NVIDIA GeForce"
	Driver     "nvidia"
	Option     "RegistryDwords" "PowerMizerEnable=0x1;PerfLevelSrc=0x2222;PowerMizerDefault=0x1PowerMizerDefaultAC=0x3"
EndSection
_EOF_

Для вступления настроек в силу необходима перезагрузка.

Данные об оборудовании и ПО пользователей за 2024 год.

Ознакомиться с таблицей вы можете перейдя по ссылке

Nouveau драйвер:

Смена проприетарного драйвера от NVIDIA на Nouveau

Для установки открытого драйвера NOUVEAU, необходимо следующее:

shell
su -
apt-get remove nvidia_glx_common
# удаляем initcall_blacklist и nvidia-drm.modeset если они есть
mcedit /etc/sysconfig/grub2 # тут может быть и nano, и vi, и другой редактор
# сохраняем и выходим
grub-mkconfig -o /boot/grub/grub.cfg
# удаляем так-же ссылку на 61-gdm.rules, если она есть
rm /etc/udev/rules.d/61-gdm.rules
# Удаляем правила запрещающие Nouveau, если они есть
rm /etc/modprobe.d/blacklist-nvidia-x11.conf
# Удаляем изменение размещения видеопамяти, если оно есть
rm /etc/modprobe.d/nvidia_videomemory_allocation.conf
# ставим драйвер (в нашем случае для ядра un-def)
apt-get install kernel-modules-drm-nouveau-un-def
# (опционально) переустановить xorg обвязку
apt-get install --reinstall xorg-dri-nouveau xorg-drv-nouveau
# перезагрузиться
reboot
shell
su -
epm -e nvidia_glx_common
# удаляем initcall_blacklist и nvidia-drm.modeset если они есть
mcedit /etc/sysconfig/grub2 # тут может быть и nano, и vi, и другой редактор
# сохраняем и выходим
grub-mkconfig -o /boot/grub/grub.cfg
# удаляем так-же ссылку на 61-gdm.rules, если она есть
rm /etc/udev/rules.d/61-gdm.rules
# Удаляем правила запрещающие Nouveau, если они есть
rm /etc/modprobe.d/blacklist-nvidia-x11.conf
# Удаляем изменение размещения видеопамяти, если оно есть
rm /etc/modprobe.d/nvidia_videomemory_allocation.conf
# (опционально) переустановить xorg обвязку
epm reinstall xorg-dri-nouveau xorg-drv-nouveau
# перезагрузиться
reboot

Как только все загрузилось и мы убедились, что NOUVEAU заработало:

shell
su -
make-initrd
# подождать пока соберется initrd
# посмотреть что в выводе сборки initrd присутствует Nouveau
reboot

Осторожно

Для видеокарт Kepler и Maxwell потребуется обязательное внедрение NVIDIA прошивки.

Управление питанием (Turing и новее)

Nouveau, драйвер с открытым исходным кодом для графических процессоров Nvidia, развивается посредством реверс-инжиниринга. В области управления питанием были как прогресс, так и регресс (см. страницу PowerManagement).

Однако, начиная с архитектуры Turing, видеокарты получили полную поддержку управления питанием благодаря GSP прошивкам от Nvidia. Видеокарты на базе архитектур Ampere и Ada Lovelace имеют эту поддержку по умолчанию. Для видеокарт на базе архитектуры Turing необходимо указать специальный параметр в ядре.

Для того, чтобы на видеокартах Turing заработало управление питанием, необходимо прописать в параметр GRUB_CMDLINE_LINUX_DEFAULT значение nouveau.config=NvGspRm=1 и сгенерировать новых grub.cfg:

shell
su -
mcedit /etc/sysconfig/grub2
grub-mkconfig -o /boot/grub/grub.cfg

Внедрение NVIDIA прошивки

Большинство видеочипов NVIDIA имеют встроенный аппаратный декодер, и некоторые видеочипы, для его работы, отдельно требуют извлечённой из драйвера NVIDIA прошивку. NVIDIA прошивка требуется для видеокарт с аппаратным декодером: VP1, VP2, VP3, VP4.0, VP4.2, VP5 или VP6+. Список видеокарт с данными декодерами смотрите на сайте nouveau.freedesktop в блоке Which card has what engine

Информация

Хоть вышеупомянутые аппаратные декодеры и требуют NVIDIA прошивку, не во всех реализована её поддержка. Статус поддержки для конкретного декодера смотрите на сайте nouveau.freedesktop в блоке Video engine support status

Осторожно

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

Распаковываем прошивку:

shell
mkdir -p /tmp/nouveau && cd /tmp/nouveau
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/340.108/NVIDIA-Linux-x86_64-340.108.run
wget https://raw.github.com/envytools/firmware/master/extract_firmware.py
sh NVIDIA-Linux-x86_64-340.108.run --extract-only
python3 extract_firmware.py

Устанавливаем прошивку:

shell
su -
cd /tmp/nouveau
mkdir /lib/firmware/nouveau
cp -d nv* vuc-* /lib/firmware/nouveau/

Reclocking (от Celsius до Fermi)

Видеочипы до архитектуры Turing не имеют поддержку управления питания на Nouveau, из-за чего остаются в режиме пониженного энергопотребления с пониженными частотами. Но на некоторых архитектурах есть возможность менять частоты GPU и видеопамяти через уже заготовленные пресеты состояния питания. Видеочипы от Celsius до Tesla имеют возможность изменять частоты видеопамяти, а видеокарты от Rankine до Fermi имеют возможность изменять частоты GPU. Все, кто входят и в 1-ый и во 2-ой диапазон имеют управление частот и GPU и видеопамяти, что будет отображено в описании пресетов.

Сначала необходимо проверить доступные состояния питания:

shell
su -
cat /sys/kernel/debug/dri/0/pstate

Вывод должен быть похож на это:

shell
07: core 405 MHz memory 810 MHz
0f: core 653-954 MHz memory 1600 MHz
AC: core 953 MHz memory 1600 MHz

Далее пробуем интересующее состояние на работоспособность:

shell
su -
echo pstate > /sys/kernel/debug/dri/0/pstate

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

Как пример, в описании будет указано значение 0f, которое перевели в десятеричный формат. Его десятеричное значение - 15

ПараметрОписание
nouveau.config=NvClkMode=15На этапе загрузки устанавливает необходимое состояние питания.
nouveau.config=NvClkModeAC=15На этапе загрузки устанавливает необходимое состояние питания, если устройство работает от сети.
nouveau.config=NvClkModeDC=15На этапе загрузки устанавливает необходимое состояние питания, если устройство работает от батареи.

Необходимо прописать в строку с GRUB_CMDLINE_LINUX_DEFAULT один или несколько параметров и сгенерировать новых grub.cfg:

shell
su -
mcedit /etc/sysconfig/grub2
grub-mkconfig -o /boot/grub/grub.cfg

Осторожно

Хоть эта поддержка и существует давно, она всё ещё имеет статус MOSTLY (Всё основное сделано, но имеется ряд нерешённых проблем), и скорее всего, будет недоделанной навсегда.** Некоторые состояния могут перегреть устройство и навредить, пожалуйста делая это, следите за состоянием видеочипа!**

Управление скоростью вентиляторов (от Rankine до Maxwell)

Видеочипы от Rankine до Maxwell имеют поддержку управления вентиляторами. Чтобы узнать точно, есть ли поддержка, нужно проверить, есть ли файлы управления:

shell
ls /sys/class/drm/card0/device | grep pwm1

Должны быть файлы вида:

shell
pwm1
pwm1_enable
pwm1_max
pwm1_min
Файл управленияОписание
pwm1Управление постоянной скоростью.
pwm1_enableВключение режимов управления скоростью. 0 - None, 1 - MANUAL, 2 - AUTO
pwm1_maxУстановка максимальной скорости.
pwm1_minУстановка минимальной скорости.

Путём добавления процентных значений скоростей в эти файлы (Кроме pwm1_enable, где выбираются режимы) мы можем ими управлять.

shell
su -
echo 1 > /sys/class/drm/card0/device/pwm1_enable # Включаем ручное управление. Соответственно, если будет 0 или 2, указывать скорости нет необходимости
echo 40 > /sys/class/drm/card0/device/pwm1 # 40 это 40% от мощности вентилятора

Один из вариантов сделать изменения постоянными, занести их в udev правила.

Пример ручного управления:

shell
su -
cat << _EOF_ > /etc/udev/rules.d/50-nouveau-hwmon.rules
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="1", ATTR{pwm1_enable}="40"
_EOF_

Пример автоматического управления:

shell
su -
cat << _EOF_ > /etc/udev/rules.d/50-nouveau-hwmon.rules
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2"
_EOF_

Пример управления минимальными и максимальными значениями:

shell
su -
cat << _EOF_ > /etc/udev/rules.d/50-nouveau-hwmon.rules
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="1", ATTR{pwm1_min}="10", ATTR{pwm1_min}="90"
_EOF_

Осторожно

Изменяйте вращение вентиляторов на свой страх и риск! При неправильном использовании вы можете перегреть видеокарту.

Список параметров Nouveau для ядра

Существует список параметров для ядра, про которые мало что можно написать, либо мало информации.

Файл управленияОписание
runpmПринудительное включение 1 или отключение 0, управление питанием во время работы. По умолчанию только для систем Optimus установлено значение -1
noaccelОтключение ускорение ядра/abi16 (т. е. 1 для отключения ускорения, 0 для включения)
nofbaccelОтключение ускорения fbcon (т. е. 1 — отключить ускорение, 0 — включить)
modesetДолжен ли быть включён драйвер. 0 для отключённого, 1 для включённого, 2 для "безголового?"
config.NvAGPРежим agp (0 для отключения) для принудительного
config.NvBiosУказать источник VBIOS как один из OpenFirmware/PRAMIN/PROM/ACPI/PCIROM/PLATFORM или имя файла, переданное в request_firmware
config.NvBoostУказать режим Boost для Fermi и новее. 0: базовые тактовые частоты (по умолчанию) 1: тактовые частоты в режиме Boost 2: максимальные тактовые частоты
config.NvFanPWMВключить использование ШИМ для вентилятора, автоматическое определение по умолчанию
config.NvForcePostНужно ли принудительно выполнять POST устройства, по умолчанию отключено
config.NvMemExecПринудительное включение/отключение выполнения сценария синхронизации памяти.
config.NvGrUseFWИспользовать прерывания MSI, включённые по умолчанию на чипсетах, которые их поддерживают
config.NvMXMDCBОчистка выходов DCB из BIOS, включено по умолчанию
config.NvPCIEТолько семейство NV40, использовать ли PCI-E GART, включено по умолчанию.
config.NvPmEnableGatingВключает синхронизацию для графических процессоров Kepler
vram_pushbufСоздать push-буферы DMA во VRAM
duallinkРазрешить двухканальную TMDS (включено по умолчанию)
tv_normДефолтный ТВ норм. По умолчанию — PAL. Допустимые значения: PAL, PAL-M, PAL-N, PAL-Nc, NTSC-M, NTSC-J, hd480i, hd480p, hd576i, hd576p, hd720p, hd1080i. Это применимо только к картам, у которых нет внешних кодировщиков
tv_disableОтключить обнаружение ТВ-выхода

Источники:

https://www.altlinux.org/Nvidia

https://www.kernel.org/doc/html/latest/gpu/drm-kms.html

https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers

https://en.wikipedia.org/wiki/Nouveau_(software)

https://www.altlinux.org/#Проблемы_с_драйвером_видеокарты

https://x.org/

https://nouveau.freedesktop.org/

https://bugzilla.altlinux.org/39108

https://packages.altlinux.org/ru/sisyphus/srpms/nvidia_glx_common/

https://download.nvidia.com/XFree86/Linux-x86_64/550.40.07/README/powermanagement.html

https://wiki.archlinux.org/title/NVIDIA

https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks

https://wiki.archlinux.org/title/Kernel_mode_setting

https://wiki.archlinux.org/title/Nouveau

https://wiki.gentoo.org/wiki/Nouveau

https://web.archive.org/web/20141031191559/https://kalgan.cc/blog/posts/Controlling_nVidia_cards_fans_with_nouveau_in_Debian/

Авторы

История изменений