Учебники (How-To & F.A.Q)
   1086

Nvidia Prime Render Offload. Замена Bumblebee.

Тихо и без лишнего шума Nvidia запустила нативную поддержку Prime Render Offload для своих видеокарт, работающих в связке со встроенными видеокартами Intel на лэптопах. Это дает возможность владельцам лэптопов выводить графику через видеокарту Intel, а там, где это необходимо, через карту Nvidia. Также данная штука имеет более высокую производительность, по сравнению с полюбившимся многим Bumblebee.
Ниже инструкция о том, как настроить систему для ее использования. Сразу оговорюсь, что буду считать, что система только что установлена и вы не нуждаетесь в удалении предыдущих конфигураций Xorg, Bumblebee и прочего. Также статья является вольным переложением статьи из арчвики с некоторыми дополнениями, применимыми к Manjaro.
На данный момент с данным методом невозможно использовать второй монитор через HDMI, официальный ответ разрабов нвидиа тык, так что подумайте нужно это вам или нет.
1) Ставим драйвера с помощью стандартной утилиты манджаро по этой инструкции.
2) Удаляем конфиг, который создала утилита манджарки:
sudo rm /etc/X11/xorg.conf.d/90-mhwd.conf 

3) Создаем новый конфиг nvidia.conf
sudo nano /etc/X11/xorg.conf.d/nvidia.conf

nvidia.conf
Section "ServerLayout"
  Identifier     "Layout0"
    Option         "AllowNVIDIAGPUScreens"
    Screen      0  "iGPU" 0 0
EndSection
Section "Device"
    Identifier     "iGPU"
    Driver         "modesetting"
    BusID          "PCI:0:2:0" #Проверьте BusID
EndSection
Section "Device"
    Identifier     "dGPU"
    Driver         "nvidia"
    BusID          "PCI:1:0:0" #Проверьте BusID
EndSection
Section "Screen"
    Identifier     "iGPU"
    Device         "iGPU"
    DefaultDepth    24
    SubSection     "Display"
    Viewport    0 0
    EndSubSection
EndSection
Section "OutputClass"
    Identifier "iGPU"
    MatchDriver "i915"
    Driver "modesetting"
EndSection
Section "OutputClass"
    Identifier "dGPU"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "PrimaryGPU" "yes"
    ModulePath "/usr/lib/nvidia/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection

Section "ServerFlags"
    Option         "IgnoreABI" "1"
EndSection


*самая нижняя секция рекомендуется при возникновении проблем при входе. Но на моей Nvidia GeForce 1060 проблема была, поэтому вставил на всякий случай. Если что, закомментируете.
4) Удаляем остатки конфигов, созданных утилитой mhwd (мы ей драйвер если что устанавливали)
ls /etc/modprobe.d/mhwd*

смотрим на вывод предыдущей команды и удаляем все, что связано с nvidia и gpu
Пример! файлов для удаления
sudo rm /etc/modprobe.d/mhwd-gpu.conf
sudo rm /etc/modprobe.d/mhwd-nvidia.conf

5) Перезагружаемся
6) Проверяем, что загрузились оба модуля видеокарт
xrandr --listproviders

должно быть примерно так:
Providers: number: 2
Provider 0: id: 0x29d cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 2 associated providers: 0 name:modesetting
Provider 1: id: 0x278 cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:NVIDIA-G0

7) Пример запуска Firefox на видеокарте Nvidia
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" firefox

В AUR репозитории также доступен пакет «prime», после установки которого громоздкое выражение можно сократить до простого
prime firefox

Ссылки по теме:

Арчвики
Официальная инструкция от Nvidia с примерами более тонкой настройки

3 комментария

avatar
Годно, нужно, забрал, спасибо :)

Однако вопрос есть: powertop вежливо сообщает, что NVIDIA пашет на 100% и кушает ватт 5 энергии, хотя ни одна программа не запущена на дискретке. Оно как-то (настраивается)/(отключается, когда нет задачи) или как?


В AUR репозитории также доступен пакет «prime»
А разве пакет extra/nvidia-prime не предоставляет prime-run, который решает ту же задачу?
+2
avatar
по поводу питания — я нигде информации не нашёл. может и есть способ как полностью отключить дискретку. если найдете и поделитесь, буду благодарен, да и не только я. для этого подобные ресурсы и существуют)
«nvidia-prime» вроде как из репов арча, в manjaro я нашел только «prime», но делают они одно и то же — дают возможность вместо длинного выражения __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=«nvidia» __VK_LAYER_NV_optimus=«NVIDIA_only» использовать короткое «prime». хотя «prime-run» из из арчевского репозитория я ставил. в манджарке тоже работает. при этом Xorg все равно настраивать нужно.
Последний раз редактировалось
+1
avatar
А есть ли возможность без Bumblebee полностью отключить питание на карте nvidia? Например у меня на ноуте 99% рабочего времени она выключена с помощью bbswitch.
+2
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.