PRIME Render Offload в Arch и Manjaro Linux

С выходом проприетарного драйвера NVIDIA 435.21 в свет появился PRIME Render Offload.

Официальный мануал нвидии (смотреть сюда, если что-то пошло не так)

Арчевики (смотреть сюда если очень хочется)

Что и зачем?

Эта нативная функция заменяет Bumblebee и Optimus-Manager. По функциональности он похож на первый, по качеству  на второй.

Конечно же первым делом вырубаем топором из системы bumblebee или optimus-manager

P.S. Удалять Optimus-Manager не обязательно, так как он поддерживает данный режим и называется hybrid

sudo pacman -Rс bumblebee
sudo pacman -Rс optimus-manager

Для установки требуются драйвера Nvidia 435.21 и новее сейчас — 440хх.

В Manjaro он устанавливается из программы manjaro-settings.
(Для видеокарт серий 600-700 возможно в MHWD будет отображаться только 418хх драйвер, тогда драйвер устанавливать нужно через пакетный менеджер)
! Если 418хх драйвер не указывается в MHWD, тогда PRIME render offload вам не подходит, используйте Bumblebee с 390хх версией драйверов.

Сначала нужно удалить bumblebee, а затем насильно установить драйвер 435 (440) версии (если будет ругаться — не пугайтесь).

После установки, требуется настроить Xorg.conf.

Если вы не хотите заниматься этим вручную, спускаемся до установки пакета «Prime»

Убедитесь что в каталоге /etc/X11/ нет файла xorg.conf

Изменения будем вносить в файл xorg.conf.d/10-nvidia.conf

sudo nano /etc/X11/xorg.conf.d/10-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

Чтобы узнать BusID, воспользуйтесь командой:

lspci -k | grep -A 2 -E "(VGA|3D)"

В начале строки будет ID в формате XX:XX.X

После чего перезагружаемся

reboot

При вводе команды вы должны увидеть 2 видеокарты

xrandr --listproviders

Пример

Если показывает только интел, смотрите логи Xorg:

grep /var/log/Xorg.0.log -e "EE" -e "WW"

Для запуска программы под Nvidia используем пример следующий команды

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep OpenGL

Если у вас вылезает ошибка по типу такой:

Смотрите логи Xorg.

Установка PRIME

Для максимального удобства уважаемый @Feresey забубенил пакет Prime

Данный пакет содержит готовый Xorg.conf и сократит столь длинную строчку запуска до короткого слова prime 

Для установки выполните команду

yay -S prime

И затем скопируйте конфиг

sudo cp /{usr/share,etc}/X11/xorg.conf.d/10-nvidia.conf

На этом все

Если что-то пошло не так всегда есть возможность проверить лог файл на ошибки

grep /var/log/Xorg.0.log -e "EE" -e "WW"

С патченными ядрами данный фокус не работает (по крайней мере с linux-pf). Причина в том, что модуль nvidia не загружается. Говорит, что модуля нет, хотя он есть. Даже использование nvidia-dkms не помогло, поэтому советую смириться и использовать обычное ядро арча/манджары.

 

Дополнение по играм

З.Ы. установите prime, не мучайтесь

Запуск игр в «Steam»
Lutris оказывает нативную поддержку prime render offload:

