6262
Nvidia Prime Render Offload. Замена Bumblebee.
Гайд устарел и его следует использовать если вам просто нечем заняться. В другом случае используйте графический установщик Манджаро. В нём теперь есть драйвер для видеокарты с пометкой «prime»
После его установки, запустить программу на нвидиа можно командой:
prime-run <приложение>
Тихо и без лишнего шума 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-nvidia.conf
5) Перезагружаемся
6) Проверяем, что загрузились оба модуля видеокарт
xrandr --listproviders
должно быть примерно так:
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 с примерами более тонкой настройки
4 комментария
Однако вопрос есть: powertop вежливо сообщает, что NVIDIA пашет на 100% и кушает ватт 5 энергии, хотя ни одна программа не запущена на дискретке. Оно как-то (настраивается)/(отключается, когда нет задачи) или как?
А разве пакет extra/nvidia-prime не предоставляет prime-run, который решает ту же задачу?
«nvidia-prime» вроде как из репов арча, в manjaro я нашел только «prime», но делают они одно и то же — дают возможность вместо длинного выражения __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=«nvidia» __VK_LAYER_NV_optimus=«NVIDIA_only» использовать короткое «prime». хотя «prime-run» из из арчевского репозитория я ставил. в манджарке тоже работает. при этом Xorg все равно настраивать нужно.
Identifier «iGPU»
Driver «modesetting»
BusID «PCI:0:2:0» Проверьте BusID __________- ГРАФИКА ИНТЕЛ?
EndSection
Section «Device»
Identifier «dGPU»
Driver «nvidia»
BusID «PCI:1:0:0» Проверьте BusID __________- ГРАФИКА НВИДИА?