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
- 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
- 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”
EndSectionSection “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”
EndSectionSection “ServerLayout”
Identifier “layout”
Option “AllowNVIDIAGPUScreens”
Screen 0 “iGPU”
EndSectionSection “Device”
Identifier “iGPU”
Driver “modesetting”
BusID “PCI:0:2:0”
EndSectionSection “Screen”
Identifier “iGPU”
Device “iGPU”
EndSectionSection “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