Skip to content

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

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

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

Подсказка

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

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

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

shell
su -
epm play switch-to-nvidia

Внимание

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

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

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

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

shell
su -
update-kernel

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

Установка проприетарного драйвера и добавление Nouveau в чёрный список:

  • Перейдите в режим root:
shell
su -
  • Установите nvidia_glx_common:
shell
apt-get install nvidia_glx_common
shell
epm -i nvidia_glx_common

:::

  • Добавьте Nouveau в чёрный список:
shell
echo "blacklist nouveau" > /etc/modprobe.d/blacklist-nvidia-x11.conf
  • Запустите скрипт установки драйверов:
shell
nvidia-install-driver

Осторожно

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

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

Существует 4 версии драйвера NVIDIA, устанавливающиеся в зависимости от поколения видеокарты.

Далее будет описана важная информация и настройка каждой из этих версий.

Подсказка

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

shell
inxi -G

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

При установке драйвера через EPM настройка под Wayland производится автоматически. Если использован этот способ, дальнейшая настройка под 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.

Kwin удалила поддержку EGLStreams.

Проблема с Intel:

Драйвер версии 470.223.02 и старше, начиная с версии ядра Linux 5.18 может работать неправильно в системах с процессорами Intel 11-го поколения и новее из-за несовместимости с Indirect Branch Tracking (IBT).

Его можно отключить, добавив значение ibt=off в параметр GRUB_CMDLINE_LINUX_DEFAULT:

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

Внимание

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

Сессия Wayland

Kwin удалила поддержку EGLStreams.

Сессия 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.

Kwin удалила поддержку EGLStreams.

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

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

Сессия Wayland

Kwin удалила поддержку EGLStreams.

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

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

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

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

Подсказка

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

При установке через EPM и для пользователей Ximper

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

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

Информация

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

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

NVIDIA Settings

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

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

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

NVIDIA System Management Interface

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

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

switcheroo-control

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 — CLI-утилита, которая позволяет выбирать режим работы гибридной графики:

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

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

    • Использует только интегрированную графику (Intel или AMD) отключая NVIDIA
    • Мониторы подключённые к NVIDIA работать не будут
  3. Режим 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 28
shell
su -
apt-get update
apt-get install envycontrol
shell
epm -i envycontrol

После установки рекомендуется ввести команду envycontrol --help, чтобы ознакомиться со всеми возможностями утилиты. Также доступен апплет для KDE plasma

Vulkan Information

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

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

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

shell
vulkaninfo --summary

nvidia-vaapi-driver

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

shell
su -
apt-get update
apt-get install nvidia-vaapi-driver
shell
epm -i 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
shell
epm -i nvidia-modprobe

nvidia-cuda-toolkit

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

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

nvidia-xconfig

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

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

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

Активация 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, выполните:

shell
su -
cat /sys/module/nvidia_drm/parameters/modeset

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

В драйверах 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% сверху, будет вполне достаточно для сохранения.

Узнать количество видеопамяти можно командой:

shell
nvidia-smi -q -d MEMORY | grep 'FB Memory Usage' -A1

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

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

Способ 2. Режим сохранения питания S0ix.

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

  • Проверьте, поддерживает ли система s2idle:
shell
cat /sys/power/mem_sleep

Подсказка

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

  • Проверьте, поддерживает ли видеочип S0ix:
shell
grep 'Video Memory Self Refresh' /proc/driver/nvidia/gpus/<Domain>:<Bus>:<Device>.0/power

Информация

Посмотрите в директории после /proc/driver/nvidia/gpus, у каждого устройства своё значение <Domain>, <Bus> и <Device>

Подсказка

Если ответ 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

:: info

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

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

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

:::

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

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

  • Добавьте в /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 «на лету»

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

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

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

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

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

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

Информация

Для видеокарт Turing и старше нужна дальнейшая настройка

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

  • Для автоматизации управления добавьте правила в /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

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

Драйвер NVIDIA позволяет сменить старый атрибут страничной организации памяти MTRR на 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, иначе у вас могут возникнуть проблемы с системой:

shell
su -
cat /proc/cpuinfo | grep pat

GSP прошивка

Некоторые видеокарты имеют GPU System Processor (GSP), который может использоваться для разгрузки задач и управления графическим процессором. По умолчанию он включён для ограниченного числа видеокарт.

Начиная с архитектуры Turing, GSP присутствует во всех видеокартах и его можно принудительно включить:

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:

Информация

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

  • Внесите изменение в конфигурацию 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 (для отключения заставки во время вывода логов).

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

Откройте приложение "Параметры системы KDE5", перейдите во вкладку "Экран", в опции "Настройка экранов" выберите экран "Unknown" в параметре "Устройство" и отключите его, убрав галочку с параметра "Включен".

В сессии Wayland панель задач "зависает" (Plasma 5.7):

Необходимо отключить "миниатюры окон" в настройках панели задач (Plasma/Tasks) Для этого необходимо снять галочку с Показывать миниатюру окна при наведении указателя мыши на элемент в панели задач.

Для этого щёлкните правой кнопкой мыши и выберите "настроить виджет «Панель задач»" -> "Внешний вид" -> "Показывать миниатюру окна при наведении указателя мыши на элемент в панели задач"

Информация

Проблема наблюдается только на Plasma 5.x и затрагивает также владельцев AMD. Подробнее об ошибке: https://bugs.kde.org/show_bug.cgi?id=469016

P.S: В KDE Plasma 6 данную проблему уже решили.

Не работает KMS

Если при загрузке KDE plasma возникает чёрный экран или при выполнении 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

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

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

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

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

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

Осторожно

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

Установить порога 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 можно посмотреть тут и тут

Внимание

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

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), на странице Настройки термомонитора будет доступна регулировка скорости вращения вентилятора графического процессора на графических платах с программируемыми возможностями вентилятора.
8Если установлено значение 8 (бит 3), на странице PowerMizer в панели управления отобразится таблица, которая позволяет устанавливать смещение для каждого тактового домена и уровня производительности для применения к тактовым значениям. Это разрешено на некоторых графических процессорах 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 разрешает изменить политику работы энергосбережения видеокарты.

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

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

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

PowerMizerEnable=0x1
2. Стратегии

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

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

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

Указываются они для каждого типа работы питания следующим образом:

shell
PerfLevelSrc=0x[стратегия для работы от батареи][стратегия для работы от сети]
shell
PerfLevelSrc=0x2233
3. Режимы производительности

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

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

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

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

shell
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
Способ 2. Запись в /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 год.

Источники:

Авторы

The avatar of contributor named as x1z53 x1z53
The avatar of contributor named as Владислав Бабенко Владислав Бабенко
The avatar of contributor named as vlad196 vlad196
The avatar of contributor named as Oleg Shchavelev Oleg Shchavelev
The avatar of contributor named as Ampernic Ampernic
The avatar of contributor named as Krator3 Krator3
The avatar of contributor named as Vladislav Babenko Vladislav Babenko
The avatar of contributor named as trashb1t trashb1t

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