Jump to content

NVIDIA (Português)

From ArchWiki
Status de tradução: Este artigo é uma tradução de NVIDIA. Data da última tradução: 2026-08-29. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Este artigo cobre o driver proprietário para placas gráficas da NVIDIA. Para o driver de código aberto, consulte Nouveau. Se você tem um laptop com gráficos híbridos Intel/NVIDIA, consulte NVIDIA Optimus.

Instalação

Atenção Evite instalar o driver NVIDIA através do pacote disponibilizado no site da NVIDIA. A instalação utilizando o pacman permite atualizar o driver junto com o restante do sistema.
Nota Ao fazer o dual boot em um sistema com gráficos híbridos, a ativação do Eco-mode do Windows ou de aplicativos de terceiros (como o ASUS Eco mode) pode desativar completamente a GPU discreta da NVIDIA, fazendo com que ela seja indetectável.

Primeiro, encontre a família da sua placa (e.g. NV110, NVC0, etc.) na página de codinomes da wiki do nouveau, correspondente a seu nome/modelo oficial obtido com:

$ lspci -k -d ::03xx

Em seguida, instale o driver apropriado para a sua placa:

Família de GPU Driver Situação
Blackwell (GBXXX) e mais recentes nvidia-open para linux
nvidia-open-lts para linux-lts
nvidia-open-dkms para quaisquer kernel(s)
Recomendado pela fonte (upstream)
Atual, suportado1
Ada Lovelace (NV190/ADXXX)
Ampere (NV170/GAXXX)
Turing (NV160/TUXXX)
nvidia-open para linux (possíveis falhas/crashes em laptops equipados com placas Ampere2)
nvidia-open-lts para linux-lts
nvidia-open-dkms para quaisquer kernel(s)
ou
nvidia-580xx-dkmsAUR (proprietário)
Suportado
Volta (NV140/GV100)
Pascal (NV130/GPXXX)
Maxwell (NV110/GMXXX)
nvidia-580xx-dkmsAUR Legado, suportado
Kepler (NVE0/GKXXX) nvidia-470xx-dkmsAUR Legado, não-suportado3,4
Fermi (NVC0/GF1XX) nvidia-390xx-dkmsAUR
Tesla (NV50/G80-90-GT2XX) nvidia-340xx-dkmsAUR
Curie (NV40/G70) e mais antigos Não mais empacotado


  1. Se esses pacotes não funcionarem (em geral por conta de novos lançamentos de hardware), nvidia-open-betaAUR pode ter uma nova versão que ofereça suporte.
  2. O firmware GSP da NVIDIA é notório por causar problemas, incluindo uma falha total em alguns laptops contendo GPUs Ampere. Caso seja seu caso, use o driver proprietário (e.g. nvidia-580xx-dkmsAUR) com o parâmetro de módulo NVreg_EnableGpuFirmware=0.
  3. Pode não funcionar corretamente no Linux 5.18 (ou mais recentes) em sistemas com CPUs da Intel de 11ª Geração e mais recentes devido a uma incompatibilidade com o Indirect Branch Tracking. Você pode desativá-lo pondo o parâmetro de kernel ibt=off do carregador de boot. Esteja ciente de que essa funcionalidade de segurança é responsável por mitigar toda uma classe de técnicas de exploração.
  4. A NVIDIA não suporta mais essas placas ativamente, e seus drivers podem não suportar oficialmente a versão atual do Xorg. Pode ser mais fácil usar o driver nouveau; porém, os drivers legados da NVIDIA ainda estão disponíveis e podem oferecer melhor performance 3D e/ou estabilidade.
Nota

Para suporte a programas 32-bit, instale também o pacote lib32 correspondente do repositório multilib (e.g. lib32-nvidia-utils).

O pacote nvidia-utils contém um arquivo que põe o módulo nouveau na lista negra ao fazer o reboot. De forma opcional, você também pode remover kms da array HOOKS em /etc/mkinitcpio.conf e recriar o initramfs. Isso prevenirá o initramfs de conter o módulo nouveau, de tal forma a ter certeza de que o kernel não irá carregá-lo durante o early boot.

Nota

Kernel customizado