Для запуска Vulkan’a в Lutris не забываем выбрать ICD loader

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Комментарии: 22
  1. Anonim

    Сколько не танцевал, завести так и не удалось. Видимо не дорос еще.

    1. Stez (автор)

      Все зависит поддерживает ли ваша карта 435 драйвера, если да то нужно обращятся к логам хорга.

      1. Anonim

        Ну сейчас стоит nvidia-435.21-7. У меня после всего что описано в статье, загружается все на nvidia почему то. А должно б было на Intel я так понимаю :-)

      2. Anonim

        Может кто сможет подсказать что не так? Вот что нашлось в логах

        [ 63.074] Current Operating System: Linux Lenovo-Y700 5.3.1-arch1-1-ARCH #1 SMP PREEMPT Sat Sep 21 11:33:49 UTC 2019 x86_64
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
        [ 63.103] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
        [ 63.184] (WW) Falling back to old probe method for modesetting
        [ 63.574] (WW) NVIDIA(G0): Unable to get display device for DPI computation.
        [ 63.601] (WW) NVIDIA(G0): Option «PrimaryGPU» is not used
        [ 63.670] (II) Initializing extension MIT-SCREEN-SAVER
        [ 64.184] (EE) Failed to open authorization file «/var/run/sddm/{0f1c39c5-34b0-428a-b09b-4801a505af97}»: No such file or directory

      3. Stez (автор)

        Пиши в телеграмм @stezko попробуем разобраться

      4. Feresey

        чё как, разобрались?

      5. Anonim

        Да. Оказалось все работает. Просто я немного другого ожидал. Думал nvidia будет вообще отключена до момента когда понадобится какой то программе.

  2. Anonim

    Смотрю в репозитории уже версия xorg 1.20.5-4 появилась. Не пробовали обновить, есть в ней нужные патчи уже? Или их в основную сборку и не собираются добавлять? Может можно где то почитать об етом, или только обновлять и проверять?

    1. Stez (автор)

      В новой версии нет данных исправлений, в пакете можете самостоятельно смотреть ченжлог
      https://git.archlinux.org/svntogit/packages.git/log/trunk?h=packages/xorg-server

      1. Anonim

        Понял, спасибо. Надеюсь его все таки скоро добавят. А пока придется в черный список добавить ети пакеты чтоб не обновлялись.

      2. Feresey

        Что-то мне подсказывает что их не добавят никогда. В манжаре кстати их добавили в той же версии 20.5-4.
        Как вариант — юзать xorg-server-git из аура. Он поновее будет, и с патчами.

      3. Anonim

        У меня xorg-server-git почему то не собирается. Выдает какую то ошибку. Раньше собирался а сейчас перестал и некогда разобраться почему.

  3. Дмитрий

    Добрый день открываю лог а там это
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    [ 6.229] (WW) The directory «/usr/share/fonts/OTF» does not exist.
    [ 6.229] (WW) The directory «/usr/share/fonts/Type1» does not exist.
    [ 6.230] (WW) fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi".
    [ 6.230] (WW)
    fonts.dir’ not found (or not valid) in «/usr/share/fonts/75dpi».
    [ 7.583] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
    [ 7.608] (WW) Falling back to old probe method for modesetting
    [ 10.007] (WW) NVIDIA(G0): Unable to get display device for DPI computation.
    [ 10.150] (WW) NVIDIA(G0): Option «PrimaryGPU» is not used
    [ 10.150] (II) Initializing extension MIT-SCREEN-SAVER
    [ 106.449] (EE) modeset(0): failed to set mode: Permission denied
    [ 106.981] (WW) xf86CloseConsole: KDSETMODE failed: Input/output error
    [ 106.981] (WW) xf86CloseConsole: VT_GETMODE failed: Input/output error
    [ 106.981] (WW) xf86CloseConsole: VT_ACTIVATE failed: Input/output error
    ~ >>>
    получается PrimeGPU сейчас вообще не работает ( как быть

    1. Stez (автор)

      Вижу только 1 ошибку
      106.449] (EE) modeset(0): failed to set mode: Permission denied
      Что у вас за видеокарты?
      Возможно проблемы с ядром
      Пробуйте заменить ядро или поменять драйвер, т.е. отредактировать хорг конфиг и заменить modesetting на intel

      1. Дмитрий

        я специально переустановил (все почистил и поставил) и сразу же после всех обновлений поставил video-hybrid-intel-nvidia-440xx-prime , потом дальше по гайду вручную просто добавил в конфиг выше упомянутое и перезагрузился

        CPU: 6-Core Intel Core i7-8750H (-MT MCP-) speed/min/max: 800/800/4100 MHz
        Kernel: 5.6.11-1-MANJARO x86_64 Up: 11m Mem: 1129.1/15864.4 MiB (7.1%) Storage: 1.14 TiB (0.7% used)

        Graphics: Device-1: Intel UHD Graphics 630 driver: i915 v: kernel
        Device-2: NVIDIA GP106M [GeForce GTX 1060 Mobile] driver: nvidia v: 440.82
        Display: x11 server: X.org 1.20.8 driver: modesetting,nvidia resolution:
        OpenGL: renderer: Mesa Intel UHD Graphics 630 (CFL GT2) v: 4.6 Mesa 20.0.6

      2. Дмитрий

        может что-то щас поменялось после обнов )

      3. Дмитрий

        изменил modesetting на intel только одна ошибка убралась про permission остальные на месте

        [ 5.968] (WW) Failed to open protocol names file lib/xorg/protocol.txt
        [ 5.969] Current Operating System: Linux rbk 5.6.11-1-MANJARO #1 SMP PREEMPT Wed May 6 10:20:32 UTC 2020 x86_64
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
        [ 5.973] (WW) The directory «/usr/share/fonts/OTF» does not exist.
        [ 5.973] (WW) The directory «/usr/share/fonts/Type1» does not exist.
        [ 5.973] (WW) fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi".
        [ 5.973] (WW)
        fonts.dir’ not found (or not valid) in «/usr/share/fonts/75dpi».
        [ 7.357] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
        [ 8.138] (WW) NVIDIA(G0): Unable to get display device for DPI computation.
        [ 8.175] (WW) NVIDIA(G0): Option «PrimaryGPU» is not used
        [ 8.176] (II) Initializing extension MIT-SCREEN-SAVER
        [ 15.741] (WW) xf86CloseConsole: KDSETMODE failed: Input/output error
        [ 15.741] (WW) xf86CloseConsole: VT_GETMODE failed: Input/output error
        [ 15.741] (WW) xf86CloseConsole: VT_ACTIVATE failed: Input/output error
        ~ >>>

      4. Дмитрий

        ядро поменял на предыдущее LTS ошибки те же(

      5. Stez

        Проблема в том что я не вижу ошибок, только варнинги

  4. Алексей

    А что делать если файл Xorg.conf.d есть в каталоге /etc/X11/?

  5. bodryj

    Сначала нужно удалить bumblebee, а затем насильно установить драйвер 435 (440) версии (если будет ругаться — не пугайтесь).

    Насильно это как? у меня как раз 750m, драйверов в pamac дохрена, зависят ли они от ядра? Искать ли гибрид? Какой же драйвер ставить и как заставить его работать?

    1. Stez

      В манжаре достаточно установить драйвер из mhwd с добавлением «-prime»
      И все должно автоматом настроиться

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: