Como instalar o driver da NVIDIA no Arch Linux
Published: 2023-11-14 13:00:00

Por vezes, a documentação do Arch Linux pode parecer um labirinto, repleto de informações abrangentes, mas tão extenso que é fácil se perder. Este artigo tem como objetivo simplificar o processo de configuração do driver da NVIDIA no Arch Linux, proporcionando um guia mais acessível para mim e para outros que possam enfrentar desafios semelhantes no futuro.

**Verificação da Arquitetura do GPU NVIDIA**

Antes de prosseguir, é crucial verificar a arquitetura exata da GPU NVIDIA instalada no seu sistema. Isso garantirá a compatibilidade correta com o driver adequado. Execute o seguinte comando para identificar a arquitetura da sua GPU:

```bash
`lspci | grep -E "VGA|3D"`
```

Certifique-se de pesquisar as informações da GPU NVIDIA no [site oficial da NVIDIA](https://www.nvidia.com/Download/index.aspx) para garantir a seleção correta do driver.

**Passo 1: Atualização do Sistema**
Certifique-se de que seu sistema está atualizado com o seguinte comando:

```bash
sudo pacman -Syu --noconfirm
```

**Passo 2: Instalação dos Pacotes Necessários**
Instale os pacotes necessários para o driver da NVIDIA com o comando:

```bash
sudo pacman -S --noconfirm nvidia nvidia-utils nvidia-settings opencl-nvidia xorg-server-devel
```

> Dica: caso estiver usando kernel LTS, instale `nvidia-lts` ao invés de `nvidia`.

**Passo 3: Configuração do Xorg**
Crie o diretório necessário e configure o arquivo para o Xorg:

```bash
mkdir -p /etc/X11/xorg.conf.d

cat >> /etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf<<EOF
Section "OutputClass"
    Identifier "intel"
    MatchDriver "i915"
    Driver "modesetting"
EndSection

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "PrimaryGPU" "yes"
    ModulePath "/usr/lib/nvidia/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection
EOF
```

Neste passo, estamos criando e configurando o arquivo `10-nvidia-drm-outputclass.conf` no diretório `/etc/X11/xorg.conf.d/`. Este arquivo é essencial para definir as configurações de saída do Xorg para as GPUs Intel e NVIDIA. Ele usa as seções "OutputClass" para associar o driver `modesetting` à GPU Intel e o driver `nvidia` à GPU NVIDIA.

**Passo 4: Configuração do GDM (GNOME Display Manager)**

```bash
mkdir -p /usr/share/gdm/greeter/autostart
mkdir -p /etc/xdg/autostart

cat >> /usr/share/gdm/greeter/autostart/optimus.desktop<<EOF
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
EOF

cat >> /etc/xdg/autostart/optimus.desktop<<EOF
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
EOF
```

Aqui, estamos criando dois arquivos `.desktop` para integrar a otimização do Optimus ao GDM. O GDM é configurado para executar automaticamente o script `xrandr` para alocar as saídas de vídeo corretamente entre as GPUs Intel e NVIDIA durante a inicialização do servidor gráfico.

**O que é NVIDIA Optimus?**
NVIDIA Optimus é uma tecnologia que gerencia automaticamente o uso da placa de vídeo integrada e dedicada em laptops para otimizar o desempenho e economizar energia. Em resumo, ajuda a equilibrar o poder de processamento conforme necessário.

Caso esteja usando um Gerenciador de Login diferente do GDM [siga a documentação do ArchLinux aqui](https://wiki.archlinux.org/title/NVIDIA_Optimus#Display_managers).

**Passo 5: Configuração do Modprobe**
Configure o Modprobe para o driver da NVIDIA:

```bash
mkdir -p /etc/modprobe.d

cat >> /etc/modprobe.d/nvidia-drm-nomodeset.conf<<EOF
options nvidia-drm modeset=1
EOF
```

Este passo configura o Modprobe para o driver da NVIDIA, especificamente para o `nvidia-drm`. Estamos adicionando uma opção ao arquivo `nvidia-drm-nomodeset.conf` para habilitar o modo `modeset`, que é essencial para uma integração suave do driver NVIDIA com o ambiente gráfico.

**Passo 6: Reconstrução do Initramfs**
Reconstrua o Initramfs para garantir que as alterações sejam aplicadas:

```bash
sudo mkinitcpio -P
```

A reconstrução do Initramfs é crucial para aplicar as alterações feitas nos módulos do kernel, garantindo que o sistema reconheça corretamente o novo ambiente gráfico com o driver NVIDIA.

**Passo 7: Execução de nvidia-xconfig**

```bash
sudo nvidia-xconfig
```

O comando `nvidia-xconfig` é utilizado para gerar um arquivo de configuração Xorg específico para o driver da NVIDIA. Isso ajuda a garantir que as configurações necessárias estejam presentes e otimizadas para a GPU NVIDIA instalada.

**Passo 8: Teste e Verificação do Driver NVIDIA**

Reinicie o sistema para aplicar todas as configurações. Após a reinicialização, verifique se o driver NVIDIA está carregado corretamente usando o comando: `nvidia-smi`
Além disso, abra o NVIDIA X Server Settings ou utilize o comando `nvidia-settings` para acessar a interface gráfica e verificar as configurações específicas da GPU.

Com a conclusão da configuração do driver NVIDIA no Arch Linux, espero sinceramente que este guia tenha sido valioso para você! Agradeço sinceramente por investir seu tempo na leitura deste artigo.

## Fontes
* [ArchLinux Docs: NVIDIA](https://wiki.archlinux.org/title/NVIDIA)
- [ArchLinux Docs: NVIDIA Optimus](https://wiki.archlinux.org/title/NVIDIA_Optimus#Display_managers)