Certifique-se de que seu kernel tenha CONFIG_DRM_SIMPLEDRM=y. Além disso, caso esteja usando CONFIG_DEBUG_INFO_BTF, a seguinte linha é necessária no seu PKGBUILD (desde o kernel 5.16):

install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids

Se seu kernel é compilado com CONFIG_NOVA_CORE ativado, você pode ter que prevenir o novo driver Nova da GPU NVIDIA de ser carregado. O nvidia-utils adiciona ele à lista negra por padrão. Você pode verificar isso executando o systemd-analyze. Se você instalou uma versão diferente do driver, pode ser que você tenha que pôr os módulos nova_core e nova_drm na lista negra manualmente.

Configuração do modo DRM no kernel

O Kernel mode setting (KMS) é necessário para o funcionamento adequado de compositores Wayland. O KMS também é requisitado para que as GPUs dedicadas da NVIDIA renderizem nativamente no Wayland, em setups com gráficos híbridos. A NVIDIA não suporta o carregamento tardio automático do KMS sem antes ter ativado o DRM (Direct Rendering Manager). A partir da versão 560.35.03-5 do nvidia-utils, o DRM está ativado por padrão.

Para verificar que o DRM está de fato ativo, execute:

# cat /sys/module/nvidia_drm/parameters/modeset

que deve agora retornar Y (Yes), e não N (No).

Para drivers mais antigos que a versão 560, você deve definir o parâmetro de kernel modeset=1 manualmente para o módulo nvidia_drm.

Kernels com suporte oficial ativam o simpledrm, enquanto o driver NVIDIA requer efifb ou vesafb quando seu próprio fbdev está desativado (ou indisponível, para drivers cujas versões são anteriores à 545): veja BBS#307164 para uma possível contorno ao problema caso o enfrente.

Carregamento antecipado

Para um funcionamento básico, adicionar o parâmetro de kernel deve ser suficiente. Se você quiser garantir que ele seja carregado o quanto antes for possível, ou estiver percebendo problemas de inicialização (como o módulo nvidia sendo carregado após o gerenciador de display) você pode adicionar nvidia, nvidia_modeset, nvidia_uvm e nvidia_drm no initramfs. Veja módulo de kernel para aprender a configurar seu gerador de initramfs.

Nota Carregar os módulos antecipadamente quebrará a funcionalidade de hibernação do seu sistema, já que a preservação da memória de vídeo será ativada por padrão.

Decodificação de vídeo acelerada por hardware

A decodificação de vídeo acelerada com VDPAU é compatível com placas da família GeForce 8 e mais recentes. A decodificação de vídeo acelerada com NVDEC é suportada em placas Fermi (família ~400) e mais recentes. Consulte Hardware video acceleration para obter detalhes.

Codificação de vídeo acelerada por hardware com NVENC

NVENC requer o módulo nvidia_uvm e a criação de nós de dispositivo relacionados em /dev.

O pacote de driver mais recente fornece uma regra udev que cria nós de dispositivo automaticamente, portanto, nenhuma ação adicional é necessária.

Se você está usando um driver antigo (e.g. nvidia-340xx-dkmsAUR), você precisa criar nós de dispositivo. A invocação do utilitário nvidia-modprobe cria-os automaticamente. Você pode criar /etc/udev/rules.d/70-nvidia.rules para executá-lo automaticamente:

/etc/udev/rules.d/70-nvidia.rules
ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/usr/bin/nvidia-modprobe -c 0 -u"

Configuração do Wayland

Com relação ao Xwayland, veja Wayland#Xwayland.

Para outras opções de configuração, dê uma olhada nas páginas da wiki ou documentação do compositor respectivo.

Nota Antes da versão 555.xx do driver, ou quando usando um compositor Wayland que não suporta o Explicit Sync via o protocolo linux-drm-syncobj-v1, o driver NVIDIA pode apresentar grandes problemas manifestados por meio de piscagem (flickering), frames fora de ordem e mais, tanto em aplicativos usando o Wayland nativo quanto no Xwayland.

Suporte básico

Há dois parâmetros de kernel para o módulo nvidia_drm que devem ser considerados: modeset e fbdev. Ambos são ativados por padrão ao usar o pacote nvidia-utils. A NVIDIA também planeja ativá-los "de fábrica" em algum lançamento futuro, i.e., sem precisar do nvidia-utils.

modeset

