Как сделать NVIDIA основной ГП на ноутбуках с Optimus

Akashdeep Dhar, Jun Aruga, Ankur Sinha Version F37 Last review: 2022-09-12

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

Введение

Цель — использовать активный ГП NVIDIA на ноутбуке с Optimus и применять его для всех задач в окружениях рабочего стола с Xorg-X11. Не используйте это руководство, если вы предпочитаете отрисовывать рабочий стол на встроенном ГП и выборочно выбирать приложения для использования ГП NVIDIA.

Инструкции в этом документе проверены на работоспособность в выпусках Fedora 32 Workstation и более поздних версиях, использующих Xorg-X11.

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

Начиная с Fedora 34, Wayland стал дисплейным сервером по умолчанию в Fedora Workstation для окружений рабочего стола GNOME. Чтобы выполнить шаги, приведённые в этом руководстве, вы должны войти в сеанс, работающий на Xorg-X11.

Это руководство требует отключения безопасной загрузки для загрузки неподписанных модулей ядра NVIDIA.

Чтобы вся отрисовка по умолчанию выполнялась на ГП NVIDIA, необходимо очень внимательно выполнить следующие шаги.

Сначала рассмотрите следующие моменты:

  • Зачем вам это может понадобиться?

    Постоянное использование ГП NVIDIA обеспечивает более плавные переходы и более богатые анимационные эффекты. Премиальные окружения рабочего стола, такие как GNOME, получают от этого большую выгоду.
    Постоянное включение ГП NVIDIA приводит к снижению нагрузки на ЦП и потребления памяти, которые иначе были бы высокими из-за добавленного видеобуфера в памяти.
  • Почему это может быть не идеальным?

    Постоянное использование ГП NVIDIA может вызвать небольшое увеличение энергопотребления. Это не должно быть проблемой, если ваше устройство подключено к сети во время работы.
    Повышенное тепловыделение от постоянно включённого ГП NVIDIA может быть проблемой. Вряд ли вы захотите играть в требовательные игры (AAA-проекты) через Proton, держа ноутбук на коленях.

Шаг №1: Обновление из существующих репозиториев

Выполните

$ sudo dnf upgrade

Один раз, чтобы сначала обновить все ваши пакеты.

how to set nvidia as primary gpu on optimus based laptops 0

Шаг №2: Добавление репозитория RPMFusion для драйверов NVIDIA

Затем вам нужно добавить репозиторий RPM Fusion для драйверов NVIDIA. Для этого откройте GNOME Software и нажмите на меню-гамбургер (три горизонтальные линии) в правом верхнем углу. Затем выберите Software Repositories в выпадающем меню. Там вы увидите следующее.

how to set nvidia as primary gpu on optimus based laptops 1

Выберите RPM Fusion for Fedora 32 - Nonfree - NVIDIA Driver и ВКЛЮЧИТЕ его. Для этого требуются повышенные привилегии, поэтому введите свой пароль, и всё будет сделано.

Шаг №3: Обновление из недавно добавленных репозиториев

Выполните

$ sudo dnf upgrade --refresh

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

how to set nvidia as primary gpu on optimus based laptops 2

Шаг №4: Установка драйвера и его зависимостей

Выполните

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

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

how to set nvidia as primary gpu on optimus based laptops 3

Шаг №5: Ожидание загрузки модулей ядра

Вы должны подождать 5-10 минут, пока загрузятся модули ядра. Пожалуйста, не переходите сразу к следующим шагам.

Шаг №6: Чтение из обновлённых модулей ядра

Выполните

$ sudo akmods --force
$ sudo dracut --force

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

Шаг №7: Перезагрузка системы

Подождите 3-5 минут, чтобы изменения вступили в силу, затем перезагрузите систему.

Войдите в сеанс с Xorg-X11.

С рабочего стола перейдите на страницу About в приложении Settings. Вы, скорее всего, увидите следующий вывод.

how to set nvidia as primary gpu on optimus based laptops 4

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

Шаг №8: Редактирование конфигурации X11

Пожалуйста, убедитесь, что пакет xrandr установлен, прежде чем переходить к этому шагу:

$ sudo dnf install xrandr

Выполните следующую команду, чтобы скопировать данные отрисовки дисплея для X11.

$ sudo cp -p /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf

После этого откройте nvidia.conf из места назначения копирования и отредактируйте его, добавив

Option "PrimaryGPU" "yes"

в раздел OutputClass этого файла.

Например, используйте nano

$ sudo nano /etc/X11/xorg.conf.d/nvidia.conf

и внесите изменения.

Файл должен выглядеть так. Ваш файл должен выглядеть аналогично.

how to set nvidia as primary gpu on optimus based laptops 5

Вы можете увидеть добавления в обоих разделах.

Сохраните его с помощью [S]` и выйдите с помощью `[Ctrl][X].

Если вы используете дисплейный менеджер, отличный от GDM (по умолчанию в Fedora Workstation), вам потребуется настроить его соответствующим образом. Пожалуйста, обратитесь к вики Arch за инструкциями. Для SDDM (по умолчанию в KDE spin) на Fedora 32 вики Arch неверна, и вам нужно редактировать файл /etc/sddm/Xsetup, а не /usr/share/sddm/scripts/Xsetup.

Шаг №9: Перезагрузка системы

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

Шаг №10: Проверка конфигурации

Откройте терминал и введите

$ glxinfo | egrep "OpenGL vendor|OpenGL renderer"

Он должен показать ваш ГП NVIDIA.

how to set nvidia as primary gpu on optimus based laptops 6

Проверьте с помощью screenfetch.

$ screenfetch

Он должен показать ваш ГП NVIDIA в поле имени ГП.

how to set nvidia as primary gpu on optimus based laptops 7

Проверьте в приложении Settings. На странице About вы увидите что-то подобное.

how to set nvidia as primary gpu on optimus based laptops 8

Вы можете вносить другие изменения конфигурации с помощью приложения NVIDIA X Server Settings. Также ГП будет показывать активность в процентах использования, что свидетельствует о его реальной работе.

how to set nvidia as primary gpu on optimus based laptops 9

Ссылки

Если у вас возникнут проблемы при выполнении этих шагов или если они не соответствуют вашему сценарию использования, не стесняйтесь задавать вопросы на форумах Fedora.

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