|
|
Guia: Vídeo no Linux: nVidia, ATI e placas de TVCarlos E. Morimoto 07/02/2006 Configurando o vídeo: /etc/X11/xorg.conf
Existem duas versões do X em uso: o Xfree, o mais antigo e tradicional e o X.org, a versão mais usada atualmente. Antigamente, até a versão 3.x, o Xfree possuía várias versões separadas, com drivers para diferentes chipsets de vídeo. Isso complicava a configuração e obrigava as distribuições a manterem instaladas todas as diferentes versões simultaneamente, o que também desperdiçava muito espaço em disco. A partir do Xfree 4.0 e em todas as versões do X.org existe apenas uma única versão unificada, com drivers para todas as placas e recursos suportados. Melhor ainda, cada driver dá suporte à todas as placas de um determinado fabricante, o "sis" dá suporte a todas as placas da SiS, o "trident" dá suporte a todas as placas da Trident e assim por diante. Temos ainda dois drivers genéricos, o "vesa" e o "fbdev", que servem como um mínimo múltiplo comum, uma opção para fazer funcionar placas novas (ou muito antigas), que não sejam suportadas pelos drivers titulares. Outro detalhe interessante é que toda a configuração do vídeo, incluindo o mouse e o suporte a 3D é feita através de um único arquivo de configuração, o "/etc/X11/XF86Config-4" (nas distribuições que usam o Xfree) ou "/etc/X11/xorg.conf" (nas que usam o X.org), que é relativamente simples de editar e funciona em todas as distribuições que utilizam o Xfree 4.0 em diante ou X.org (ou seja, praticamente todas as usadas atualmente). Isto significa que você pode pegar o arquivo de configuração gerado pelo Kurumin e usar no Slackware, por exemplo. Existe várias ferramentas de configuração que perguntam ou autodetectam a configuração e geram o arquivo, como o "mkxf86config" (do Knoppix) "kxconfig", "xf86cfg" entre outros. Mas, neste tópico vamos ver como configurar manualmente o arquivo, adaptando ou corrigindo as configurações geradas pelos configuradores. O arquivo é dividido em seções. Basicamente, temos (não necessariamente nesta ordem) uma seção "Server", com parâmetros gerais, a seção "Files" com a localização das fontes de tela e bibliotecas, duas seções "InputDevice", uma com a configuração do teclado e outra com a do mouse, uma seção "Monitor" e outra "Device", com a configuração do monitor e placa de vídeo e por último a seção "Screen" onde é dito qual resolução e profundidade de cor usar. A ordem com que estas configurações aparecem no arquivo pode mudar de distribuição para distribuição, mas a ordem não importa muito, desde que estejam todas lá. Como em outros arquivos de configuração, você pode incluir comentários, usando um "#" no início das linhas. Linhas em branco, espaços e tabs também são ignorados e podem ser usadas para melhorar a formatação do arquivos e melhorar a organização das informações. Vamos a uma descrição geral das opções disponíveis, usando como exemplo o modelo de configuração que uso no Kurumin. Abra o arquivo /etc/X11/xorg.conf ou /etc/X11/XF86config-4 da sua máquina e acompanhe o exemplo; prestando atenção nas diferenças entre o exemplo e o arquivo da sua máquina e tentando entender a função de cada seção:
Section
"ServerLayout" Nesta seção vai a configuração geral. Ela é uma espécie de "índice" das seções abaixo. O campo "Identifier" pode conter qualquer texto, é apenas uma descrição. O "USB Mouse" indica o nome da seção que será usada. Abaixo deve existir uma seção com este mesmo nome, contendo a configuração do mouse propriamente dita. Esta organização permite que você (ou o utilitário de configuração usado) adicione várias configuração diferentes, onde você pode trocar rapidamente entre elas modificando esta linha. Nas distribuições que usam o Kernel 2.6, é possível usar a mesma configuração para mouses PS/2, mouses USB e também mouses touchpad (notebooks), pois todos utilizam um driver comum. É possível até mesmo usar dois mouses simultaneamente (o touchpad do notebook e um mouse USB externo, por exemplo), sem precisar alterar a configuração. Apenas os antigos mouses seriais ainda precisam de uma configuração própria. O Kurumin usa um arquivo de configuração que vem com várias configurações de mouse prontas (as opções disponíveis são: "USB Mouse", "PS/2 Mouse" e "Serial Mouse"), mas apenas a informada nesta primeira seção é usada. Como disse, ao usar um mouse PS/2 ou USB, qualquer uma das duas entradas funcionará, mas caso você tenha ou pretenda usar um mouse serial, altere a configuração se necessário para: InputDevice "Serial Mouse" "CorePointer" Caso você tenha simultaneamente mais de um mouse conectado, você pode duplicar a configuração do mouse, como abaixo. Isso faz com que o X tente ativar ambos os mouses na inicialização, ativando apenas os que estiverem realmente presentes:
Section
"ServerLayout" Na seção "ServerFlags" vão opções gerais. É aqui que colocamos, por exemplo, a opção que inicializa o Xinerama, que dá suporte a uma segunda placa de vídeo e monitor. Neste exemplo, está sendo usada apenas a opção "AllowMouseOpenFail" "true" que permite que o modo gráfico abra mesmo que o mouse esteja desconectado.
Section
"ServerFlags" Seria estúpido parar toda a abertura do modo gráfico e voltar para o modo texto por que o mouse não foi detectado, pois você ainda pode usar o mouse virtual do KDE como uma solução temporária até que consiga solucionar o problema. Para ativar o mouse virtual, pressione a tecla Shift junto com a tecla NumLock do teclado numérico. A partir daí as teclas 1, 2, 3, 4, 6, 7, 8 e 9 ficam responsáveis pela movimentação do mouse, enquanto a tecla 5 simula o clique do botão esquerdo (pressionando 5 duas vezes você simula um duplo clique). Para arrastar arrastar e soltar pressione a tecla 0 para prender e depois a tecla 5 para soltar. Para simular os outros botões você usa as teclas / (botão direito), * (botão central) e - (para voltar ao botão esquerdo), que funcionam como teclas modificadoras. Para desativar o mouse virtual basta pressionar Shift + NumLock novamente. Voltando ao arquivo de configuração, temos a seguir as seções "Files" e "Modules", que indicam respectivamente as pastas com as fontes TrueType, Type 1 e outras que serão usadas pelo sistema e os módulos de extensões do Xfree que serão usados.
Section
"Files"
Section
"Module" Estas duas seções geralmente não precisam ser alteradas, a menos que você instale algum novo conjunto de fontes TrueType e queira habilitá-lo manualmente ou caso instale um novo driver de vídeo (como o driver da nVidia) e o read-me diga para desativar algum dos módulos. Você poderia mexer aqui caso quisesse intencionalmente desativar algum recurso, ou para tentar solucionar problemas. O módulo "dri", por exemplo, habilita o suporte a 3D para a placa de vídeo. As placas onboard com chipset Intel (i810, MGA 900, etc.), placas ATI Rage e ATI Radeon e as antigas Voodoo 2 e Voodoo 3 possuem suporte 3D nativo no X.org. Mas, ao instalar o driver 3D da nVidia você precisa remover esta opção pois o driver do Xfree conflita com o que é instalado junto com o driver. Pode ser também que por algum motivo você quiser desabilitar o 3D da sua i810 onboard (para evitar que fiquem jogando TuxRacer durante o expediente, por exemplo ;). Em qualquer um dos casos, você poderia comentar a linha "Load "dri". Em seguida vem a configuração do teclado. O "abnt2" indica o layout de teclado que será usado por padrão. No KDE e Gnome o layout indicado aqui perde o efeito, pois eles possuem ferramentas próprias para configurar o teclado. No caso do KDE é usado o kxkb, que você configura na seção Regional & Acessibilidade do Kcontrol. Mas, esta configuração de teclado do X é útil para quem usa outras interfaces. Estes são dois exemplos de configuração para (respectivamente) um teclado ABNT2 e um teclado US Internacional. Você só pode incluir uma das duas no arquivo:
#
Teclado ABNT2
#
Teclado US Internacional Você deve lembrar que acima, na seção "ServerLayout" informamos que o X iria usar o "USB Mouse". Este é apenas um nome que indica a seção (com a configuração do mouse propriamente dita) que será usada. Isso permite que você tenha várias seções com configurações de mouses diferentes. Basta indicar a correta na seção de cima e as demais serão ignoradas. Estas são as seções com as configurações usadas no Kurumin. Dentro de cada seção vai a porta e driver usados pelo mouse e outras opções necessárias em cada caso. Você pode usá-las como modelos para configurar o mouse em outras distribuições:
Section
"InputDevice"
Section
"InputDevice" A linha "Option "ZAxisMapping" "4 5" ativa a rodinha do mouse, quando disponível. Do ponto de vista do sistema operacional, a rodinha é um conjunto de dois botões extras (botões 4 e 5) e os giros da roda correspondem a cliques nos botões extra. É seguro usar esta linha sempre, pois ela é ignorada ao usar um mouse sem a rodinha. O mais importante no caso é o protocolo usado. Com relação a mouses PS/2 e USB no Kernel 2.6, recomendo que use sempre a opção "Option "Protocol" "auto", que detecta corretamente o protocolo do mouse na grande maioria dos casos. Em casos específicos, onde o mouse não funcione corretamente, você pode substituir o "Option "Protocol" "auto" por "Option "Protocol" "IMPS/2", que é o protocolo padrão para mouses de três botões, com roda, ou "Option "Protocol" "PS/2", que é o protocolo para mouses PS/2 antigos, sem roda. No caso de mouses com 5 botões, com uma ou duas rodas, o protocolo usado muda para "ExplorerPS/2 e você precisa especificar a configuração dos botões extras. Para um mouse com 5 botões e uma roda, a seção fica:
Section
"InputDevice" Se a função dos dois botões extra e da roda ficarem trocadas, substitua a linha "Option "ZAxisMapping" "4 5" por "Option "ZAxisMapping" "6 7". No caso dos mouses com duas rodas, a configuração fica:
Section
"InputDevice" Note que, ao usar o Kernel 2.6, não existe necessidade de especificar se o mouse é PS/2 ou USB, pois a porta "/dev/input/mice" é compartilhada por ambos. As versões atuais do Firefox e outros aplicativos atribuem funções para os botões extras automaticamente. Os dois botões laterais assumem as funções dos botões para avançar e voltar no Firefox, por exemplo.
A configuração do monitor precisa incluir apenas as taxas de varredura horizontal e vertical usadas por ele. Você pode encontrar estes dados no manual do monitor ou no site do fabricante. As opções Identifier, VendorName e ModelName são apenas descritivas, podem conter qualquer texto:
Section
"Monitor" Se você não souber as taxas de varredura usadas pelo seu monitor e quiser alguma configuração genérica que funcione em qualquer monitor contemporâneo, experimente usar esta, que permite trabalhar a até 1024x768 com 60 Hz de atualização:
Section
"Monitor" Em geral os configuradores incluem várias seção "Modeline" dentro da seção Monitor, com as resoluções e taxas de atualização suportadas pelo monitor. Estes dados são fornecidos pelo próprio monitor, via DDC (uma espécie de plug-and-play para monitores) e não é necessário alterá-los a menos que você esteja escrevendo o arquivo manualmente do zero, o que não é muito aconselhável já que é sempre muito mais fácil usar um arquivo copiado de outro micro como base. Esta configuração dos modelines não é obrigatória no XFree 4.x ou X.org, pois o X é capaz de deduzir a configuração a partir das taxas de varredura do monitor, informadas dentro da seção. Este é um exemplo de configuração para um monitor de 17", incluindo modelines para usar 1280x1024, 1024x768 e 800x600. Note que cada seção "Modeline" ocupa uma única linha:
Section
"Monitor" Em seguida vem a seção "Device" que indica a configuração da placa de vídeo. As opções Identifier, VendorName e BoardName são apenas descrições, o que interessa mesmo é o Driver usado:
Section
"Device" Os drivers disponíveis são: - cirrus: A Cirrus Logic fabricou alguns modelos de placas de vídeo PCI. Elas são encontradas geralmente apenas em micros antigos. - cyrix: Placas com o chipset Cyrix MediaGX, também raros atualmente. - fbdev: Este driver usa o recurso de framebuffer suportado pelo Kernel como driver de vídeo. Neste modo o Kernel manipula diretamente a memória da placa de vídeo, gravando as imagens que serão mostradas no monitor. O desempenho não é dos melhores e a utilização do processador é maior que nos outros drivers pois não existe aceleração de vídeo Mas, por outro lado, este é um driver que funciona com a maioria das placas de vídeo e é o único onde você não precisa se preocupar com a configuração das taxas de atualização do monitor. As placas usam sempre uma taxa de atualização baixa, de 56 ou 60 Hz, que é fixa. Ao usar o fbdev como driver de vídeo a configuração da resolução não é feita no arquivo xorg.conf, mas no "/etc/lilo.conf" (pois o parâmetro é passado diretamente ao Kernel durante o boot), como vimos anteriormente. - i740: Usado pelas placas de vídeo (offboard) com chipset Intel i740. Estas placas foram uma tentativa frustrada da Intel entrar no ramo de placas 3D. O desempenho era fraco comparado com as placas da nVidia e ATI, mas o projeto acabou sendo usado como base para os chipsets de vídeo onboard que passariam a ser usados nos chipsets Intel. - i810: Este é o driver usado por todas as placas de vídeo onboard com chipset Intel suportadas. A lista de compatibilidade inclui quase todos os chipsets para Pentium III, Pentium 4 e Pentium M, incluindo as placas com o chipset Intel 900. - neomagic: Placas com chipset Neomagic, usadas em alguns notebooks antigos. - nv: É o driver genérico para placas nVidia, que oferece apenas suporte 2D. Para ativar os recursos 3D você precisa instalar os drivers da nVidia (veja mais detalhes a seguir). - r128: Driver para as placas ATI Rage (a família anterior às ATI Radeon). Este driver oferece um bom suporte 3D, permitindo que estas placas funcionem usando quase todo seu potencial 3D (que não é grande coisa hoje em dia, mas ainda permite rodar vários jogos). - radeon / ati: Este é o driver open-source para as placas ATI Radeon. Nas versões antigas do Xfree e do X.org, o driver se chamava "radeon", mas ele passou a se chamar "ati" nas versões recentes do X.org, a partir do 6.8.2. Você pode verificar qual é a versão do X instalada, usando o comando "X -version". Para que a aceleração 3D funcione, é necessário que os módulos do Kernel que cuidam da comunicação de baixo nível com a placa de vídeo estejam carregados. Nem todas as distribuições carregam estes módulos automaticamente, mesmo ao detectar a placa corretamente. Se a aceleração 3D não estiver funcionando, apesar da configuração do X estar correta, adicione as linhas abaixo num dos arquivos de inicialização do sistema:
modprobe
agpgart Existe uma certa polêmica sobre utilizar o driver do X, ou utilizar o driver proprietário fornecido pela ATI que, embora não funcione em conjunto com algumas placas, oferece um desempenho 3D superior quando funciona. - s3virge: Placas com chipset S3 Virge. Estas placas foram muito usadas por volta da época do lançamento do Pentium MMX. - sis: Este é o driver que funciona em todas as placas da SiS suportadas. Caso você encontre algum chipset novo, que não funcione com ele, experimente usar o driver vesa ou fbdev. Uma observação importante é que a SiS não desenvolve drivers 3D para o Linux e não divulga as especificações técnicas que permitiriam o desenvolvimento de drivers 3D por parte da comunidade. Atualmente as placas de vídeo e chipsets da SiS são os com pior suporte no Linux por causa da falta de cooperação do fabricante e devem ser evitadas na hora da compra.
O driver oferece apenas suporte 2D,
as placas funcionam mas não servem para rodar jogos 3D ou
trabalhar com aplicativos 3D profissionais por exemplo. Até o
Xfree 4.0 existia um esforço para desenvolver suporte 3D, mas
o fabricante divulgava tão pouca informação e os
chipsets possuíam tantos problemas (o que pode ser percebido
pela relativa instabilidade dos próprios drivers for Windows)
que o projeto acabou sendo levado adiante por um único
desenvolvedor. Você pode obter mais informações
sobre o status do driver (2D)
no: O X.org inclui um driver 3D precário, que oferece suporte limitado às placas com chipset SiS 300, 305, 630 e 730, porém não inclui suporte aos demais modelos. Entre as placas onboard, as com melhor suporte no Linux são as placas Intel, suportadas pelo driver i810. - tdfx: Driver para as placas da 3Dfx, as famosas Voodoo, que fizeram muito sucesso a até meia década atrás. Este driver oferece suporte 3D para as placas Voodoo 2 e Voodoo 3. - trident: Placas de vídeo da Trident. Ele funciona bem com placas Trident Blade e os novos chipsets usados em notebooks, mas o suporte às antigas 9680 é ruim, em muitos casos elas funcionam a apenas 640x480. Pensando nestas placas, algumas distribuições, como o Mandriva oferecem a opção de usar o driver do antigo Xfree 3.3, que oferecia um suporte mais completo a elas. - vesa: Este é o "curinga", um driver genérico que utiliza apenas as extensões do padrão vesa que em teoria é suportado por todas as placas de vídeo PCI e também pelas antigas placas VLB. Algumas placas antigas, como as Trident 9680 não funcionam com ele, mas são excessões. Como este driver não suporta aceleração, você notará que o desempenho em algumas tarefas ficará abaixo do normal. É normal também que os vídeos assistidos no Kaffeine ou Xine fiquem granulados, ao serem exibidos em tela cheia. Outra limitação é que a resolução, na maioria das placas, fica limitada a 1024x768. - via: Este é o driver que dá suporte ao chipset Via Unicrome, usado como vídeo onboard na maior parte das placas-mãe atuais com chipset Via. Originalmente, este driver era apenas 2D, como o nv e o sis, mas a partir de abril de 2005 a Via passou a publicar um driver 3D open-source, que pode ser encontrado nas versões recentes do X.org. Para que a aceleração 3D oferecida por ele funcione, é necessário que os módulos "via-agp" e "via" estejam carregados. Adicione as linhas abaixo num dos arquivos de inicialização do sistema:
modprobe via-agp - savage: Este driver dá suporte às placas S3 Savage e Pro Savage, relativamente populares a alguns anos atrás. Ele inclui aceleração 3D caso você esteja utilizando uma versão recente do X.org (a partir do 6.8.2), em conjunto com o pacote "libgl1-mesa-dri" (que inclui os drivers 3D desenvolvidos pelo projeto Mesa GL). Outros drivers, pouco usados são: - chips: Placas da "Chips and Technologies", um fabricante relativamente desconhecido. - glint: Esta é uma família de placas antigas lançada pela 3D Labs. - rendition: Placas Rendition Verite, da Micron. - tseng: Placas da Tseng Labs, outro fabricante pouco conhecido. - vga: Este é um driver VGA genérico que trabalha 640x480 com 16 cores. Serve como um "fail safe" que funciona em todas as placas. Cada um destes drivers oferece algumas opções de configuração que podem ser usadas em casos de problemas ou por quem quiser fuçar na configuração. Você pode encontrar mais informações sobre cada um no: http://www.xfree86.org/4.4.0/. Finalmente, vai a configuração da seção "Screen", que indica a resolução que será usada. As várias seções determinam as resoluções disponíveis para cada configuração de profundidade de cor, enquanto a opção "DefaultColorDepth" determina qual será usada:
Section
"Screen" Neste exemplo o vídeo está configurado para usar 16 bits de cor mas, se você quisesse usar 24 bits, bastaria mudar o número na opção "DefaultColorDepth". Dentro de cada uma das três seções (Depth 8, Depth 16 e Depth 24), vai a resolução que será usada para cada uma. Na linha que começa com "Modes" vão as resoluções de tela. A primeira da lista (1024x768 no exemplo) é a default. As outras duas, 800x600 e 640x480 são usadas apenas caso a primeira falhe (se a placa de vídeo ou monitor não a suportarem) ou caso você alterne manualmente, pressionando "Ctrl Alt +" ou "Ctrl Alt -" . Sempre que você fizer alterações no arquivo e quiser testar a configuração, reinicie o X pressionando "Ctrl+Alt+Backspace". Não é preciso reiniciar o micro.
|