Ativar o modeset é necessário para que todas as configurações Wayland funcionem corretamente.

Para drivers não-suportados, em que o parâmetro modeset deve ser ativado manualmente, veja #Configuração do modo DRM no kernel e Wayland#Requerimentos para mais informações.

fbdev

As versões do driver suportadas pela NVIDIA providenciam um framebuffer. Para versões legadas de driver que não são mais suportadas, a ativação do parâmetro de kernel fbdev para o módulo nvidia_drm pode ser necessário para algumas configurações do Wayland.

É requerimento estritamente necessário a partir do Linux 6.11, mas é incerto no momento se isso é um comportamento intencional ou um bug, veja [1] para mais detalhes.

Para verificar que o framebuffer da NVIDIA está de fato ativo, execute:

# cat /sys/module/nvidia_drm/parameters/fbdev

Ele retornará Y se for o caso.

Suporte à suspensão

A suspensão no Wayland pode sofrer mais dos defaults que o X, veja NVIDIA/Tips and tricks#Preserve video memory after suspend para detalhes.

Caso você use o GDM, veja também GDM#Wayland e o driver proprietário da NVIDIA.

nvidia-application-profiles-rc.d

Alguns compositores Wayland consumirão uma grande quantidade de VRAM por padrão se a chave de perfil de aplicativo GLVidHeapReuseRatio não for aplicada ao nome de seus processos. Por exemplo, usuários do niri podem liberar até ~2.5GiB de consumo inerte de VRAM com a seguinte configuração:

/etc/nvidia/nvidia-application-profiles-rc.d/50-limit-free-buffer-pool-in-wayland-compositors.json
{
    "rules": [
        {
            "pattern": {
                "feature": "procname",
                "matches": "niri"
            },
            "profile": "Limit free buffer pool on Wayland compositors"
        }
    ],
    "profiles": [
        {
            "name": "Limit free buffer pool on Wayland compositors",
            "settings": [
                {
                    "key": "GLVidHeapReuseRatio",
                    "value": 0
                }
            ]
        }
    ]
}

Configuração do Xorg

O driver gráfico proprietário da NVIDIA não precisa de qualquer arquivo de configuração do servidor Xorg. Você pode iniciar o X para ver se o servidor Xorg funcionará coretamente sem um arquivo de configuração. No entanto, se faz necessário criar um arquivo de configuração (preferencialmente /etc/X11/xorg.conf.d/20-nvidia.conf do que /etc/X11/xorg.conf) para ajustar várias opções. Este arquivo pode ser tanto gerado pela ferramenta de configuração do Xorg da NVIDIA, quanto criado manualmente. Se for criado manualmente, pode ser uma configuração mínima (no sentido de que passará apenas as opções básicas para o servidor Xorg), ou pode incluir várias configurações que podem ignorar as opções auto-descobertas ou pré-configuradas do Xorg.

Dica Para mais opções de configuração, consulte NVIDIA/Troubleshooting.

Configuração automática

O pacote nvidia-utils inclui uma ferramenta de configuração automática para criar um arquivo de configuração do servidor Xorg (xorg.conf) e pode ser executado com:

# nvidia-xconfig

Este comando irá auto-detectar e criar (ou editar, se já existente) o arquivo /etc/X11/xorg.conf de configuração levando em consideração o hardware presente.

Verifique novamente o arquivo /etc/X11/xorg.conf para garantir que sua profundidade padrão, sincronização horizontal, atualização vertical e resoluções sejam aceitáveis.

nvidia-settings

A ferramenta nvidia-settings permite que você configure muitas opções usando tanto CLI quanto GUI. A execução de nvidia-settings sem nenhuma opção inicia a GUI. Para opções de CLI, consulte nvidia-settings(1).

Você pode executar a CLI/GUI como um usuário sem permissões de root e salvar as configurações em ~/.nvidia-settings-rc usando a opção Save Current Configuration na guia nvidia-settings Configuration.

Para carregar o ~/.nvidia-settings-rc para o usuário atual:

$ nvidia-settings --load-config-only

Consulte Autostarting para iniciar esse comando em cada boot.

Nota O Xorg poderá não iniciar ou travar na inicialização após salvar as alterações na nvidia-settings. Ajustar ou apagar o arquivo ~/.nvidia-settings-rc e/ou os arquivos do Xorg deve recuperar a inicialização normal.

