12.10 Problemas de exibição quânticos usando nvidiaXineramaInfoOverride

0

Após atualizar para o 12.10 hoje, o meu xorg.conf não parece ser respeitado pelo Quantal. Não tenho certeza se isso é um "bug" ou se é apenas um ajuste que preciso fazer devido a alterações no sistema operacional.

Ao fazer o login, parece que o Ubuntu agora está reconhecendo apenas uma tela de 3840x1080 chamada "Matrox" e maximizando as janelas em ambas as telas. Em 12.04, esse arquivo de configuração permitiu que eu substituísse os dados fornecidos pelo meu TripleHead2Go e maximizasse as janelas para um único monitor.

Alguma idéia ou por onde começar a tentar depurar isso?

Após um pouco de pesquisa, tentei fazer alterações de acordo com a atualização aqui: link

Aqui é onde o arquivo de configuração está atualmente:

Section "ServerLayout"
  Identifier     "Layout0"
  Screen      0  "Screen0" 0 0
  InputDevice    "Keyboard0" "CoreKeyboard"
  InputDevice    "Mouse0" "CorePointer"
  Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
  Identifier     "Mouse0"
  Driver         "mouse"
  Option         "Protocol" "auto"
  Option         "Device" "/dev/psaux"
  Option         "Emulate3Buttons" "no"
  Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"      
  Identifier     "Keyboard0"
  Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Matrox"
    HorizSync       31.5 - 80.0
    VertRefresh     59.9 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 260M"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "nvidiaXineramaInfo" "true"
    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    #Option         "metamodes" "CRT: nvidia-auto-select +0+0"
    Option         "nvidiaXineramaInfoOverride" "1920x1080 +0+0, 1920x1080 +1920+0"
    Option         "Stereo" "0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
    
por AvatarKava 19.10.2012 / 00:13

2 respostas

5

Em versões recentes do driver gráfico NVIDIA Linux - incluindo a versão nvidia-current no quantal 12.10, 304.51 - o suporte para RandR 1.2+ foi introduzido, melhorando a integração entre a placa gráfica e o gerenciador de janelas (GNOME, KDE , etc.) com a manipulação de resolução de tela, rotação, etc. das ferramentas do gerenciador de janelas, além de nvidia-settings . No entanto, parece que a opção TwinViewXineramaInfoOverride xorg.conf config (que agora foi renomeada para nvidiaXineramaInfoOverride ) não está funcionando corretamente.

Para acompanhar o progresso da NVIDIA sobre este assunto, consulte:

http://www.nvnews.net/vbulletin/showthread.php?p=2578805
http://www.nvnews.net/vbulletin/showthread.php?t=184814

Uma possível solução é usar o link do Fake Xinerama que provou funcionar também com o Xorg 7.7. versão do Xorg no quantal 12.10). Para seguir o procedimento descrito no documento vinculado, você precisa:

  • Antes do procedimento, sudo apt-get install libxinerama-dev
  • Após o procedimento, reinicialize o sistema

Você pode usar o seguinte conteúdo para ~/.fakexinerama :

2
0 0 1920 1080
1920 0 1920 1080

Para ativar o fakexinerama somente quando a Matrox DualHead2Go estiver presente, você também pode adicionar esse código ao /etc/init/lightdm.conf, antes de exec lightdm :

if lsusb | grep -q 18ea:0003; then
        echo "Matrox DualHead2Go Detected"
        cp /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-fake /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0
else
        echo "Matrox DualHead2Go NOT Detected"
        cp /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-orig /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0
fi

Use as seguintes regras para fazer este código funcionar:

  • Em qualquer caso, use /usr/lib/i386-linux-gnu em vez de /usr/lib/x86_64-linux-gnu , se não em 64 bits
  • Faça uma cópia de backup do original /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 to /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-orig
  • Copie a versão modificada, resultante da construção do fakexinerama para /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-fake
  • Substitua 18ea:0003 pelo ID do produto do dispositivo, se diferente (use lsusb para encontrar o valor correto).

Reinicialize o sistema toda vez que precisar mudar do modo Matrox DualHead2Go para o modo original.

OBSERVAÇÃO: uma vez trabalhando, você deve maximizar as janelas para cada tela, mas qualquer ação que use a informação RandR em vez do Xinerama não cuidará das informações falsas do Xinerama (por exemplo, papel de parede, tela cheia do Adobe Flash - incluindo YouTube, etc.).

    
por Polymorphic 07.12.2012 / 09:56
0

Tudo bem, correção parcial:

  1. Instale o pacote compizconfig-settings-manager, se você não o tiver já.
  2. Execute e vá para Opções gerais > Configurações de exibição
  3. Adicione saídas como desejar (no meu caso com duas conexões DVI eu tenho como 1920x1080 + 0 + 0 e 1920x1080 + 1920 + 0)
  4. Desmarque a opção "Detect Outputs" acima da lista de saída

Advertência:

  • Isso NÃO corrigirá o problema com o painel abrangendo vários desktops, apenas o das janelas maximizadas que abrangem ambas as telas

Eu tinha me esquecido completamente da capacidade do Compizconfig de fazer isso.

Alguma entrada na divisão do painel por saída usando isso?

    
por AvatarKava 06.11.2012 / 09:59