Instalação Nvidia Prime Render Offload no Manjaro

Instalar NVIDIA Prime Render Offload no Manjaro

Passo 1

Remover os drivers Bumblebee ou Optimus Manager caso estejam instalados

Nota: Escolher um dos dois conforme configuração corrente

  1. Remover os drivers Bumblebee
  • Listar os drivers instalados

      mhwd -li
    
  • Remover os drivers Bumblebee.

Nota: Verificar o nome do driver instalado e executar o comando correspondente

    sudo mhwd -r pci video-hybrid-intel-nvidia-430xx-bumblebee
    sudo mhwd -r pci video-hybrid-intel-nvidia-418xx-bumblebee
    sudo mhwd -r pci video-hybrid-intel-nvidia-390xx-bumblebee
  1. Remover o Optimus Manager
  • Verificar se o pacote esta instalado

      pacman -Qi optimus-manager
    

Nota: Não retorna erro se o pacote não estiver instalado

  • Parar e desativar o serviço do Optimus Manager

      sudo systemctl stop optimus-manager.service
      sudo systemctl disable optimus-manager.service
    
  • Remover as configurações do Optimus Manager

      sudo optimus-manager --cleanup
    
  • Remover o Optimus Manager

      sudo pacman -Rsnc optimus-manager
    

Passo 2

Instalar os drivers NVIDIA

  • Listar se os drivers 435 ou superior estão disponíveis

Nota: Os drivers 435 ou superior são necessários para o Prime offloading

    mhwd -l --pci | grep "video-nvidia"
  • Instalar os drivers NVIDIA

      sudo mhwd -i pci video-nvidia-435xx -f
    

Passo 3

Configuração do Prime offloading

  • Fazer backup do arquivo original da configuração do mhwd

      sudo mv /etc/X11/mhwd.d/nvidia.conf /etc/X11/mhwd.d/nvidia.conf.mhwd
    
  • Obter o BusID da NVIDIA. Ex: PCI:1:0:0, PCI:2:0:0, PCI:3:0:0, etc.

      lspci | grep -E "VGA|3D"
    
  • Criar um novo arquivo de configuração do mhwd

      sudo nano /etc/X11/mhwd.d/nvidia.conf
    
  • Inserir o conteúdo abaixo entre “Section” e “EndSection”

Nota: Alterar o BusID conforme saída do comando nvidia-config

Section “Module”
Load “modesetting”
EndSection

Section “Device”
Identifier “nvidia”
Driver “nvidia”
BusID “PCI:1:0:0”
Option “AllowEmptyInitialConfiguration”
EndSection

Passo 4

  • Habilitar nvidia-drm.modeset para remover o “screen tearing”

      sudo nano /etc/modprobe.d/nvidia-drm.conf
    
  • Inserir o conteúdo abaixo

    options nvidia_drm modeset=1

Passo 5

  • Recriar a initrd

      sudo mkinitcpio -P
    

Passo 6

Criar o arquivo para caregar o Prime offloading

  • Editar o arquivo do nvidia-offloading

      sudo nano /etc/X11/xorg.conf.d/01-nvidia-offloading.conf
    
  • Inserir o conteúdo abaixo entre “Section” e “EndSection”

Nota: Em Identifier “nvidia”
Alterar o BusID conforme saída do comando nvidia-config

Section “ServerFlags”
Option “IgnoreABI” “1”
EndSection

Section “ServerLayout”
Identifier “layout”
Option “AllowNVIDIAGPUScreens”
Screen 0 “iGPU”
EndSection

Section “Device”
Identifier “iGPU”
Driver “modesetting”
BusID “PCI:0:2:0”
EndSection

Section “Screen”
Identifier “iGPU”
Device “iGPU”
EndSection

Section “Device”
Identifier “nvidia”
Driver “nvidia”
BusID “PCI:1:0:0”
EndSection

Passo 7

Criar o “alias” para executar o comando nvidia

Nota: Há duas opções para os “alias”
Para o usuário corrente em “~/.bashrc”
Ou para todos os usuários em “/etc/bash.bashrc”

  • Editar o arquivo par o usuário corrente "~.bashrc

      nano ~/.bashrc
    
  • Inserir o conteúdo abaixo

alias nvrun='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia '

Nota: Caso não queira inserir o “alias” as variáveis devem ser passadas no
momento de rodar algum comando com a nvidia

Passo 7

  • Instalar o pacote que contém o comando glxgears

      sudo pacman -Sy --needed mesa-demos
    
  • Reiniciar o sistema

     reboot
    

Passo 8

Verificar se os drivers estão configurados corretamente

Após logon na GUI executar os comandos para verificar os drivers em uso

  • Drivers Intel

      $ glxinfo | grep vendor
    

Saida do comando:

    server glx vendor string: SGI
    client glx vendor string: Mesa Project and SGI
    OpenGL vendor string: Intel Open Source Technology Center
  • Drivers NVIDIA

      $ nvrun glxinfo | grep vendor
    

Saida do comando:

    server glx vendor string: NVIDIA Corporation
    client glx vendor string: NVIDIA Corporation
    OpenGL vendor string: NVIDIA Corporation

Referências

5 Curtidas

Bom dia!

Minha primeira vez nesse forum, me amarrei nesse tutorial, eu vi algo parecido no forum oficial do manjaro, mas aqui esta bem melhor compilado.

Funcionou bem no meu Dell G5 5590, inclusive com driver 440.

Só cuidado na hora de copiar daqui desse forum, pois na hora de reinicializar nao entrou o GDM, devido aos arquivos ficarem com uma aspa estranha de quote, ao invés de aspas duplas convencionais.

Tive que usar meu pen drive com chroot para editar os arquivos e corrigir as aspas.

Agora vou fazer mais uns testes aqui, pois tinha feito um outro setup que peguei no forum oficial na qual a HDMI traseira nao dava saida para monitores externos.

Para quem usa fish shell ao inves do bash, so usar isso no config.fish:

alias nvrun 'set -lx __NV_PRIME_RENDER_OFFLOAD 1; set -lx __GLX_VENDOR_LIBRARY_NAME nvidia;'
1 Curtida

Atualizando, fiz um setup melhor ainda, apos ler algumas coisas na doc da nvidia.

No arquivo sudo gedit /etc/X11/mhwd.d/nvidia.conf

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
    Option "AllowEmptyInitialConfiguration"
EndSection

No arquivo sudo gedit /etc/X11/xorg.conf.d/01-nvidia-offloading.conf

Section "ServerLayout"
	Identifier "layout"
	Screen 0 "nvidia"
	Inactive "intel"
EndSection

Section "Device"
	Identifier "nvidia"
	Driver "nvidia"
	BusID "PCI:1:0:0"
EndSection

Section "Screen"
	Identifier "nvidia"
	Device "nvidia"
	Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
	Identifier "intel"
	Driver "modesetting"
EndSection

Section "Screen"
	Identifier "intel"
	Device "intel"
EndSection

Isso faz as coisas serem automaticas, eu perco acesso ao nvrun, mas os monitores externos voltaram a funcionar no meu Dell G5 5590

Agora estou tentando descobrir como alcancar a mesma vida de bateria que no Windows, que chega a quase 6h e no maximo 3 no Manjaro.

Consegui melhorar recentemente com algumas blacklists que copiei do PopOS no /etc/modprobe.d, mas so aumentei para 3h estavel e 4h no max.

sim, eu percebi isso quando eu tive que instalar o driver 440! as aspas bugaram! e nao precisa usar o chroot, eu usei o terminal tty do SO instalado mesmo!

o que voce quer dizer com deixa as coisas automáticas?

Essa configuração não funciona pra mim! O sddm não subiu!

Será que é possível fazer isso só que em modo gráfico?