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
Выбор правильного драйвера:
При выборе драйвера для графического чипа, следует учесть три основных аспекта:
- Развитие драйверов: Как Nouveau, так и NVIDIA постоянно обновляются и развиваются. Невозможно точно предсказать, какие функции будут добавлены или изменены в каждом из них в будущем. Если однажды услышали, что чего-то нет в каких-то драйверах, через полгода это может поменяться.
- Архитектура графического чипа: Важно учитывать, что старые модели графических чипов, как правило, лучше работают с драйвером Nouveau, чем с последними поддерживаемым драйвером NVIDIA, однако всё индивидуально и необходимо проверять для каждой архитектуры видеочипов отдельно. Для проверки уровня поддержки различных архитектур можно обратиться к FeatureMatrix для Nouveau и к этой странице в случае с NVIDIA (См. блок Настройка драйвера).
- Происхождение драйверов: Проприетарный драйвер 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 и решение проблемы с неизвестным монитором, но только для нового драйвера.
Если необходима наиболее простая установка, используйте этот способ.
Выполните следующую команду в терминале:
su -
epm play switch-to-nvidiaПодсказка
Для корректной установки во время выполнения скрипта следует внимательно читать появляющиеся сообщения и в точности следовать им. Возможно, потребуется несколько перезагрузок. Например, для автоматического обновления ядра.
После успешного завершения работы скрипта нужно перезагрузить операционную систему.
Способ 2. Вручную
Для перехода с Nouveau на NVIDIA рекомендуется сначала обновить ядро:
su -
update-kernelДля дальнейшей установки проприетарного драйвера NVIDIA, необходимо перезагрузить операционную систему.
Установим проприетарный драйвер NVIDIA:
su -
rpm -e $(rpm -qf `modinfo -F filename nouveau`)
apt-get install nvidia_glx_common
nvidia-install-driver
make-initrdОсторожно
Не следует запускать фирменный инсталлятор драйвера NVIDIA из .run-файла!
Настройка драйвера
Существует 5 версий драйвера NVIDIA, устанавливающиеся в зависимости от возраста вашей видеокарты. Далее будет описана важная информация и настройка каждой из этих версий.
Чтобы узнать версию Вашего драйвера, необходимо ввести:
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:
su -
mcedit /etc/sysconfig/grub2
grub-mkconfig -o /boot/grub/grub.cfgВнимание
Имейте в виду, что эта функция безопасности отвечает за защиту от ряда методов эксплойта .
Сессия Wayland
Для работы Wayland необходимо 2 вещи:
- Активировать метод Kernel Mode Setting
- Настроить сохранение выделенных ресурсов видеопамяти
Внимание
У драйвера 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 вещи:
- Активировать метод Kernel Mode Setting
- Настроить сохранение выделенных ресурсов видеопамяти
Внимание
У драйвера 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 можно установить любым привычным и удобным способом:
Установка через терминал
su -
apt-get update
apt-get install nvidia-settingsepm -i nvidia-settingsnvidia-smi
nvidia-smi (также NVSMI) предоставляет возможности мониторинга и управления для NVIDIA Tesla, Quadro, GRID и GeForce начиная с семейства Fermi.
su -
apt-get update
apt-get install nvidia-smiepm -i nvidia-smiswitcheroo-control
Утилита для выбора графического устройства при запуске приложения с типом устройств dual-GPU
Для пользовательского выбора графического устройства при запуске приложения в рабочем окружении GNOME, необходимо установить утилиту switcheroo-control
Информация
Для систем, имеющих как встроенный, так и выделенный графический процессор, switcheroo-control по умолчанию принудительно использует встроенный графический процессор для экономии энергии.
Установка через терминал
su -
apt-get update
apt-get install switcheroo-control
systemctl enable --now switcheroo-control.serviceepm -i switcheroo-control
systemctl enable --now switcheroo-control.serviceПосле установки приложения switcheroo-control, в меню появится пункт «Запустить с помощью выделенной видеокарты»
EnvyControl
EnvyControl это утилита командной строки которая позволяет выбирать режим работы гибридной графики, на выбор представлено три режима
Гибридный режим
- Позволяет драйверу самому решать какой графический процессор использовать, обычно большую часть времени используется интегрированная графика, а дискретная графика работает только если она нужна, например в играх или программах для монтажа
- Позволяет использовать RTD3, подробнее
- Работает только на видеокартах Turing и выше
- Возможны проблемы с HDMI
Интегрированный режим
- Использует только интегрированную графику (Intel или AMD) отключая Nvidia
- Мониторы подключённые к Nvidia работать не будут
Nvidia режим
- Используется исключительно видеокарта от Nvidia
Пара примеров
Установить интегрированный режим:
su-
envycontrol -s integratedУстановить гибридный режим и включить RTD3 (если ничего не указывать то значение будет равно двум):
su-
envycontrol -s hybrid --rtd3Установить гибридный режим, включить ForceCompositionPipeline, а так же установить coolbits на 28 разрешая разгон видеокарты:
su-
envycontrol -s nvidia --force-comp --coolbits 24Установка через терминал
su -
apt-get update
apt-get install envycontrolepm -i envycontrolПосле установки рекомендуем ввести команду envycontrol --help чтобы ознакомиться со всеми возможностями утилиты, если вы желаете использовать графическую утилиту, доступно так же расширение для GNOME
vulkan-tools
Программа vulkaninfo отображает информацию о поддерживаемых возможностях Vulkan для пользователей графических устройств NVIDIA. Необходимо установить пакет vulkan-tools:
su -
apt-get update
apt-get install vulkan-toolsepm -i vulkan-toolsДля вывода информации vulkaninfo в терминале введите:
vulkaninfo --summarynvidia-vaapi-driver
Реализация VA-API, использующая NVDEC в качестве бэкенда. Эта реализация специально разработана для использования в Firefox для ускоренного декодирования веб-содержимого и может работать некорректно в других приложениях. Доп. информацию смотрите на странице проекта
su -
apt-get update
apt-get install nvidia-vaapi-drivernvidia-modprobe
Утилита nvidia-modprobe используется компонентами драйвера NVIDIA в пользовательском пространстве для проверки загрузки модуля ядра NVIDIA и наличия файлов символьных устройств NVIDIA. Эти возможности обычно предоставлялись системами конфигурации дистрибутива GNU/Linux, такими как udev. По возможности рекомендуется использовать встроенные механизмы вашего дистрибутива GNU/Linux для управления загрузкой модулей ядра и созданием файлов устройств. Эта утилита предоставляется в качестве запасного варианта для работы независимо от дистрибутива.
su -
apt-get update
apt-get install nvidia-modprobenvidia-cuda-toolkit
Этот пакет содержит библиотеки и сопутствующие файлы, необходимые для запуска программ, использующих CUDA.
su -
apt-get update
apt-get install nvidia-cuda-toolkitnvidia-xconfig
nvidia-xconfig - это инструмент, предназначенный для обеспечения базового управления по параметрам конфигурации, доступным в драйвере NVIDIA X11.
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 - NVIDIA (proprietary).
После выбора соглашаемся, нажимаем ОК и Применить и снова перезагружаем операционную систему.
Детальная настройка драйвера
Активация Kernel Mode Setting.
Необходимо прописать в параметр GRUB_CMDLINE_LINUX_DEFAULT значение nvidia-drm.modeset=1 и сгенерировать новых grub.cfg:
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.
Настройка сохранение выделенных ресурсов видеопамяти
1 способ. Через сохранение в безымянных временных файлах.
Такой способ позволяет использовать глубокий уровень сна (S4 и S5), и не требует дополнительной поддержки S0ix.
Внимание
Существу проблемы на некоторых устройствах с PRIME. Этот способ направлен больше на настольные ПК
Как включить:
Активируем интерфейсы управления питания NVIDIA:
su -
systemctl enable nvidia-suspend.service nvidia-resume.service nvidia-hibernate.serviceПодсказка
Эти интерфейсы заменяют стандартные sleep hibernate и resume, давая возможность записать ресурсы видеопамяти перед отключением питания у видеокарты.
Информация
Если вы устанавливали проприетарный драйвер NVIDIA при помощи epm, то данная команда уже была выполнена автоматически.
В опциях драйвера NVIDIA указываем о смене способа сохранения ресурсов видеопамяти и указываем куда:
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. Для этого выполните команду:
cat /sys/power/mem_sleepПодсказка
Если в выводе есть s2idle, значит s2idle поддерживается и проверяем видеочип. Если в выводе нет s2idle, тогда используйте 1 способ.
Проверяем, поддерживает ли s0ix видеочип. Для этого выполните команду, перед этим подставив расположение вашего устройства(Посмотрите по каталогам после /proc/driver/nvidia/gpus. У каждого устройства своё значение). :
grep 'Video Memory Self Refresh' /proc/driver/nvidia/gpus/<Domain>:<Bus>:<Device>.0/powerПодсказка
Если ответ Video Memory Self Refresh: is supported значит s0ix поддерживает и можно проверять систему дальше.
Если система и видеочип поддерживает указанные режимы, добавляем параметр NVreg_EnableS0ixPowerManagement=1:
su -
modprobe nvidia NVreg_EnableS0ixPowerManagement=1Если при выводе cat /sys/power/mem_sleep s2idle не был в скобках (Вот так: [s2idle]), выполняем в консоли:
su -
echo "s2idle" > /sys/power/mem_sleepПосле указания опции и режима , тестируем сон и проверяем, всё ли корректно загрузилось. Если всё хорошо, добавляем настройки на постоянную загрузку:
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:
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:
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':
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 добавляем конфигурационный файл с параметром:
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 добавляем конфигурационный файл с параметром:
su -
cat << _EOF_ > /etc/modprobe.d/nvidia_PAT.conf
# This options activate PAT
options nvidia NVreg_UsePageAttributeTable=1
_EOF_
make-initrdВнимание
Удостоверьтесь, что ваша система поддерживает PAT, а в противном случае, у вас могут быть проблемы с системой.
Проверка поддержки PAT:
su -
cat /proc/cpuinfo | grep patGSP прошивка
Некоторые видеокарты имеют GSP процессор, который может использоваться для разгрузки задач и управления графическим процессором. По умолчанию, он включён для ограниченного числа видеокарт. Тем не менее, начиная с архитектуры Turing, этот процессор присутствует во всех видеокартах и его можно принудительно включить(Подробнее см. GSP firmware)
В /etc/modprobe.d добавляем конфигурационный файл с параметром:
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
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:
su -
mcedit /etc/sysconfig/grub2Добавляем в параметр GRUB_CMDLINE_LINUX_DEFAULT значение initcall_blacklist=simpledrm_platform_driver_init и генерируем grub.cfg.
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:
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
su -
nvidia-smi -pl 160.30Вывести в терминале поддерживаемые частоты:
su -
nvidia-smi -q -d SUPPORTED_CLOCKSУстановить пороги часто GPU:
su -
nvidia-smi --lock-gpu-clocks=0,1695 --mode=1Установить пороги часто видеопамяти:
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:
nvidia-xconfig --cool-bits=2Пример ручной записи в xorg.conf:
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
- Через запись в /etc/modprobe.conf:
su -
cat << _EOF_ > /etc/modprobe.d/nvidia_PowerMizer.conf
options nvidia NVreg_RegistryDwords="PowerMizerEnable=0x1;PerfLevelSrc=0x2222;PowerMizerDefault=0x1PowerMizerDefaultAC=0x3"
_EOF_
make-initrd- через запись в /etc/X11/xorg.conf (Только для X11):
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, необходимо следующее:
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
# перезагрузиться
rebootsu -
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 заработало:
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:
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 для их нормальной загрузки обязательно требуют внедрение прошивки. Если при первой установке или запуске системы на устройствах с видеочипом одной из этих архитектур наблюдаете проблемы, вы можете временно перейти на другой видеорежим
Распаковываем прошивку:
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Устанавливаем прошивку:
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 и видеопамяти, что будет отображено в описании пресетов.
Сначала необходимо проверить доступные состояния питания:
su -
cat /sys/kernel/debug/dri/0/pstateВывод должен быть похож на это:
07: core 405 MHz memory 810 MHz
0f: core 653-954 MHz memory 1600 MHz
AC: core 953 MHz memory 1600 MHzДалее пробуем интересующее состояние на работоспособность:
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:
su -
mcedit /etc/sysconfig/grub2
grub-mkconfig -o /boot/grub/grub.cfgОсторожно
Хоть эта поддержка и существует давно, она всё ещё имеет статус MOSTLY (Всё основное сделано, но имеется ряд нерешённых проблем), и скорее всего, будет недоделанной навсегда.** Некоторые состояния могут перегреть устройство и навредить, пожалуйста делая это, следите за состоянием видеочипа!**
Управление скоростью вентиляторов (от Rankine до Maxwell)
Видеочипы от Rankine до Maxwell имеют поддержку управления вентиляторами. Чтобы узнать точно, есть ли поддержка, нужно проверить, есть ли файлы управления:
ls /sys/class/drm/card0/device | grep pwm1Должны быть файлы вида:
pwm1
pwm1_enable
pwm1_max
pwm1_min| Файл управления | Описание |
|---|---|
| pwm1 | Управление постоянной скоростью. |
| pwm1_enable | Включение режимов управления скоростью. 0 - None, 1 - MANUAL, 2 - AUTO |
| pwm1_max | Установка максимальной скорости. |
| pwm1_min | Установка минимальной скорости. |
Путём добавления процентных значений скоростей в эти файлы (Кроме pwm1_enable, где выбираются режимы) мы можем ими управлять.
su -
echo 1 > /sys/class/drm/card0/device/pwm1_enable # Включаем ручное управление. Соответственно, если будет 0 или 2, указывать скорости нет необходимости
echo 40 > /sys/class/drm/card0/device/pwm1 # 40 это 40% от мощности вентилятораОдин из вариантов сделать изменения постоянными, занести их в udev правила.
Пример ручного управления:
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_Пример автоматического управления:
su -
cat << _EOF_ > /etc/udev/rules.d/50-nouveau-hwmon.rules
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2"
_EOF_Пример управления минимальными и максимальными значениями:
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://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
Авторы
Владислав Бабенко
Олег Щавелев
iQQator
Давид Султаниязов
Семен Фомченков
Антон Политов
Арсений Засыпкин
Boria138
Хачатур Тоникян
Кирилл Уницаев