Dual monitor com Twinview
jan 17th, 2009 by Fernando Scherrer
Este post descreve minha experiência configurando dois monitores (dual monitor) no linux via Twinview utilizando uma nVidia GeForce 6500, à qual primeiramente foram conectados um Samsung SyncMaster 793DF na saída analógica (VGA) e um Samsung SyncMaster T220 na digital (DVI), e em seguida trocado o 793DF por outro T220, ficando dois T220.
- Considerações iniciais
- Hardware
- 793 DF e T220
- Dois T220
- Observações
- nvidia-settings
- Considerações finais
- Referências
- Informação Legal
- Comente
- Histórico
Considerações iniciais
Este apenas descreve uma experiência, não devendo ser considerado como passo-a-passo, solução ou recomendação.
Hardware
Estou postando os detalhes apenas dos itens de hardware que considero pertinentes, ou seja, placa de vídeo e monitores.
Placa de vídeo:
-
nVidia GeForce 6500
Saída do lspci:
# lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation GeForce 6500 (rev a1)
Utilizado driver proprietário versão 177.82 (NVIDIA-Linux-x86-177.82-pkg1.run), útima versão no momento em que escrevo (12/2008).
Monitores:
-
Samsung SyncMaster 793 DF, CRT, 17";
-
Samsung SyncMaster T220, LCD, 22" widescreen.
-
Testadas duas combinações, sendo a primeira mantendo o monitor que já estava funcionando (793 DF) na saída analógica (VGA) e adicionando um T220 na digital (DVI), e a segunda trocando o 793 DF por mais um T220 (ficando um T220 na DVI e outro, também T220, na VGA, já que a GeForce 6500 utilizada tem uma DVI e uma VGA [diferente das mais novas, que têm 2 DVIs], além de uma S-Vídeo [TV-Out] que não estou usando atualmente e nem a incluo nos xorg.confs postados aqui).
793 DF e T220
Segue a primeira experiência, com um Samsung 793 DF, CRT, 17" na VGA e um Samsung T220, LCD, 22" na DVI:
A resolução do 793 (CRT) ficou 1280x1024, e a do T220 1680x1050, ou seja, ficou cortando 26 px da primeira tela (793) na vertical, do topo neste caso.
/etc/X11/xorg.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | # nvidia-settings: X configuration file generated by nvidia-settings # nvidia-settings: version 1.0 (buildmeister@builder3) Thu Feb 14 18:21:33 ... Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "Files" RgbPath "/usr/share/X11/rgb" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/OTF" FontPath "/usr/share/fonts/Type1" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/75dpi:unscaled" FontPath "/usr/share/fonts/100dpi" FontPath "/usr/share/fonts/Speedo" FontPath "/usr/share/fonts/cyrillic" FontPath "/usr/local/share/fonts" FontPath "/usr/share/fonts/TTF" EndSection Section "Module" Load "dbe" Load "extmod" Load "type1" Load "freetype" Load "glx" EndSection Section "ServerFlags" Option "Xinerama" "0" 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" Option "XkbModel" "abnt2" Option "XkbLayout" "br" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "Samsung SyncMaster" HorizSync 30.0 - 71.0 VertRefresh 50.0 - 160.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 6500" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "1" Option "metamodes" "1280x1024 +0+26, 1680x1050 +1280+0; 1280x1024" SubSection "Display" Depth 24 EndSubSection EndSection |
Dois T220
Segue a segunda experiência, com dois Samsung T220, LCD, 22", um na VGA e outro na DVI:
Ambos com resolução de 1680x1050, totalizando uma área de trabalho de 3360x1050. Como as alturas são iguais não ocorreu nenhum corte.
/etc/X11/xorg.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | # nvidia-settings: X configuration file generated by nvidia-settings # nvidia-settings: version 1.0 (buildmeister@builder63) Tue Nov 4 14:08:09 ... Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "Files" RgbPath "/usr/share/X11/rgb" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/OTF" FontPath "/usr/share/fonts/Type1" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/75dpi:unscaled" FontPath "/usr/share/fonts/100dpi" FontPath "/usr/share/fonts/Speedo" FontPath "/usr/share/fonts/cyrillic" FontPath "/usr/local/share/fonts" FontPath "/usr/share/fonts/TTF" EndSection Section "Module" Load "dbe" Load "extmod" Load "type1" Load "freetype" Load "glx" EndSection Section "ServerFlags" Option "Xinerama" "0" 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" Option "XkbModel" "abnt2" Option "XkbLayout" "br" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "Samsung SyncMaster" HorizSync 30.0 - 81.0 VertRefresh 56.0 - 75.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 6500" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "1" Option "metamodes" "1680x1050, 1680x1050; 1680x1050; 800x600; 640x480" SubSection "Display" Depth 24 EndSubSection EndSection |
Observações
NÃO utilize o conteúdo dos xorg.confs listados acima exatamente como estão, principalmente devido ao HorizSync e ao VertRefresh, que dificilmente serão os mesmos, exceto, claro, se seus monitores forem iguais aos mencionados aqui.
O conteúdo inicial dos xorg.confs foi gerado pelo utilitário nvidia-settings, citado na seção abaixo. Tentei mantê-los o máximo possível inalterados, normalmente altero os nomes dos dispositivos e afins, como Monitor0 para 793df (ou T220), Device0 para GeForce6500, etc.
Mas alterei a seção File, adicionando/removendo/alterando as entradas de FontPath conforme as fontes que tenho instaladas, e a Option "metamodes" da seção Screen por dois motivos:
- o valor padrão da Option gerado pelo nvidia-settings é um tanto quanto grande, e faz o bloco de code highlight aqui da página ficar com uma barra de rolagem horizontal enorme, o que considero horrível;
-
adicionei resoluções únicas, para aplicações, normalmente jogos (lbreakout2 por exemplo), que não se dão muito bem com dual monitor, assim elas podem rodar em um monitor, ficando o outro sem sinal. Isso:
1680x1050; 800x600; 640x480
é o mesmo que:
1680x1050, NULL; 800x600, NULL; 640x480, NULL
ou seja, foi especificada apenas a resolução para o primeiro monitor. Repare também que as duas últimas não são wide. Sem especificar resoluções únicas, o lbreakout2, por exemplo, ficava em 4:3 no centro da tela, ou seja, em 640x480, 320 px ficavam na direita no monitor da esquerda e os outros 320 px na esquerda do monitor da direita. Confuso? Veja a imagem:
Caso não esteja familiarizado com a String informada como valor à Option "MetaModes", observe que foi usado tanto ; (ponto-e-vírgula) quanto , (vírgula). O ; separa os MetaModes, enquanto que a , separa os modes dentro de um MetaMode:
+----------------------- primeiro MetaMode | +------ segundo MetaMode /---------+---------\ /----+---\ 1680x1050, 1680x1050; 1680x1050; 800x600; 640x480 \_______/ \_______/ | +------- segundo Mode (monitor direita) do primeiro MetaMode +------------------ primeiro Mode (monitor esquerda) do primeiro MetaMode
Só como curiosidade, o jogo Neverwinter Nights funcionou normalmente com dual, não que seja muito interessante, mas rodou normal com resolução de 3360x1050.
nvidia-settings
O nvidia-settings é um utilitário instalado durante a instalação do driver proprietário da nVidia.
Através dele podemos obter algumas informações, como a versão driver instalado, a versão do xorg, informações sobre OpenGL/GLX, temperatura e outras informações do GPU. Além de podermos realizar ajustes de cores (brilho, contraste, gamma) com resultado em tempo real, configurar sombra para o cursor do mouse, antialiasing, e, conforme podemos observar na tela abaixo, configurar o xorg:
Esse utilitário é da placa de vídeo, portanto, não espere que ele configure adequadamente seu teclado abnt2. Sua função é configurar a placa de vídeo e o(s) monitor(es).
Não entrarei em detalhes sobre o uso do mesmo, se tiver alguma dúvida é só clicar no botão Help.
Após realizar uma configuração podemos clicar em Save to X Configuration File, onde podemos escolher mesclar o que foi configurado com a configuração já existente ou não, e, antes de salvar, podemos verificar como ficará o arquivo clicando em Show preview....
Considerações finais
Como já mencionei anteriormente, isso não é um tutorial, passo-a-passo ou algo do gênero.
O propósito final é levar esses dois monitores para o trabalho. Programar numa tela com a documentação (especificações) na outra é uma mão-na-roda. Hoje trabalho com dois CRTs de 17", antigos, "piscam" muito. Mas não vou levar os novos até que troquem minha máquina, na qual utilizo duas placas de vídeo com dual via Xinerama, uma intel (i810) e uma riva TNT2 32M.
Apenas como curiosidade, paguei ~R$616,00 por cada T220 (quando o preço normal era ~R$830,00), não paguei frete e ainda ganhei 2 MP4s genéricos. Promoção da Saraiva, nem apenas o monitor (sem MP4 de brinde e frete grátis) tinha no Mercado Livre e semelhantes por esse preço. Hoje (17/01/2009) o mesmo monitor está por ~R$839,00 (com Subwoofer 2.1 Clone de brinde) na própria Saraiva.
Obs.: não tenho relação nenhuma com as marcas e lojas citadas nesse documento.
Críticas, sugestões, elogios, dúvidas, opiniões, correções - incluindo de gramática - e demais comentários são bem-vindos. Para tal favor utilizar o espaço para comentários abaixo.
Referências
Seguem as referências utilizadas:
/usr/share/doc/NVIDIA_GLX-1.0/README.txt
ou a versão em HTML:
/usr/share/doc/NVIDIA_GLX-1.0/html/index.html
http://en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors/Nvidia
Informação Legal
As três primeiras imagens (placa de vídeo e os dois monitores 793 DF e T220) foram obtidas através da busca de imagens do google, e aparentam ser imagens de divulgação dos produtos. Caso eu esteja errado e você seja o detentor dos direitos das mesmas, basta comunicar-me que retíro-as do documento imediatamente.
Comente
Tem um ambiente parecido? Configurações diferentes? Encontrou algum problema? Quer linkar um post seu sobre dual monitor? Comente! Compartilhe sua experiência.
Histórico
- - 17/01/2009: post inicial.