Configuração manual

Vários ajustes (que não podem ser ativados automaticamente ou com o nvidia-settings) podem ser executados editando o arquivo de configuração. O servidor Xorg precisará ser reiniciado antes que qualquer alteração seja aplicada.

Consulte NVIDIA Accelerated Linux Graphics Driver README and Installation Guide para mais detalhes e opções.

Configurações mínimas

Um bloco de configurações básicas em 20-nvidia.conf (ou depreciado em xorg.conf) deve se parecer com isto:

/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device"
        Identifier "NVIDIA Card"
        Driver "nvidia"
        VendorName "NVIDIA Corporation"
        BoardName "GeForce GTX 1050 Ti"
EndSection

Desabilitar o logotipo na inicialização

Caso você esteja usando um driver antigo (nvidia-340xx-dkmsAUR), você pode querer desativar a logo da NVIDIA mostrada na inicialização do X. Adicione a opção "NoLogo" na seção Device:

Option "NoLogo" "1"

Sobrescrever a detecção do monitor

A opção "ConnectedMonitor" sob a seção Device permite sobrescrever a detecção do monitor quando o servidor X inicializa, o que pode economizar uma quantidade significativa de tempo na inicialização. As opções disponíveis são: "CRT" para conexões analógicas, "DFP" para monitores digitais e "TV" para televisores.

A declaração a seguir força o driver NVIDIA a ignorar as verificações de inicialização e reconhecer o monitor como DFP:

Option "ConnectedMonitor" "DFP"
Nota Use "CRT" para todas as conexões analógicas VGA de 15 pinos, mesmo se o monitor for de tela plana. "DFP" destina-se apenas a conexões digitais DVI, HDMI ou DisplayPort.

Habilitando o controle de brilho

This article or section is out of date.

Reason: Desatualizado (Discuss in [[Potencialmente obsoleto[2], pacote upstream também parece ser antigo.]])

Adicione aos parâmetros do kernel:

nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1

De forma alternativa, adicione o seguinte na seção Device:

Option "RegistryDwords" "EnableBrightnessControl=1"

Se o controle de brilho continua sem funcionar mesmo com essas opções, tente instalar o pacote nvidia-bl-dkmsAUR.

Nota A instalação do pacote nvidia-bl-dkmsAUR fornecerá uma interface /sys/class/backlight/nvidia_backlight/ para controle de brilho da luz de fundo, mas seu sistema pode continuar emitindo as alterações de controle de luz de fundo em /sys/class/backlight/acpi_video0/. Uma solução neste caso é de observar as alterações, e.g. acpi_video0/brightness com inotifywait, e então traduzir e escrever em nvidia_backlight/brightness respectivamente. Veja Backlight#sysfs modified but no brightness change.

Habilitando o SLI

Atenção Desde a família GTX 10xx (1080, 1070, 1060, etc), apenas SLI de 2 vias é suportado. SLI de 3 e 4 vias pode funcionar para aplicativos CUDA/OpenCL, mas provavelmente quebrará todos os aplicativos OpenGL.

Baseado no README do driver da NVIDIA, Apêndice B: Esta opção controla a configuração da renderização SLI em configurações suportadas. Uma "configuração suportada" é um computador equipado com uma placa-mãe com Certificado SLI e 2 ou 3 GPUs GeForce também com Certificados SLI.

Encontre o ID do barramento PCI da primeira GPU usando lspci:

# lspci | grep "VGA|3D controller"
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)
03:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
04:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
08:00.0 3D controller: NVIDIA Corporation GM108GLM [Quadro K620M / Quadro M500M] (rev a2)

Adicione o BusID (3 no exemplo anterior) sob a seção Device:

BusID "PCI:3:0:0"
Nota O formato é importante. O valor do BusID deve ser especificado da forma "PCI:<BusID>:0:0"

Adicione o valor do modo de renderização SLI desejado sob a seção Screen:

Option "SLI" "AA"

A tabela a seguir apresenta os modos de renderização disponíveis.

