Правильная установка драйверов NVIDIA в Fedora

Пользователи видеокарт NVIDIA после установки дистрибутива Fedora часто жалуются на отсутствие полноценного 3D ускорения графики из-за использования свободных драйверов «из коробки», поэтому в данной статье мы подробно рассмотрим как следует и как не следует устанавливать проприетарные драйверы видеокарт NVIDIA для Fedora.

Введение

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

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

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

Выбор способа установки

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

Установленные из репозиториев драйверы будут автоматически обновляться штатным для дистрибутива способом (для Fedora через dnf upgrade, либо графический менеджер пакетов на базе PackageKit).

Существуют два несовместимых друг с другом типа драйверов NVIDIA:

  1. обычный драйвер для десктопов и ноутбуков без гибридной графики;
  2. NVIDIA Optimus драйвер.

Рассмотрим каждый подробнее.

Установка обычного драйвера

Обычный проприетарный драйвер NVIDIA доступен в репозиториях RPMFusion, поэтому нам потребуется подключить их если они ещё не подключены (необходимы как free, так и nonfree):

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Теперь мы должны установить набор сборки драйвера: компилятор GCC и заголовочные файлы ядра, исходники ядерного модуля, а также сам драйвер.

Установка для современных видеокарт

Вариант для современных видеокарт NVIDIA (серии 400, 500, 600, 700, 800 (ноутбуки), 900 и 1000 и более современные):

sudo dnf install gcc kernel-headers kernel-devel akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-libs

Если используется 64-битная ОС, но требуется запускать ещё и Steam и 32-битные версии игр, то установим также 32-битный драйвер (устанавливать сразу после предыдущих):

sudo dnf install xorg-x11-drv-nvidia-libs.i686

Установка для устаревших видеокарт

Для устаревших видеокарт NVIDIA (серии 6000, 7000, 8000, 9000, 200, 300):

sudo dnf install gcc kernel-headers kernel-devel akmod-nvidia-304xx xorg-x11-drv-nvidia-304xx xorg-x11-drv-nvidia-304xx-libs

Для 64-битных ОС с необходимостью запуска 32-битных игр (устанавливать сразу после предыдущих):

sudo dnf install xorg-x11-drv-nvidia-304xx-libs.i686

Действия по окончании установки

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

sudo akmods --force

Если возникла ошибка, то подробный журнал можно найти в каталоге /var/cache/akmods/nvidia/.

Теперь вырежем из образа initrd драйвер nouveau и добавим NVIDIA:

sudo dracut /boot/initramfs-$(uname -r).img $(uname -r) --force

Удаление драйверов

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

sudo dnf remove \*nvidia\*

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

sudo dracut /boot/initramfs-$(uname -r).img $(uname -r) --force

Также потребуется обновить конфиг загрузчика Grub 2. Версия для legacy конфигураций:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Версия для UEFI конфигураций:

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

При возникновении чёрного экрана

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

rd.drivers.blacklist=nouveau nouveau.modeset=0

Также нужно в обязательном порядке зайти в модуль настройки UEFI компьютера или ноутбука и отключить UEFI Secure Boot (сама Fedora поддерживает работу с Secure Boot, однако модули ядра проприетарного драйвера не имеют цифровой подписи, поэтому не могут быть загружены в данном режиме и, как следствие, пользователь увидит чёрный экран), а также перевести его из режима Windows Only в Other OS.

Установка драйверов для NVIDIA Optimus

На ноутбуках с гибридной графикой NVIDIA Optimus устанавливать описанный выше драйвер не следует, т.к. он не будет работать и при загрузке получим чёрный экран. Вместо этого следует использовать Bumblebee.

Подключим репозитории со «шмелём»:

sudo dnf --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora$(rpm -E %fedora)/noarch/bumblebee-release-1.2-1.noarch.rpm
sudo dnf --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora$(rpm -E %fedora)/noarch/bumblebee-nonfree-release-1.2-1.noarch.rpm

Теперь установим проприетарные драйверы NVIDIA в managed исполнении:

sudo dnf install gcc kernel-headers kernel-devel bumblebee-nvidia bbswitch-dkms primus

Если используется 64-битная ОС, но требуется запускать ещё и Steam и 32-битные версии игр, то установим также 32-битный драйвер (устанавливать сразу после предыдущих):

sudo dnf install VirtualGL.i686 primus.i686

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

optirun [параметры] application [параметры запуска приложения]

Пример запуска панели управления NVIDIA для Optimus конфигураций:

optirun -b none nvidia-settings -c :8

Пример запуска приложения app.exe через Wine на Optimus:

optirun wine app.exe

Другую полезную информацию о настройке Bumblebee можно найти в Wiki.

