Menos um BUG fantasma…

Estive apanhando (quase literalmente) de algumas instalações de Kubuntu que fiz durante os últimos 6 meses. Instalei o SO em computadores Dell Optiplex… Máquinas ótimas, mas um problema me perseguiu durante esse tempo. A resolução máxima das máquinas era 800×600. Após muita pesquisa e quase desistindo de encontrar a solução, resolvi olhar o log do Xorg de uma máquina. Com isso, descobri que a placa de vídeo perguntava ao monitor (através de um treco chamado DDC) quais eram as frequencias que ele suportava e, o monitor, respondia que a maior era 800×600. Bom, como já tinha observado que aquele monitor fazia 1024×768 no Windows, no Slackware e no Ubuntu com driver Vesa, resolvi correr atras de mais informações, e achei a solução (finalemente!):

Solução

Existem dois problemas:

[editar]

Tamanho do Framebuffer

  • Por padrão, os computadores da Dell vêm com apenas 1 MB de memória compartilhada para o vídeo onboard, o que é insuficiente para se exibir um vídeo de 1024×768. (Ver a tabela de modos de vídeos e memória necessária disponível na web).
  • Sendo assim, é necessário entrar no Setup da máquina e compartilhar 8 MB

[editar]

DDC incorreto obtido pelo X

  • Existe um padrão de comunicação chamado DDC (Display Data Channel). Através deste padrão, a placa de vídeo pode requisitar algumas informações para o monitor. Entre essas informações estão o modelo do monitor, a marca e as resoluções suportadas.
  • Atualmente, as distribuições Linux utilizam este recurso para configurar o ambiente gráfico antes de ser utlizado pela primeira vez. Também é possível reconfigurar o ambiente gráfico após a instalação do sistema. No Slackware, o comando (reportado por nosso amigo Lourenzo) é o seguinte:

xorgcfg -textmode

  • No Ubuntu, Kubuntu, Xubuntu e outrosbuntu, o comando é o seguinte:

sudo dpkg-reconfigure -phigh xserver-xorg

  • No Slackware, todas as configurações são salvas, e respeitadas pelo Xorg!
  • Nos Diversusbuntus, este procedimento faz com que o xorg.conf seja gerado de maneira à evitar que muitas perguntas apareçam para o usuário e, por padrão, os dados de frequencia do monitor não são salvos e são perguntados ao monitor a cada vez que o sistema X é inicializado. Mesmo sendo colocados no arquivo de configuração, as frequencias captadas pelo DDC na inicialização do X são as que valem.
  • O problema, é que nesses monitores antigos, como o HP D8895, essas configurações são passadas de forma incorreta. Para corrigir o problema, é necessário adicionar a frequencia do monitor no /etc/X11/xorg.conf e adicionar uma linha na seção Device deste arquivo para que o DDC não seja utilizado:
* Abra um terminal;
* Reconfigure o xorg.conf, adicionando as frequencias do monitor no arquivo:
  $ sudo dpkg-reconfigure xserver-xorg
* Responda as perguntas de forma correta e, quando solicitado, diga que deseja armazenar as configurações do monitor no arquivo de configurações;
* Após o terminar o comando dpkg-reconfigure, edite o arquivo /etc/X11/xorg.conf:
  $ sudo pico /etc/X11/xorg.conf
 * adicione a seguinte linha na seção "Device":
   Option  "NoDDC"
 * De modo que a seção fique da seguinte forma:
   Section "Device"
       Identifier  "Intel ....XXX"
       Driver      "i810"
       BusID       "PCI:0:2:0"
       Option      "NoDDC"          # <-Linha adicionada
   EndSection
 * Salve o arquivo de configuração pressionando F2 (será necessário confirmar com Y ou S dependendo do idioma do seu sistema)
* Se você estiver utlizando o Ubuntu, Xubuntu ou Edubuntu, reinicie o GDM:
  $ sudo /etc/init.d/gdm restart
* Caso esteja utilizando o Kubuntu, reinicie o KDM:
  $ sudo /etc/init.d/kdm restart