sexta-feira, 21 de outubro de 2011

Como configurar o X para desativar determinada saída de vídeo

Já tem algum tempo que arranquei a tela do meu notebook e liguei num monitor de 20" através da saída VGA. Já que a bateria morreu e a Dell cobra um rim por uma nova, transformou-se no meu desktop.

Tanto o Windows quanto o X configuram a saída VGA como clone. Isso tem dois problemas: 1 - a resolução do monitor fica diferente da resolução nativa, o que num LCD significa imagem horrível; 2 - perda de desempenho, pois a GPU tem que renderizar em dois monitores, sendo que um deles -- a saída LVDS interna do notebook -- nem conectada está.

No Windows, o driver da Intel dá uma opção para configurar as telas. Ali dá para configurar para usar apenas o monitor externo, desativando saída interna da tela do note.

Agora no Linux precisei achar um equivalente. E existe.

Crie um /etc/X11/xorg.conf com isso:

Section "Device"
Identifier      "Configured Video Device"
Driver          "intel"
Option          "Monitor-LVDS1" "LVDS"
Option          "Monitor-VGA1" "VGA"
EndSection

Section "Monitor"
Identifier      "LVDS"
Option          "Ignore" "true"
EndSection

Section "Monitor"
Identifier      "VGA"
#Option          "PreferredMode" "1600x900"
EndSection

Section "Screen"
Identifier      "Default Screen"
Monitor         "VGA"
Device          "Configured Video Device"
EndSection

As opções "Option" na seção "Device" mapeiam as saídas, cada uma com um nome. "LVDS" para a conexão interna e "VGA" para a saída externa. Depois, cada saída tem a sua respectiva seção "Monitor". Na seção "Monitor" relativa à saída interna, mandamos o X ignora-la com "Ignore" "true". Ele não a inicializará nem muito menos a listará como disponível via RandR. Na seção "Monitor" relativa à saída VGA não colocamos nada. Na verdade deixei a opção "PreferredMode" comentada, no caso de querer mudar a resolução padrão que o X escolhe -- que é a resolução nativa do monitor. Pode ser útil para quem usa monitor CRT.

Detalhe 1: a opção de mapeamento das saídas de vídeo e o ajuste de resolução via "PreferredMode" só funciona com drivers que suportem RandR. Dentre os que suportam: intel, nv, nouveau, ati, radeonhd. O sis não suporta e o openchrome não sei. Não esqueça de mudar o driver se usar outro chip gráfico.

Detalhe 2: dependendo do driver, o nome das saídas muda. No driver intel é LVDS1/VGA1 ("Monitor-LVDS1"/"Monitor-VGA1" no xorg.conf). Dê uma olhada no log do X que lá aparece o nome correto de cada saída de vídeo.

As configurações feitas nas ferramentas de configuração do Gnome/KDE são por usuário, entram em vigor apenas depois que você loga. Com o xorg.conf, a configuração é aplicada no momento que o X é iniciado, ou seja, no GDM/KDM já estará com a resolução correta e a saída interna desativada. Para quem tem o notebook 'completo', usando a ocasionalmente a saída VGA para plugar projetores, etc., a configuração por usuário é recomendada e você estará melhor servido com as ferramentas presentes no seu ambiente de gráfico.

ATUALIZAÇÃO

Desde um tempo não uso mais esta configuração e o notebook citado está montado com tela novamente.

O arquivo /etc/X11/xorg.conf está obsoleto. Hoje ele ainda é lido pelo X, mas o local correto para configuração personalizada é em /etc/X11/xorg.conf.d/. Qualquer arquivo com a extensão .conf presente nesta pasta será interpretado pelo X.

Nenhum comentário:

Postar um comentário