Valor Comportamento
0, no, off, false, Single Usar apenas uma GPU ao renderizar.
1, yes, on, true, Auto Ativar SLI e deixar o driver selecionar o modo de renderização apropriado automaticamente.
AFR Ativar SLI e usar o modo de renderização de frames alternados.
SFR Ativar SLI e usar o modo de renderização de frames partidos.
AA Ativar SLI e usar o antialiasing SLI. Use isso em conjunto com o antialiasing da cena completa para melhorar a qualidade visual.

De forma alternativa, você pode usar o nvidia-xconfig para inserir essas mudanças em xorg.conf com um único comando:

# nvidia-xconfig --busid=PCI:3:0:0 --sli=AA

Para verificar que o modo SLI está ativo por um shell:

$ nvidia-settings -q all | grep SLIMode
  Attribute 'SLIMode' (arch:0.0): AA 
    'SLIMode' is a string attribute.
    'SLIMode' is a read-only attribute.
    'SLIMode' can use the following target types: X Screen.
Atenção Após ativar o SLI, seu sistema pode congelar ou ficar irresponsivo ao iniciar o Xorg. É recomendado que você desative seu gerenciador de display antes de reiniciar.

Se essa configuração não funcionar, você pode ter que usar o ID de barramento PCI dado por nvidia-settings,

$ nvidia-settings -q all | grep -i pcibus
Attribute 'PCIBus' (host:0[gpu:0]): 101.
  'PCIBus' is an integer attribute.
  'PCIBus' is a read-only attribute.
  'PCIBus' can use the following target types: GPU, SDI Input Device.
Attribute 'PCIBus' (host:0[gpu:1]): 23.
  'PCIBus' is an integer attribute.
  'PCIBus' is a read-only attribute.
  'PCIBus' can use the following target types: GPU, SDI Input Device.

e então comentar a opção PrimaryGPU na sua configuração xorg.d,

/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
...

Section "OutputClass"
...
    # Option "PrimaryGPU" "yes"
...

Usando esta configuração, é possível que problemas gráficos durante o boot sejam resolvidos.

Múltiplos monitores

Veja Multihead para mais informações gerais.

Usando nvidia-settings

A ferramenta nvidia-settings pode ser usada para configurar múltiplos monitores.

Para configuração via CLI, primeiro consiga o CurrentMetaMode executando:

$ nvidia-settings -q CurrentMetaMode
Attribute 'CurrentMetaMode' (hostnmae:0.0): id=50, switchable=no, source=nv-control :: DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}

Salve tudo após o :: até o final do atributo (neste caso: DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}) e use-o para reconfigurar seus displays com nvidia-settings --assign "CurrentMetaMode=seu_meta_mode"

Dica Você pode criar aliases de shell para o monitor diferente e as configurações de resolução que você usar.

ConnectedMonitor

Se o driver não detectar um segundo monitor de maneira adequada, você pode forçá-lo a encontrar com a opção ConnectedMonitor.

/etc/X11/xorg.conf

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Panasonic"
    ModelName      "Panasonic MICRON 2100Ex"
    HorizSync       30.0 - 121.0 # este monitor tem EDID incorreto, por isso que Option "UseEDIDFreqs" "false"
    VertRefresh     50.0 - 160.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor2"
    VendorName     "Gateway"
    ModelName      "GatewayVX1120"
    HorizSync       30.0 - 121.0
    VertRefresh     50.0 - 160.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    Option         "NoLogo"
    Option         "UseEDIDFreqs" "false"
    Option         "ConnectedMonitor" "CRT,CRT"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 6200 LE"
    BusID          "PCI:3:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nvidia"
    Option         "NoLogo"
    Option         "UseEDIDFreqs" "false"
    Option         "ConnectedMonitor" "CRT,CRT"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 6200 LE"
    BusID          "PCI:3:0:0"
    Screen          1
EndSection

O "Device" duplicado com Screen é como você faz para que o X use dois monitores em uma placa gráfica sem o TwinView. Note que nvidia-settings irá remover quaisquer opções ConnectedMonitor que você tenha adicionado.

TwinView

Você quer apenas uma tela grande ao invés de duas. Ponha o valor de TwinView para 1. Esta opção deve ser usada se você deseja ter composição (compositing). O TwinView só funciona em um esquema "para cada placa gráfica", quando todos os monitores participantes estão conectados à mesma placa.

Option "TwinView" "1"

Exemplo de configuração:

