Установка драйверов 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
- Установка через CLI
- Запуск приложений на дискретной GPU NVIDIA на ноутбуках
- Удаление драйвера через GUI
- Удаление драйвера через CLI
- Полезные ссылки
Установка через GUI
Способ работает только для Fedora Workstation. Для Fedora Silverblue или других редакций Fedora Linux посетите раздел Установка через CLI.
Итак, сам способ:
- Отключите Secure Boot в UEFI.
- Включите сторонние репозитории. Этот пункт необходим только если вы не подключали RPMFusion nonfree ранее. Подключить сторонние репозитории можно на этапе первоначальной настройки системы или после, в настройках GNOME Software.
Включение сторонних репозиториев при первой настройке свежеустановленной Fedora WorkstationВключение сторонних репозиториев с драйвером NVIDIA в GNOME Software
- Найдите драйвер NVIDIA подходящей версии в GNOME Software и поставьте его. 510я версия подойдёт для GPU поколения Maxwell или новее, а 470я версия для Kepler. Драйвер для Fermi и более старых GPU можно поставить только через CLI.
Установка драйвера NVIDIA через GNOME Software
- Перезагрузитесь.
- ???????
- PROFIT!
Установка через CLI
- Отключите Secure Boot в UEFI.
- Все дальнейшие команды приводится в двух вариантах: для классических редакций Fedora Linux (Workstation, KDE Spin, etc) и для rpm-ostree редакций (Silverblue, Kinoite, etc). Вводите команды только для вашей редакции Fedora Linux, а остальное игнорируйте.
Обновите систему:
# Классическая Fedora Linux: sudo dnf upgrade --refresh reboot # Silverblue/Kinoite/etc: rpm-ostree upgrade reboot
Подключите репозиторий 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
ТОЛЬКО ДЛЯ АКТУАЛЬНЫХ 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
ТОЛЬКО ДЛЯ УСТАРЕВШИХ 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
ТОЛЬКО ДЛЯ УСТАРЕВШИХ 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
GPU старее Fermi не поддерживаются компанией NVIDIA. Вы можете попытать свою удачу этим способом. Или остаться на свободном драйвере Nouveau, который работает из коробки.
Послеустановочные действия:
# Классическая 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
Перезагрузитесь.
???????
PROFIT!
Запуск приложений на дискретной GPU NVIDIA на ноутбуках
По умолчанию, гибридные ноутбуки используют встроенную графику как основную. Поэтому чтобы запускать игры и другое требовательное ПО на dGPU, нужно попросить Fedora Linux об этом.GUI вариант (только для Workstation и Silverblue)
Чтобы запустить приложение на дискретной видеокарте, просто кликните ПКМ по приложению в Dash или списке приложений GNOME и выберите запуск на дискретной видеокарте.
Дефолты для запуска через GUI
Через параметрPrefersNonDefaultGPU
в .desktop файле можно выбирать используемую видеокарту для приложения по умолчанию. Например, Steam с Flathub уже по умолчанию использует дискретную видеокарту.
А вот так можно самому поменять дефолтное значение:
# Создайте директорию для пользовательских .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%
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=NVIDIA %command%
Это нужно если Steam у вас запускается на iGPU, а игры хочется на dGPU. На Fedora Workstation и Silverblue эти действия не требуются.
Удаление драйвера через GUI
Подойдёт, если вы ставили драйвер через GUI.- Удалите установленный драйвер NVIDIA.
Удаление драйвера NVIDIA через GNOME Software
- Перезагрузитесь.
- ???????
- PROFIT!
Удаление драйвера через CLI
Подойдёт, если вы ставили драйвер через CLI.- Все дальнейшие команды приводится в двух вариантах: для классических редакций Fedora Linux (Workstation, KDE Spin, etc) и для rpm-ostree редакций (Silverblue, Kinoite, etc). Вводите команды только для вашей редакции Fedora Linux, а остальное игнорируйте.
ТОЛЬКО ДЛЯ АКТУАЛЬНЫХ 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
ТОЛЬКО ДЛЯ УСТАРЕВШИХ 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
ТОЛЬКО ДЛЯ УСТАРЕВШИХ 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
ТОЛЬКО ДЛЯ SILVERBLUE, KINOITE И ПОДОБНЫХ RPM-OSTREE СИСТЕМ:
# Удалите параметры ядра: rpm-ostree kargs --delete=rd.driver.blacklist=nouveau --delete=modprobe.blacklist=nouveau --delete=NVIDIA-drm.modeset=1
Перезагрузитесь.
???????
PROFIT!