Новая версия проприетарного драйвера NVIDIA для GNU/Linux
Недавно NVIDIA выпустила релизную версию проприетарного драйвера версии 555.хх.хх (точный номер версии варьируется в разных репозиториях). Вместе с новой версией KDE Plasma 6.1, которая уже доступна на большинстве дистрибутивов, в том числе и на Fedora, ситуация с приложениями при использовании Wayland резко улучшилась. Так что после установки всех обновлений вы не должны испытывать неприятные ощущения из-за глитчей и статтеров. Но тем не менее многие приложения всё ещё не готовы к Wayland, поэтому инструкция ниже может оказаться актуальной и для вашего случая.
Хочу сразу же поделиться хорошей новостью для всех любителей Linux, которые страдают с видеокартами NVIDIA. 21 мая была вупущена бета-версия проприетарного драйвера с номером 555.42.02. Он содержит множество улучшений для поддержки Wayland, включая интеграцию явной синхронизации (explicit sync) через протокол linux-drm-syncobj-v1, который будет полноценно реализован в KDE Plasma 6.1 и GNOME 46.1. Это позволит всем компонентам системы работать согласованно, что даст ещё большую плавность и отзывчивость, а также избавит пользователей от множества неприятностей.
Я попробовал этот драйвер и могу подтвердить, что серьёзные проблемы с графическими багами в большинстве приложений ушли. Но следует отметить, что я тестировал это на текущей стабильной версии KDE Plasma 6.0.5, а не на новом релизе 6.1. Не советую устанавливать как бета-версию драйвера, так и бета-версии DE. Все релизы должны состояться летом, а это значит, что совсем скоро будет сделан огромный шаг вперёд для использования GNU/Linux на обычных компьютерах как для работы, так и для развлечений. Ну а пока возвращаемся к костылям :)
[ Установка проприетарного драйвера NVIDIA на Fedora Linux 40 ]
Конечно же, совершенно отвратительно видеть в одном предложении фразы "проприетарный драйвер" и GNU/Linux. Но что поделать, хочется же современные и приятные в использование технологии. Для этого нужно установить официальный драйвер NVIDIA в систему на замену откротому драйверу Nouveau. Моя инструкция не оригинальна, я воспроизвожу в сжатом виде наиболее простой вариант иструкции от TecMint. Важно выполнить все команды последовательно. Что делает каждая команда, я указал в комментарии над ней.
# Сначала проверим, есть ли обновления для ядра и всех пакетов. Если такие есть, установим их, перезагрузимся и продолжим. sudo dnf update --refresh # Чтобы корректно установливать и обновлять проприетарный драйвер NVIDIA, нужно установить необходимые зависимости. sudo dnf install kernel-devel kernel-headers gcc make dkms acpid libglvnd-glx libglvnd-opengl libglvnd-devel pkgconfig # Теперь пришло время для включения свободного и не очень свободного RPM Fusion репозиториев. Лучше выполнять все три команды последовательно. sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm sudo dnf makecache # Пришло время установить сам драйверы и набор улитил CUDA. sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda # Когда всё закончится хорошо, нужно будет перезагрузиться. sudo reboot
# Сначала проверим, есть ли обновления для ядра и всех пакетов. Если такие есть, установим их, перезагрузимся и продолжим. sudo dnf update --refresh # Чтобы корректно установливать и обновлять проприетарный драйвер NVIDIA, нужно установить необходимые зависимости. sudo dnf install kernel-devel kernel-headers gcc make dkms acpid libglvnd-glx libglvnd-opengl libglvnd-devel pkgconfig # Теперь пришло время для включения свободного и не очень свободного RPM Fusion репозиториев. Лучше выполнять все три команды последовательно. sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm sudo dnf makecache # Пришло время установить сам драйверы и набор улитил CUDA. sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda # Когда всё закончится хорошо, нужно будет перезагрузиться. sudo reboot
Первый запуск может быть очень долгим. Не переживайте, так и должно быть. Если же возникли проблемы, особенно в том случае, если вы устанавливали не в таком "ламерском" режиме, а со всей серьёзностью в ручном режим со скачиванием *.run с официального сайта, то просто необходимо немного исправить конфигурацию GRUB. На экране входа, даже если просто на чёрном экране висит курсор или какой-то неприятный артефакт, переключитесь на сессию без GUI с помощью комбинации Ctl+Alt+F3. Она может отличаться в зависимости от дистрибутива и интерфейса входа. В режиме без GUI войдите в сессию своего пользователя с помощью логина и пароля, а затем выполните команды.
# В этом файле нужно найти строку, которая начинается с GRUB_CMDLINE_LINUX и добавить внутри значения в кавычках nvidia-drm.modeset=1. sudo nano /etc/default/grub # Потом нужно обязательно выполнить создать новый файл конфигурации GRUB. sudo grub2-mkconfig -o /boot/grub2/grub.cfg # И как всегда, нужно перезагрузиться. После этого вы должны увидеть привычный для вашего DE интерфейс авторизации. sudo reboot
# В этом файле нужно найти строку, которая начинается с GRUB_CMDLINE_LINUX и добавить внутри значения в кавычках nvidia-drm.modeset=1. sudo nano /etc/default/grub # Потом нужно обязательно выполнить создать новый файл конфигурации GRUB. sudo grub2-mkconfig -o /boot/grub2/grub.cfg # И как всегда, нужно перезагрузиться. После этого вы должны увидеть привычный для вашего DE интерфейс авторизации. sudo reboot
[ Заставляем Chrome, VS Code, Spotify и другие приложения работать корректно в Wayland ]
С браузером Google Chrome (тоже очень неприятно видеть его в контексте GNU/Linux) наиболее легко. В самом браузере просто открываем через адресную строку интерфейс тонкий настроек через chrome://flags/. Ищем нужную настройку через поиск по фразе Preferred Ozone platform. Выбираем там Auto. Можно выбрать явно Wayland, но в моём случае это заканчивалось крашем при запуске по неизвестной причине. После изменения настройки нужно просто перезапустить браузер и забыть о косяках с вводом и рендерингом.
С VS Code и большинством других приложений на Electron всё также несложно. Для исправления ситуации нужно просто создать файл .config/environment.d/electron-ozone-wayland.conf (и директорию, если её ещё нет), а потом добавить туда одну строку и перезагрузиться.
ELECTRON_OZONE_PLATFORM_HINT=auto
ELECTRON_OZONE_PLATFORM_HINT=auto
Это справедливо для приложений, которые не устанавливаются в свои "песочницы" через flatpak или snap, так как внутри "песочниц" свои правила и переменные среды. Для таких приложений придётся редактировать имеющиеся файлы Desktop Entry или же создавать новые. Для примера покажу исправленный файл для запуска Spotify, который был установлен через flatpak в приложении Discover из KDE. Но в целом направление должно быть понятно: для запуска приложения в режиме работы в Wayland нужно просто попробовать запускать его с параметрами
Вот мой исправленный файл .local/share/applications/com.spotify.Client.desktop.
[Desktop Entry] Type=Application Name=Spotify GenericName=Online music streaming service Comment=Access all of your favorite music Icon=com.spotify.Client # Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding com.spotify.Client @@u %U @@ Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding --no-sandbox com.spotify.Client --enable-features=UseOzonePlatform --ozone-platform=wayland @@u %U @@ Terminal=false MimeType=x-scheme-handler/spotify; Categories=Audio;Music;AudioVideo; Keywords=Music;Player;Streaming;Online; StartupWMClass=Spotify X-GNOME-UsesNotifications=true X-Flatpak-Tags=proprietary; X-Flatpak=com.spotify.Client
[Desktop Entry] Type=Application Name=Spotify GenericName=Online music streaming service Comment=Access all of your favorite music Icon=com.spotify.Client # Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding com.spotify.Client @@u %U @@ Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding --no-sandbox com.spotify.Client --enable-features=UseOzonePlatform --ozone-platform=wayland @@u %U @@ Terminal=false MimeType=x-scheme-handler/spotify; Categories=Audio;Music;AudioVideo; Keywords=Music;Player;Streaming;Online; StartupWMClass=Spotify X-GNOME-UsesNotifications=true X-Flatpak-Tags=proprietary; X-Flatpak=com.spotify.Client
После этого интерфейс приложения перестал фликерить, хотя отзывчивость всё равно не такая приятная глазу, как хотелось бы.
[ Тактическое отступление ]
Надеюсь, что мой скромный опыт, которым я поделился, поможет кому-то разобраться со своими проблемами и начать приобщаться к Wayland уже сегодня. Даже если в вашем случае проблемы возникают не на Fedora Linux и не на KDE.
Ну а я отправляюсь ждать релизной версии драйвера NVIDIA версии 555, а также KDE Plasma 6.1.