Área de trabalho estendida com o Optimus no Linux

1

O problema que estou enfrentando é estender minha área de trabalho, além de incluir um monitor em toda a janela de visualização de todas as telas.

É com isso que estou lidando:

Dell XPS L702X

sudo lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF106M [GeForce GT 550M] (rev a1)

Esta não é a primeira vez que tive problemas com o Optimus no Linux (não de longe), mas recentemente comprei outra tela e desejo estendê-la a essa outra vez. Antes eu estendi meu display interno com um secundário via mDP que funcionou.

A configuração:

O monitor esquerdo está conectado à porta mDP que é controlada pelo cartão intel. O monitor direito está conectado à porta HDMI que é controlada pela placa nVidia.

Eu tenho um xorg.conf padrão do arch wiki (somente a configuração que funcionou para mim):

Section "Module"
    Load "modesetting"
EndSection

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

Atualmente, tenho driver nvidia 364.19-2 instalado.

A saída xrandr (removida da saída de resolução excessiva)

Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
HDMI-0 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm panning 3840x1080+0+0
   1920x1080     60.00*+  59.94    50.00    60.00    50.04  
LVDS-1 connected (normal left inverted right x axis y axis)
   1920x1080     60.01 +  40.01  
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  50.00    59.94  
DP-1 disconnected (normal left inverted right x axis y axis)
  1920x1080 (0x2b8) 148.500MHz +HSync +VSync
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.50KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  60.00Hz
  1920x1080 (0x2ba) 148.500MHz +HSync +VSync
        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock  56.25KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  50.00Hz

O problema

Se no painel de controle do KDE eu tenho monitor mDP no lado esquerdo e Monitor HDMI na direita parece funcionar, somente meu mouse está preso no lado direito da tela e não consigo movê-lo para a tela esquerda.

Se no painel de controle do KDE tenho monitor mDP à direita e HDMI à esquerda, posso mover meu mouse para a direita, mas o que acontece é que o monitor HDMI rola horizontalmente para a saída do mDP para que eu tenha uma saída clonada . Se eu me mover para a esquerda com o mouse, o lado esquerdo da área de trabalho rola para trás. Acredito que a saída do xrandr explica esse comportamento, no entanto, isso acontece no monitor certo, conectado ao HDMI e não ao mDP.

    
por Xorifelse 09.05.2016 / 23:46

1 resposta

0

Depois de me deparar com este problema, finalmente resolvi o problema.

A razão pela qual isso está acontecendo é que a placa Intel atua como um provedor de coletor para a placa nVidia, o que significa que todas as telas são capturadas e enviadas novamente. Isso fez com que o xrandr se comportasse, pois fazia com que ele não pudesse renderizar um 5760x1080 em uma tela de 1080p.

Então enganar o sistema em vez de consertá-lo resolveu o problema para mim. Eu fiz isso com esse roteiro, mas não posso acreditar na idéia.

xrandr --output HDMI-1 --mode 1920x1080 --pos 0x0 --panning 5760x1080+0+0/0x0+0+0/0/0/-3840/0
xrandr --output HDMI-0 --mode 1920x1080 --pos 1920x0 --panning 5760x1080+0+0/0x0+0+0/-1920/0/-1920/0
xrandr --output LVDS-1 --mode 1920x1080 --pos 3840x0 --panning 5760x1080+0+0/0x0+0+0/-3840/0/0/0

Source

Eu modifiquei os valores para ajustar minhas conexões e resoluções de monitor. A próxima coisa que fiz foi criar um arquivo bash que é executado na inicialização do sistema que determina meus monitores conectados e executa manualmente os comandos xrandr a partir daí. Útil, se eu levar meu notebook ao desconectar os outros monitores.

    
por 26.05.2016 / 02:20