/etc/X11/xorg.conf.d/10-monitor.conf
Section "ServerLayout"
    Identifier     "TwinLayout"
    Screen         0 "metaScreen" 0 0
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    Option         "Enable" "true"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    Option         "Enable" "true"
EndSection

Section "Device"
    Identifier     "Card0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"

    #refer to the link below for more information on each of the following options.
    Option         "HorizSync"          "DFP-0: 28-33; DFP-1: 28-33"
    Option         "VertRefresh"        "DFP-0: 43-73; DFP-1: 43-73"
    Option         "MetaModes"          "1920x1080, 1920x1080"
    Option         "ConnectedMonitor"   "DFP-0, DFP-1"
    Option         "MetaModeOrientation" "DFP-1 LeftOf DFP-0"
EndSection

Section "Screen"
    Identifier     "metaScreen"
    Device         "Card0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "True"
    SubSection "Display"
        Modes          "1920x1080"
    EndSubSection
EndSection

Informações sobre a opção Device.

Caso você tenha múltiplas placas gráficas capazes de SLI, é possível rodar mais de um monitor acoplado a placas diferentes (por exemplo: duas placas em SLI com um monitor acoplado a cada uma). A opção "MetaModes", juntamente com o modo SLI Mosaic, ativa este arranjo. Abaixo está uma configuração que funciona para o exemplo dito acima e roda o GNOME perfeitamente.

/etc/X11/xorg.conf.d/10-monitor.conf
Section "Device"
        Identifier      "Card A"
        Driver          "nvidia"
        BusID           "PCI:1:00:0"
EndSection

Section "Device"
        Identifier      "Card B"
        Driver          "nvidia"
        BusID           "PCI:2:00:0"
EndSection

Section "Monitor"
        Identifier      "Right Monitor"
EndSection

Section "Monitor"
        Identifier      "Left Monitor"
EndSection

Section "Screen"
        Identifier      "Right Screen"
        Device          "Card A"
        Monitor         "Right Monitor"
        DefaultDepth    24
        Option          "SLI" "Mosaic"
        Option          "Stereo" "0"
        Option          "BaseMosaic" "True"
        Option          "MetaModes" "GPU-0.DFP-0: 1920x1200+4480+0, GPU-1.DFP-0:1920x1200+0+0"
        SubSection      "Display"
                        Depth           24
        EndSubSection
EndSection

Section "Screen"
        Identifier      "Left Screen"
        Device          "Card B"
        Monitor         "Left Monitor"
        DefaultDepth    24
        Option          "SLI" "Mosaic"
        Option          "Stereo" "0"
        Option          "BaseMosaic" "True"
        Option          "MetaModes" "GPU-0.DFP-0: 1920x1200+4480+0, GPU-1.DFP-0:1920x1200+0+0"
        SubSection      "Display"
                        Depth           24
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Default"
        Screen 0        "Right Screen" 0 0
        Option          "Xinerama" "0"
EndSection
Sincronização vertical usando TwinView

Se você estiver usando TwinView e sincronização vertical (a opção "Sync to VBlank" no nvidia-settings), você notará que apenas uma tela está apropriadamente sincronizada, a menos que você tenha dois monitores idênticos. Embora nvidia-settings ofereça uma opção para escolher qual tela será sincronizada (a opção "Sync to this display device"), isto nem sempre funciona. A solução é adicionar as seguintes variáveis de ambiente na inicialização, por exemplo colocando em /etc/profile:

export __GL_SYNC_TO_VBLANK=1
export __GL_SYNC_DISPLAY_DEVICE=DFP-0
export VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE=DFP-0

Você pode mudar DFP-0 para a sua tela de preferência (DFP-0 é a porta DVI e CRT-0 é a porta VGA). Você pode encontrar o identificador do seu display pelo nvidia-settings, na seção "X Server XVideoSettings".

Jogos usando TwinView

Caso você queira jogar jogos em tela cheia usando o TwinView, você vai perceber que os jogos reconhecem as duas telas como se fossem uma única grande tela. Enquanto isto está tecnicamente certo (a tela virtual do X realmente é o tamanho das suas telas combinadas), você provavelmente não quer jogar nas duas telas ao mesmo tempo.

Para corrigir esse comportamento para SDL, tente:

export SDL_VIDEO_FULLSCREEN_HEAD=1

Para OpenGL, adicione os Metamodes apropriados para o seu xorg.conf na seção Device e reinicie o X:

Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"

Um outro método que pode ou funcionar sozinho ou em conjunto com aqueles mencionados acima é iniciar os jogos em um servidor X separado.

Modo Mosaic

O modo Mosaic (mosaico) é a única maneira de usar mais de 2 monitores ao longo de múltiplas placas gráficas com composição. Seu gerenciador de janelas pode ou não reconhecer a diferença entre cada monitor. O modo Mosaic requer uma configuração SLI válida. Mesmo que use o modo Base sem SLI, as GPUs devem ainda assim ser capazes/compatíveis com SLI.

Base Mosaic

O modo Base Mosaic funciona em qualquer conjunto de GPUs das séries GeForce 8000 ou mais altas. Ele não pode ser ativado de dentro da interface gráfica do nvidia-settings. Você deve ou usar o programa de linha de comando nvidia-xconfig, ou editar xorg.conf manualmente. Os Metamodes devem ser especificados. A seguir está um exemplo para quadro DFPs em uma configuração 2x2, cada um rodando em 1920x1024, com dois DFPs conectados a cada uma de duas placas:

$ nvidia-xconfig --base-mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
Nota Por mais que a documentação liste uma configuração de monitores 2x2, as placas GeForce são artificialmente limitadas a 3 monitores no modo Base Mosaic. Placas Quadro suportam mais de 3 monitores. Com referência a data de setembro de 2014, o driver do Windows não mais possui esta restrição artificial, mas ela permanece no driver do Linux.
SLI Mosaic

Se você tem uma configuração SLI e cada GPU é uma Quadro FX 5800, Quadro Fermi ou mais recente, então você pode usar o modo SLI Mosaic. Ele pode ser ativado através da interface gráfica do nvidia-settings ou pela linha de comando com:

$ nvidia-xconfig --sli=Mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"

NVSwitch

De acordo com a página da NVIDIA:

NVIDIA NVSwitch é um tecido (fabric) de alta banda-larga e baixa latência que conecta múltiplas GPUs em um sistema. [...] O switch comporta-se como uma ponte para que as GPUs possam alcançar umas às outras em velocidades de NVLink, que é importante para tarefas multi-GPU que trocam dados na memória em um único nó.

Para que seu sistema suporte este tipo de hardware, como os dispositivos DGX H100, o NVIDIA Fabric Manager (FM) deve ser instalado, assim como um módulo de kernel que seja da mesma versão que o Fabric Manager. Sem o FM, alguns programas como pytorch (do pacote python-pytorch) não conseguiriam encontrar as GPUs.

Nota
  • A NVIDIA não suporta oficialmente o Fabric Manager no Arch Linux. Somente em certas versões do Ubuntu e CentOS.
  • O Fabric Manager não está atualmente disponível como pacote nem nos repositórios oficiais nem no AUR.

Instalando o Fabric Manager

O FM requer que as bibliotecas libibumad3 e infiniband-diags estejam instaladas no sistema. Você pode consegui-las instalando o pacote rdma-core.

Já para o FM em si, primeiro baixe o tarball da NVIDIA. Em seguida, no script de instalação sbin/fm_run_package_installer.sh, ponha a variável LIB_LOC para /usr/lib (após o bloco if ... fi). Caso contrário, as bibliotecas seriam instaladas em sub-diretórios dependentes de arquitetura (e.g. /usr/lib/x86_64-linux-gnu), que não são suportados no Arch Linux.

Driver de kernel para o Fabric Manager

Em sistemas DGX B200/B300, NVIDIA HGX B200/B300, e NVIDIA HGX B100, um driver OFED ou MOFED é necessário, que não são oficialmente distribuídos para sistemas Arch.

Para outros hardware desta categoria, siga #Instalação. Assegure-se de que as versões do módulo instalado e do FM sejam as mesmas, e reinicie o sistema.

O serviço nvidia-fabricmanager deve ter sido automaticamente ativado pelo script de instalação, e portanto iniciado após um reboot.

Dicas e truques

Veja NVIDIA/Dicas e truques.

Solução de problemas

Veja NVIDIA/Solução de problemas.

Veja também