Placas Gráficas Múltiplas, Multi-Cabeças, 3+ Monitor com Nouveau, GDM3 e Debian 8.6

2

Depois de passar muito tempo brincando com o xrandr, encontrei uma solução que "funciona" para mim.

Estou usando este fórum como um meio de fornecer aos outros a solução para o meu problema, bem como fazer minhas próprias perguntas sobre certas coisas que não entendo.

Configuração:

  • 2x Nvidia GT 630 (cada um com 2x DVI 1x HDMI)
  • Monitores
  • 3x (2x Acer 1680x1050 (DVI) & 1x LG 1680x1050 (DVI))
  • Instalação padrão do Debian 8.6 (GnomeDesktop Manager 3)
  • Drivers Nouveau (da instalação padrão)

Eu tenho 1 Acer e 1 LG conectados à placa 1. A instalação padrão faz com que funcionem perfeitamente como uma área de trabalho perfeita. O último Acer no Card 2 não é detectado no GDM e não é funcional. É detectado mais profundamente no sistema, usando alguma mágica BASH que peguei de alguém que sabe o que está fazendo:

ls /sys/class/drm/*/status | xargs -I {} -i bash -c "echo -n {}: ; cat {}"

/sys/class/drm/card0-DVI-I-1/status:connected
/sys/class/drm/card0-DVI-I-2/status:connected
/sys/class/drm/card0-HDMI-A-1/status:disconnected
/sys/class/drm/card1-DVI-I-3/status:connected
/sys/class/drm/card1-DVI-I-4/status:disconnected
/sys/class/drm/card1-HDMI-A-2/status:disconnected

Eu começo digitando

xrandr --listproviders

e obtenha

Providers: number : 2
Provider 0: id: 0x64 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 1 name:nouveau
Provider 1: id: 0x36a cap: 0x2, Sink Output crtcs: 2 outputs: 3 associated providers: 1 name:modesetting

Imediatamente você pode ver que o Provedor 0 tem sua entrada "nome" definida como "nouveau" e a entrada "nome" do Provedor 1 definida como "modesetting"

Tenho certeza de que cada provedor é sua própria placa gráfica. Por que um está configurado para "usar" o nouveau e o outro modesetting (presumivelmente o KernelModesetting)? Nouveau deve rodar acima do KMS ...

O Dmesg mostra-me que ambas as cartas estão rodando com o nouveau ...

Digitando

xrandr --setprovideroutputsource nouveau nouveau

parece forçar entradas de "nome" em ambos os provedores para "nouveau". X reinicia imediatamente (ou trava) e eu sou levado de volta para a tela de login.

Após o login, em um terminal X eu digite:

xrandr --listproviders

e obtenha confirmação:

Providers: number : 2
Provider 0: id: 0xbf cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 0 name:nouveau
Provider 1: id: 0x64 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 0 name:nouveau

As duas entradas de limite são as mesmas. Por que é isso? O que significa cap?

A partir daqui, posso realmente ativar o xrandr para falar com o segundo cartão (Provedor 1):

xrandr --setprovideroutputsource 1 0

Agora, as portas DVI e HDMI extras aparecerão quando eu digitar:

xrandr

A partir daqui, ativo o terceiro monitor com:

xrandr --output DVI-I-1-3 –auto

(Porque meu terceiro monitor reside em DVI-I-1-3)

Em vez disso, posso optar por ativar o monitor por meio do aplicativo GDM GUI em configurações.

A partir daqui, mais alguns comandos de posicionamento de saída do xrandr ou manipulação da GUI farão com que o meu monitor fique em relação aos outros, e tudo funciona. Agora eu tenho que envolver todos esses comandos em um script porque o xrandr não salva as configurações na reinicialização. Vou discutir o script em um post posterior quando eu trabalhar.

Alguns problemas atualmente são desempenho gráfico ruim ao mover janelas ao redor e, às vezes, o mouse congela por alguns segundos por vez. Os drivers proprietários da Nvidia podem consertar isso, mas outras soluções são bem-vindas.

Não posso deixar de pensar que estou errado e que há uma maneira "melhor" de alcançar o que acabei de fazer enquanto ainda uso xrandr (também tentei um xorg.conf personalizado usando ZaphodHeads sem resultados). Por que eu tenho que digitar:

xrandr --setprovideroutputsource nouveau nouveau

Para configurar o restante dos comandos em primeiro lugar?

Xrandr –help

Mostra:

--setprovideroutputsource  <prov-xid> <source-xid>

Onde posso encontrar uma lista de fontes-xid's?

Por que as portas DVI são rotuladas diferentemente entre xrandr e / sys / class / drm /?

    
por ademca 16.01.2017 / 06:02

0 respostas