Установка драйверов NVIDIA на Fedora Linux

Статья обновлена 2022-09-23.

Если у вас видеокарта Intel или AMD, то ничего делать не нужно — в Fedora Linux уже используются из коробки нормальные и открытые драйвера для этих вендоров. Но единственный вариант получить производительность и энергоэффективность для GPU NVIDIA — это проприетарный драйвер. Данный гайд подходит как для десктопов с GPU NVIDIA, так и для гибридных ноутбуков с несколькими GPU (NVIDIA Optimus).

Дисклеймер: Никогда не ставьте NVIDIA драйвер с их сайта, как советуют в гайде с сайта if-not-true-than-false! Не важно на каком вы дистрибутиве. Их драйвер хреново работает, не обновляется автоматически, засирает систему и потом этот драйвер сложно удалить. Обычно, никто не захочет вам помогать, если вы испортите себе систему драйвером с сайта NVIDIA — это тяжело и бессмысленно. Сломали себе систему их драйвером? Переустанавливайте ОС.

Оглавление

Установка через GUI

Способ работает только для Fedora Workstation. Для Fedora Silverblue или других редакций Fedora Linux посетите раздел Установка через CLI.

Итак, сам способ:

  1. Отключите Secure Boot в UEFI.
  2. Включите сторонние репозитории. Этот пункт необходим только если вы не подключали RPMFusion nonfree ранее. Подключить сторонние репозитории можно на этапе первоначальной настройки системы или после, в настройках GNOME Software. Включение сторонних репозиториев при первой настройке свежеустановленной Fedora Workstation
    Включение сторонних репозиториев при первой настройке свежеустановленной Fedora Workstation
    Включение сторонних репозиториев с драйвером NVIDIA в GNOME Software
    Включение сторонних репозиториев с драйвером NVIDIA в GNOME Software
  3. Найдите драйвер NVIDIA подходящей версии в GNOME Software и поставьте его. 510я версия подойдёт для GPU поколения Maxwell или новее, а 470я версия для Kepler. Драйвер для Fermi и более старых GPU можно поставить только через CLI. Установка драйвера NVIDIA через GNOME Software
    Установка драйвера NVIDIA через GNOME Software
  4. Перезагрузитесь.
  5. ???????
  6. PROFIT!

Установка через CLI

  1. Отключите Secure Boot в UEFI.
  2. Все дальнейшие команды приводится в двух вариантах: для классических редакций Fedora Linux (Workstation, KDE Spin, etc) и для rpm-ostree редакций (Silverblue, Kinoite, etc). Вводите команды только для вашей редакции Fedora Linux, а остальное игнорируйте.
  3. Обновите систему:

    # Классическая Fedora Linux:
    sudo dnf upgrade --refresh
    reboot
    
    # Silverblue/Kinoite/etc:
    rpm-ostree upgrade
    reboot
    
  4. Подключите репозиторий RPMFusion:

    # Классическая Fedora Linux:
    sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
    
    # Silverblue/Kinoite/etc:
    rpm-ostree install -A https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
    
  5. ТОЛЬКО ДЛЯ АКТУАЛЬНЫХ GPU NVIDIA ПОКОЛЕНИЯ MAXWELL ИЛИ НОВЕЕ. Установите драйвер:

    # Классическая Fedora Linux:
    sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-power
    
    # Silverblue/Kinoite/etc:
    rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-power
    
  6. ТОЛЬКО ДЛЯ УСТАРЕВШИХ GPU NVIDIA ПОКОЛЕНИЯ KEPLER. Установите драйвер:

    # Классическая Fedora Linux:
    sudo dnf install akmod-nvidia-470xx xorg-x11-drv-nvidia-470xx-cuda xorg-x11-drv-nvidia-470xx-power
    
    # Silverblue/Kinoite/etc:
    rpm-ostree install akmod-nvidia-470xx xorg-x11-drv-nvidia-470xx-cuda xorg-x11-drv-nvidia-470xx-power
    
  7. ТОЛЬКО ДЛЯ УСТАРЕВШИХ GPU NVIDIA ПОКОЛЕНИЯ FERMI. Установите драйвер:

    # Классическая Fedora Linux:
    sudo dnf install akmod-nvidia-390xx xorg-x11-drv-nvidia-390xx-cuda xorg-x11-drv-nvidia-390xx-power
    
    # Silverblue/Kinoite/etc:
    rpm-ostree install akmod-nvidia-390xx xorg-x11-drv-nvidia-390xx-cuda xorg-x11-drv-nvidia-390xx-power
    
  8. GPU старее Fermi не поддерживаются компанией NVIDIA. Вы можете попытать свою удачу этим способом. Или остаться на свободном драйвере Nouveau, который работает из коробки.

  9. Послеустановочные действия:

    # Классическая Fedora Linux:
    # Подождите минут 5 и убедитесь, что все модули NVIDIA на месте:
    sudo akmods --force
    sudo dracut --force
    
    # Silverblue/Kinoite/etc:
    # Добавьте необходимые параметры ядра:
    rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau --append=NVIDIA-drm.modeset=1
    
  10. Перезагрузитесь.

  11. ???????

  12. PROFIT!