Пользователям Gnome с Wayland

Если используется Gnome с GDM, то необходимо отключить поддержку Wayland ибо проприетарные драйверы NVIDIA на момент написания данной статьи работают с ним некорректно. Для этого нужно отредактировать файл /etc/gdm/custom.conf, добавив или расскомментировав строку WaylandEnable=false:

sudo vim /etc/gdm/custom.conf

Если этот шаг пропустить, то при следующей загрузки увидим серый экран с надписью «Упс, что-то пошло не так». Пользователи KDE, XFCE и других DE могут смело его пропускать ибо в Fedora используется Wayland пока только для Gnome.

9 комментариев к записи

  1. Не находит akmod-nvidia, org-x11-drv-nvidia, xorg-x11-drv-nvidia-libs
    Пакета с названием akmod-nvidia не найдено.
    Пакета с названием xorg-x11-drv-nvidia не найдено.
    Пакета с названием xorg-x11-drv-nvidia-libs не найдено.
    Ошибка: Совпадений не найдено.

    1. Сначала нужно подключить репозитории RPMFusion, как сказано в статье. После этого данные пакеты смогут быть установлены.

  2. Всё установил и работает, но неправильно… У меня ноут M50Vn с графической картой GeForce 9650M GT. Я столько лет потратил на это столько раз переустанавливал Ось после неудачной установки Nvidia. Я нашёл единственный удачный драйвер для ядра 2.6. К несчастью более поздние версии не поддерживает этот драйвер. Но мне кажется в связи с экспериментами с графической картой она просто накрылась. Однако на ядре 2.6 тот драйвер работает по прежнему. Не идеально, но в игры играть можно. Я не знаю какая это версия fedora, но Suse 11.4. Это ось 10-ти летней давности и для неё давно нет поддержки. Но думаю если поставить CentOS 6, то будет. Не работает аспект. Почему-то монитор стал вместо 16:9 3:4. Все картинки искажены ужасно. Смотреть невозможно, но это лучше, чем когда у тебя система вылетала через 3 минуты из-за нестабильности. Хотя там аспект не искажался. Я не уверен, что вообще возможно нормально установить эту карту. Возможно именно моя карта такая неудачная. Но я уже зарёкся когда-либо связываться с Nvidia. Ибо хуже не придумаешь когда навороченая карта не то, что не работает, а вообще автоматом подвешивает систему. Это всё из-за брэнда… Никогда не покупайте навороченный хард для Linux, не будет работать в лучшем случае… И ни в коем случае не мелкософтовский или компании связанyой с ней. А NVidia связана. Никто не знает как она работает, пишут наугад.. Даже тот драйвер общего типа и в бинарной форме. Исходников нет… Лучше какой нибудь ATI. Эти работают железно!!!

    1. У меня ноут M50Vn с графической картой GeForce 9650M GT

      Эта карта поддерживается более старой версией драйвера — nvidia-304xx. В статье сказано о том, как его установить.

      Я столько лет потратил на это столько раз переустанавливал Ось после неудачной установки Nvidia

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

      Лучше какой нибудь ATI. Эти работают железно!

      Только те, которые поддерживаются свободным драйвером. Их проприетарные драйверы даже хуже, чем у NVIDIA.

      А вообще, лучшие видеокарты для GNU/Linux — это интегрированные в процессоры Intel. С ними нет проблем.

  3. После установки Nvidia драйверов в fedora 25\26 вместо сплеша с логотипом федоры появляется серый экран с тремя белыми точками, не подскажете можно эту мерзость вообще убрать? А то стирание опции quiet в /etc/default/grub и добавление GRUB_CMDLINE_LINUX_DEFAULT=»» не дает никаких результатов(конфиг груба конечно перегенерировал su -c ‘grub2-mkconfig -o… и т д)

    1. После установки Nvidia драйверов в fedora 25\26 вместо сплеша с логотипом федоры появляется серый экран с тремя белыми точками, не подскажете можно эту мерзость вообще убрать?

      Это известная проблема проприетарных драйверов. Другая проблема — невозможность задания родного для монитора разрешения виртуальных консолей фреймбуфера (всегда будет использоваться 800*600).

  4. Теперь вырежем из образа initrd драйвер nouveau и добавим NVIDIA:
    sudo dracut /boot/initramfs-$(uname -r).img $(uname -r) —force

    Начиная, вроде бы, с 26 версии федоры, этого делать не требуется.

    1. Да, этот шаг есть в скриптлетах устанавливаемых RPM пакетов с модулями ядра, но часто он отрабатывает некорректно и пользователь получает чёрный экран после загрузки, поэтому лучше ещё раз прогнать самостоятельно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *