Capítulo 8. O XFree86

Índice
O Protocolo X
XFree86

O ambiente gráfico em um sistema Linux é implementado através de um conjunto de aplicações, que se utilizam de um protocolo especial para isso. Esse sistema gráfico, chamado X Window System, foi criado no Instituto de Tecnologia de Massachusetts (MIT) e é um padrão em sistemas UNIX e Linux.

Nesse capítulo será abordado o que é e como funciona o sistema X Window e como configurá-lo.

O Protocolo X

Ao contrário de outros sistemas que simplesmente mostram as aplicações gráficas localmente (isto é, na mesma máquina onde são executadas), o X Window permite o processamento de aplicações gráficas distribuídas pela rede, utilizando-se um relacionamento cliente/servidor; para tanto ele se utiliza do protocolo X.

Na relação cliente/servidor definida pelo protocolo X, a parte "servidor" roda na máquina local e é o responsável pela interação com o hardware e por mostrar as aplicações gráficas no display; já a parte "cliente" pode ser executada localmente ou remotamente e é encarregada de executar as aplicações gráficas e dizer ao servidor o que mostrar. Essa arquitetura permite uma grande portabilidade, uma vez que é necessário modificar apenas a parte que faz o acesso ao hardware. Além do mais, através do protocolo X é possível até mesmo executar aplicações gráficas em diferentes sistemas, sendo possível, por exemplo, rodar uma aplicação em um sistema HP-UX® e visualizá-la em um sistema Linux.

O X Window pode ser utilizado tanto distribuído em uma rede quanto apenas localmente de maneira transparente para o usuário.

XFree86

O XFree86 é um porte de livre distribuição do sistema X window e ele implementa tanto o servidor quanto o cliente X. Além disso o XFree86 provê arquivos de suporte, bibliotecas, utilitários de configuração e os "drivers" para diversas placas de vídeo. Portanto, é o XFree86, ou melhor, o modo como ele está configurado, que determina a profundidade de cores, a resolução e a taxa de atualização do vídeo. Mais adiante será mostrado como configurá-lo.

Embora o XFree86 faça o desenho do que lhe é solicitado na tela, ele não é capaz de criar um ambiente de trabalho gráfico e gerenciar as janelas contendo as aplicações, portanto, se faz necessária além do XFree86 a utilização de uma aplicação do tipo gerenciador de janelas. O Conectiva Linux utiliza como padrão o K Desktop Environment (ou simplesmente KDE). Além do gerenciador de janelas, é comum se utilizar um programa gráfico capaz de receber o login e a senha dos usuários e iniciar uma sessão gráfica para esse usuário. O Conectiva Linux utiliza como padrão o gerenciador de login que acompanha o KDE, chamado de KDM (KDE Display Manager).

Configurando o XFree86

A configuração do XFree86 é uma das tarefas do administrador, uma vez que os usuários não possuem permissão para alterar essas configurações. Existem várias maneiras de se configurar o XFree86, mas será mostrado como configurá-lo com o auxílio de um aplicativo desenvolvido especificamente para esta tarefa, chamado xf86cfg.

O xf86cfg pode ser utilizado tanto em modo texto quanto em modo gráfico, ou seja, se já existe uma configuração funcional do ambiente gráfico o xf86cfg pode ser executado a partir deste ambiente para reconfigurá-lo, ou caso o XFree86 ainda não tenha sido configurado o xf86cfg pode ser executado a partir do modo texto a fim de se criar uma nova configuração.

Para iniciar o configurador do XFree86 abra um terminal, ou a partir do console texto digite xf86cfg. Você deverá ver uma tela como esta:

Figura 8-1. Tela Principal do xf86cfg

Atenção

Ao ser executado a partir do modo texto, o xf86cfg faz uma detecção automática do hardware de vídeo para iniciar o aplicativo em modo gráfico. Caso essa detecção falhe, o administrador poderá iniciar o aplicativo com a opção -textmode para que ele não utilize a detecção automática, e apenas utilize uma interface texto.

Na parte superior da janela o primeiro botão (que inicialmente tem o valor configurar layout) permite que se alterne entre os modos de configuração de layout, configuração de tela, configuração de modeline e configuração do AccessX. O botão Modo expert exibe o arquivo de configuração do XFree em modo árvore, permitindo a alteração direta deste.

No modo Configurar Layout, mais quatro botões estão disponíveis no topo da tela, permitindo que o administrador selecione dispositivos para configuração ou adicione mais um mouse, teclado, placa de vídeo ou monitor à configuração. Embora isso não seja usualmente necessário, em configurações mais avançadas pode ser necessário adicionar manualmente esses elementos.

Clicando com o botão esquerdo do mouse sobre cada elemento (monitor, placa de vídeo, teclado e mouse), e selecionando a opção Configurar, uma nova janela se abrirá permitindo que você configure cada um deles.

Dica: Se, ao iniciar o xf86cfg, o mouse não estiver funcionando, você poderá usar o teclado numérico reduzido para mover o ponteiro do mouse. Veja na seção Configurando o AccessX as funções de cada tecla.

Configurando o Monitor

A partir da tela principal clique com o botão direito do mouse sobre o monitor, escolha a opção Configurar e uma tela como a seguinte será mostrada:

Consulte o manual que acompanha o monitor para obter com exatidão as taxas de sincronia vertical e horizontal deste. Caso o manual não esteja disponível e a detecção automática não tenha conseguido encontrar os valores corretos, utilize um dos valores sugeridos nas listas que sejam mais adequados ao seu monitor.

Figura 8-2. Configurando o Monitor

No campo Identificador você poderá aceitar o valor padrão (recomendável) ou inserir um novo valor. Esse campo não tem nenhuma relação com o modelo ou a marca do monitor e serve apenas para identificar o monitor internamente no XFree86; uma vez que o XFree86 suporta mais de um monitor e mais de uma placa de vídeo é necessário identificá-los de modo a saber que monitor está ligado a qual placa de vídeo. Nos campos Sincronização Horizontal e Sincronização Vertical digite os valores da taxa de sincronismo horizontal e vertical respectivamente do seu monitor, da seguinte forma: faixas de valores são representadas como X - Y, onde X é o menor valor e Y o maior; para se utilizar valores discretos separe-os por vírgula, como, por exemplo, "31.5, 35, 37.5". No campo Selecione a placa conectada ao monitor você poderá inserir o identificador da placa à qual este monitor está conectado, caso o seu sistema possua mais de uma placa de vídeo.

Configurando a Placa de Vídeo

Acesse a janela de configuração da placa de vídeo clicando com o botão direito do mouse no ícone da placa de vídeo e escolha a opção Configurar. Surgirá a tela mostrada na Figura 8-3:

Figura 8-3. Configurando a Placa de Vídeo

O campo Identificador funciona de maneira análoga ao campo de mesmo nome nas configurações do monitor; aceite o valor padrão ou preencha um novo. Selecione a sua placa de vídeo na lista apresentada. Para facilitar a seleção da placa você poderá preencher parte do nome ou do modelo da placa no campo Filtro de modelo da placa, a fim de mostrar apenas as placas que contenham esse valor na lista. Ao se selecionar uma placa de vídeo na lista, o xf86cfg automaticamente seleciona o melhor driver para ela no campo Driver. Existem algumas placas que funcionam melhor com um driver genérico, como por exemplo o driver "vesa"; caso seja necessário escolher um novo driver. O campo BusID é necessário apenas se o seu sistema possui mais de uma placa de vídeo, e o valor a ser inserido pode ser obtido executando-se o comando lspci. Encontre na saída do comando a linha correspondente à placa que se deseja configurar, como no exemplo abaixo:

# lspci
00:02.0 PCI bridge: Silicon Integrated Systems [SiS] 5591/5592 AGP
00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139
01:00.0 VGA compatible controller: Silicon Integrated Systems

O valor da primeira coluna precisa então ser convertido de hexadecimal para decimal, e cada valor deve ser separado por dois pontos e precedido do valor "PCI". Assim, para a placa de vídeo listada acima deveria ser usado o valor "PCI:1:0:0".

Configurando o teclado e o mouse

Os procedimentos para configurar o teclado e o mouse já foram vistos no Capítulo 7, mas você poderá utilizar o xf86cfg para configurá-los também.

Abra a janela de configuração de teclado clicando com o botão direito do mouse no ícone do teclado e escolha a opção Configurar.

Figura 8-4. Configurando o Teclado

Selecione o modelo do seu teclado no campo Modelo de teclado e a disposição das teclas em Layout de teclado. Se o seu teclado possui a tecla de cedilha escolha "Brazilian ABNT2" como o modelo de teclado e "Brazilian" como o layout. Se o teclado for do tipo padrão internacional escolha um dos modelos "Generic xxx-key (Intl)", onde o xxx é o número de teclas e "U.S. English w/ deadkeys" o layout.

Para configurar o mouse, siga o mesmo procedimento citado acima, mas clicando sobre o ícone do mouse. Uma janela como esta será mostrada:

Figura 8-5. Configurando o Mouse

Selecione a porta à qual o mouse está ligado na lista abaixo de Selecione o Mouse. Os valores /dev/ttsyS0 a /dev/ttsyS3 correspondem às portas seriais 1 a 4 respectivamente. O valor /dev/psaux corresponde à porta PS/2 e o valor /dev/mouse é um link simbólico para uma das outras portas listadas.

Escolha na lista Selecione o protocolo do mouse o protocolo correspondente ao seu mouse. Na dúvida, tente selecionar o valor "Auto".

Se o seu mouse não possui três botões selecione a opção Emular 3 botões, e a funcionalidade do botão central de um mouse de três botões será imitada ao se pressionar os dois botões simultaneamente em seu mouse de dois botões.

Configurando a Resolução da Tela

Selecione o modo Configurar Tela, clicando no botão superior esquerdo, e em seguida, clique no ícone do monitor com o botão direito do mouse e escolha configurar. Uma tela como a da Figura 8-6 aparecerá:

Figura 8-6. Configurando a Resolução da Tela

O campo Identificador recebe um valor correspondente ao conjunto de um monitor mais uma placa de vídeo. Não é necessário alterar esse valor pois o xf86cfg o configura automaticamente. Selecione a profundidade de cor padrão a partir da lista de mesmo nome. Os valores são mostrados em bits por pixel, assim o valor 8 corresponde a 8 bits por pixel ou 256 cores. O padrão é se utilizar uma profundidade de cores de 16 bits, e somente se a placa de vídeo suportar utilizar 24 bits.

Em seguida, selecione as resoluções de vídeo a serem utilizadas. As duas listas de valores abaixo de Selecione a(s) resolução(ões): contém valores de resolução de vídeo (lista da esquerda) e os valores que a sua configuração irá utilizar (lista da direita). Para adicionar uma resolução à sua configuração selecione-a na lista à esquerda e clique no botão com a setinha para a direita. Observe que o XFree86 utilizará os valores incluídos na lista da direita na ordem em que eles se encontram, logo, se você escolher mais de um valor, coloque o seu preferido no topo da lista, selecionando-o e clicando no botão com a setinha para cima.

Dica: Ao se selecionar mais de uma resolução de vídeo, você poderá alternar entre elas, pressionando Ctrl-Alt-+ após ter iniciado o ambiente gráfico.

Configurando o AccessX

O XFree86 possui algumas funções especiais voltadas para usuários com deficiências motoras, como por exemplo teclas "aderentes". Essas funções podem ser encontradas iniciando-se o modo Configurar AccessX.

Figura 8-7. Configurando o AccessX

As opções de configuração são:

Habilitar StickyKeys

Essa função faz com que as teclas Ctrl, Alt e Shift, ao serem pressionadas, permaneçam "pressionadas"; assim, para digitar um caractere maiúsculo, o usuário pressionará o Shift, irá soltá-lo, e então pressionará a tecla com a letra. A opção Desligamento automático, se habilitada, faz com que a aderência seja cancelada ao se pressionar a tecla novamente e a opção Modificadores de Bip, quando acionada faz com o que o computador emita um sinal sonoro ao se pressionar uma das teclas de aderência.

Habilitar botões do mouse

Essa função quando habilitada permite que o usuário utilize as teclas do teclado numérico reduzido para movimentar o ponteiro do mouse na tela. A opção Velocidade de Pico ajusta a velocidade máxima em que o ponteiro pode se movimentar; a opção Atraso para pico ajusta o tempo que o ponteiro demora para alcançar a velocidade de pico e, por fim, a opção Atraso do Movimento ajusta o tempo entre a ação de se pressionar uma das teclas e o ponteiro começar a se mover. As teclas 1 a 4 e 6 a 9 funcionam como teclas direcionais, a tecla 5 funciona como o botão do mouse e sua função é definida pelas teclas /, * e -, que habilitam as funções de botão esquerdo, do meio e da direita, respectivamente. As teclas 0 e Del simulam o clicar, mantendo o botão pressionado e soltar o botão, respectivamente.

Habilitar teclas de repetição

Esta função habilita a repetição automática de uma tecla pressionada. A opção Taxa de repetição define a velocidade com que ela será "repetida" ao se pressionar uma tecla, e a opção Atraso de repetição ajusta o tempo até que uma tecla pressionada comece a se repetir.

Habilitar teclas lentas

Quando habilitada, as teclas devem ser pressionadas por um determinado período de tempo para que sejam aceitas pelo XFree86. Este tempo de acionamento é definido pela opção Atraso de tecla. Os dois botões, após Bip quando a tecla for, fazem com que um bip seja emitido quando a tecla for pressionada e quando ela for aceita.

Habilitar BounceKeys

Esta função, quando habilitada, define um tempo de espera até que o sistema aceite um segundo toque na mesma tecla; esse tempo é definido pela opção Tempo de espera.

Dicas de Configuração

Embora a configuração do XFree86 esteja se tornando cada vez mais fácil, alguns problemas ainda podem ocorrer. Veremos a seguir como resolver alguns dos problemas mais freqüentes.

Um problema comum está relacionado aos drivers das placas de vídeo. Se ao utilizar o drive recomendado para determinada placa e este não funcionar adequadamente experimente utilizar o driver genérico VESA. Se ao iniciar o sistema, o XFree86 não consegue ser inicializado e a tela do monitor ficar piscando, reinicie o sistema no nível de execução como valor 3 ou single (veja como fazer isso no Capítulo 10) e execute o configurador xf86cfg em modo texto para efetuar a modificação. Certifique-se de que o pacote XFree86-vesa está instalado para poder usar o driver VESA.

Faixas de freqüências de sincronismo vertical e horizontal incorretas também podem levar a problemas na visualização do ambiente gráfico. Se ao iniciar o XFree86 a tela ficar "rodando", alterne para um console texto pressionando Ctrl - Alt - F2, execute o xf86cfg e nas configurações de sincronismo vertical e horizontal do monitor, insira faixas de valores mais estreitas, caso o manual do monitor não esteja disponível e não seja possível saber com certeza os valores exatos.