Запуск приложений на дискретной GPU NVIDIA на ноутбуках

По умолчанию, гибридные ноутбуки используют встроенную графику как основную. Поэтому чтобы запускать игры и другое требовательное ПО на dGPU, нужно попросить Fedora Linux об этом.

GUI вариант (только для Workstation и Silverblue)

Чтобы запустить приложение на дискретной видеокарте, просто кликните ПКМ по приложению в Dash или списке приложений GNOME и выберите запуск на дискретной видеокарте.

Запуск osu! с Flathub на дискретке (dGPU)

Запуск osu! с Flathub на дискретке (dGPU)

Дефолты для запуска через GUI

Через параметр PrefersNonDefaultGPU в .desktop файле можно выбирать используемую видеокарту для приложения по умолчанию. Например, Steam с Flathub уже по умолчанию использует дискретную видеокарту.

Steam с Flathub уже по умолчанию использует дискретку (dGPU) и предлагает интегрированную графику (iGPU) как вариант

Steam с Flathub уже по умолчанию использует дискретку (dGPU) и предлагает интегрированную графику (iGPU) как вариант

А вот так можно самому поменять дефолтное значение:

# Создайте директорию для пользовательских .desktop файлов, если её ещё нет:
mkdir -p ~/.local/share/applications

# Скопируйте .desktop файл в домашнюю директорию:
# Для RPM:
cp /usr/share/applications/<APP_ID>.desktop ~/.local/share/applications/
# Для Flatpak:
cat /var/lib/flatpak/exports/share/applications/<APP_ID>.desktop > ~/.local/share/applications/<APP_ID>.desktop

# Теперь откройте файл ~/.local/share/applications/<APP_ID>.desktop и впишите параметр PrefersNonDefaultGPU=true (для запуска на dGPU) или PrefersNonDefaultGPU=false (для запуска на iGPU) под первой записью [Desktop Entry]

Запуск через CLI

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=NVIDIA command

Запуск через Steam

Напишите это в параметры запуска в свойствах игры в библиотеке Steam:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=NVIDIA %command%

Это нужно если Steam у вас запускается на iGPU, а игры хочется на dGPU. На Fedora Workstation и Silverblue эти действия не требуются.

Удаление драйвера через GUI

Подойдёт, если вы ставили драйвер через GUI.

  1. Удалите установленный драйвер NVIDIA. Удаление драйвера NVIDIA через GNOME Software
    Удаление драйвера NVIDIA через GNOME Software
  2. Перезагрузитесь.
  3. ???????
  4. PROFIT!

Удаление драйвера через CLI

Подойдёт, если вы ставили драйвер через CLI.

  1. Все дальнейшие команды приводится в двух вариантах: для классических редакций Fedora Linux (Workstation, KDE Spin, etc) и для rpm-ostree редакций (Silverblue, Kinoite, etc). Вводите команды только для вашей редакции Fedora Linux, а остальное игнорируйте.
  2. ТОЛЬКО ДЛЯ АКТУАЛЬНЫХ GPU NVIDIA ПОКОЛЕНИЯ MAXWELL ИЛИ НОВЕЕ. Удалите драйвер:

    # Классическая Fedora Linux:
    sudo dnf remove akmod-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-power
    
    # Silverblue/Kinoite/etc:
    rpm-ostree remove akmod-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-power
    
  3. ТОЛЬКО ДЛЯ УСТАРЕВШИХ GPU NVIDIA ПОКОЛЕНИЯ KEPLER. Удалите драйвер:

    # Классическая Fedora Linux:
    sudo dnf remove akmod-nvidia-470xx xorg-x11-drv-nvidia-470xx-cuda xorg-x11-drv-nvidia-470xx-power
    
    # Silverblue/Kinoite/etc:
    rpm-ostree remove akmod-nvidia-470xx xorg-x11-drv-nvidia-470xx-cuda xorg-x11-drv-nvidia-470xx-power
    
  4. ТОЛЬКО ДЛЯ УСТАРЕВШИХ GPU NVIDIA ПОКОЛЕНИЯ FERMI. Удалите драйвер:

    # Классическая Fedora Linux:
    sudo dnf remove akmod-nvidia-390xx xorg-x11-drv-nvidia-390xx-cuda xorg-x11-drv-nvidia-390xx-power
    
    # Silverblue/Kinoite/etc:
    rpm-ostree remove akmod-nvidia-390xx xorg-x11-drv-nvidia-390xx-cuda xorg-x11-drv-nvidia-390xx-power
    
  5. ТОЛЬКО ДЛЯ SILVERBLUE, KINOITE И ПОДОБНЫХ RPM-OSTREE СИСТЕМ:

    # Удалите параметры ядра:
    rpm-ostree kargs --delete=rd.driver.blacklist=nouveau --delete=modprobe.blacklist=nouveau --delete=NVIDIA-drm.modeset=1
    
  6. Перезагрузитесь.

  7. ???????

  8. PROFIT!

Мой Telegram каналМой Telegram чатСайт Fedora LinuxДокументация RPMFusion по установке драйвера NVIDIAПоддержать Level 256