Grupo de Estudos Linux E o logotipo???????
Configurando o servidor X Sumário: O que é o servidor X Um pouco de história Arquitetura Configuração: Estrutura do arquivo xorg.conf Escrevendo nosso próprio xorg.conf Auto-detecção (o comando mágico) Dicas 2
O que é o servidor X? O S.O. compreende a camada entre o hardware e o software. O servidor X é a camada entre o software e o usuário. Usuário Software (X) Kernel (S.O) Hardware 3
O que é o servidor X Fornece um ambiente para execução de aplicações gráficas (janelas, vídeo, etc.) e manipulação de teclado e mouse Arquitetura cliente-servidor Origem: MIT 1984 Protocolo X11: Setembro de 1987 Mantido pela Fundação X.org (http://www.x.org) 4
Um pouco de história... XFree86: Uma implementação do servidor X original, porém gratuita. Em fevereiro de 2004 adotou uma licença que foi considerada pela FSF, como incompatível com a licença GPL O projeto X.org inicia o desenvolvimento de um servidor X totalmente open source (livre!) Nasceu o Xorg! 5
Arquitetura Cliente-servidor Permite execução remota Protocolo X11 Suporta sistemas Unixlike (Linux, BSD), VMS, e até Windows (Cygwin) 6
Arquitetura O servidor X fornece as funções básicas para desenho na tela. Um gerenciamento adequado das janelas, botões, menus, etc, é obtido através dos window managers. Exemplo: KDE, Gnome, Xfce, WindowMaker, Blackbox, Wmi 7
Window Managers KDE Gnome WindowMaker 8
Configuração Por default, todas as configurações ficam armazenadas no arquivo xorg.conf (Geralmente localizado em /etc/x11/xorg.conf) Podemos criar/editar o arquivo de configurações na mão ou utilizarmos alguns utilitários para gerar este arquivo Utilitários: xorgcfg xorgconfig 9
Configuração xorgcfg: Utilitário gráfico xorgconfig: Em modo texto, faz perguntas ao usuário a respeito do hardware e cria a as configurações a partir das respostas. 10
Uma boa referência: man xorg.conf Arquivo baseado em sessões dispostas em qualquer ordem, declaradas da seguinte forma: Section NomeSessão Entradas... EndSection 11
A sessões são identificadas (obrigatoriamente) por um dos seguintes nomes: Files ServerFlags Module InputDevice Device VideoAdaptor Monitor 12
Modes Screen ServerLayout DRI Vendor A sessão ServerLayout é a primeira na hierarquia, associa sessões de tela (screen) e dispositivos de entrada para iniciar o X. A sessão screen associa monitores e adaptadores gráficos 13
Cuidado ao editar o arquivo de configuração, as palavras chave são Case-sensitive! A palavra-chave Option é utilizada para especificarmos opções dentro de cada sessão. Os valores para cada opção podem ser números (Real, Inteiro), Strings, Booleanos ou freqüências (Medidas em Hertz). Expressões para verdadeiro: 1, on, true, yes Expressões para falso: 0, off, false, no Freqüências: Hz, k, khz, M, Mhz 14
Assim: Option Accel Off Option Accel 0 Option Accel no 15
Assim: Option Accel Off Option Accel 0 Option Accel no São expressões equivalentes! (A opção Accel será desabilitada) 16
Sessão Files Utilizada para especificar o caminho (diretório) das fontes, arquivos de cores e módulos utilizados pelo xorg. 17
Sessão Files Utilizada para especificar o caminho (diretório) das fontes, arquivos de cores e módulos utilizados pelo Xorg. Section Files ModulePath /usr/x11r6/lib/modules RgbPath /usr/x11r6/lib/x11/rgb FontPath "/usr/x11r6/lib/x11/fonts/misc/" FontPath "/usr/x11r6/lib/x11/fonts/ttf/" FontPath "/usr/x11r6/lib/x11/fonts/type1/" FontPath "/usr/x11r6/lib/x11/fonts/cid/"... EndSection 18
Sessão ServerFlags Utilizada para setarmos opções específicas do servidor X (habilitar teclas de atalho, mudança de modos, tempo de espero, etc..) Todas as opções desta sessão podem ser consultadas no manual do xorg.conf (man xorg.conf) 19
Sessão Module Esta sessão específica os módulos que serão carregados quando o X for iniciado. 20
Sessão Module Esta sessão específica os módulos que serão carregados quando o X for iniciado. Section Module Load dbe # Double buffer extension Load glx # OpenGL Load type1 # type 1 font rasterize Load freetype Load extmod # Xserver extension... EndSection 21
Sessão InputDevice Esta sessão específica os dispositivos de entrada para o servidor X (teclado, mouse, touchpads, etc..) 22
Sessão InputDevice Esta sessão específica os dispositivos de entrada para o servidor X (teclado, mouse, touchpads, etc..) Estrutura: Section InputDevice Identifier Driver nome driver opções... EndSection 23
Sessão InputDevice Identifier: é um nome qualquer utilizado para identificar o dispositivo. Driver: é o driver que irá gerenciar o dispositivo. O padrão é kbd para teclado e mouse para mouse. NOTA: O arquivo de configuração pode conter várias sessões InputDevice. 24
Sessão InputDevice Exemplo: Section InputDevice Identifier Driver MeuTecladoPreto kbd Option "AutoRepeat" "500 30" EndSection Section InputDevice Identifier Driver MeuMouseSujo mouse Option "Protocol" "IMPS/2" Option "Device" "/dev/mouse" EndSection 25
Sessão InputDevice Option CorePointer : Seta como dispositivo apontador (mouse, touchpad) primário. Option CoreKeyboard : Seta como teclado primário. Exemplo: Section InputDevice Identifier Driver MeuTecladoPreto kbd Option "AutoRepeat" "500 30" Option CoreKeyboard EndSection 26
Sessão Device Específica os adaptadores de vídeo utilizados pelo X. O arquivo de configuração deve conter pelo menos um sessão Device. Exemplo: Section Device Identifier Driver nome driver opções... EndSection 27
Sessão Device É nesta sessão que a placa de vídeo é configurada, muitos erros acontecem aqui, quando o driver selecionado não é 100% compatível com a placa instalada. Alguns drivers suportados pelo servidor X são: trident: Para placas com chipset Trident sis: Para placas com chipset SIS nv: Para placas com chipset Nvidia r128: Para placas com chipset ATI vesa: Suporte genérico à placas VESA 28
Sessão Device Placas com chipset Nvidia podem utilizar o driver fornecido pela própria fabricante, disponível para download no site: http://www.nvidia.com/object/unix.html A configuração para placas com saída para TV também é feita nesta sessão. Para maiores informações sobre este recurso em placas Nvidia, instale o driver citado e consulte o arquivo nvidia-settings-user-guide.txt. 29
Sessão Device Exemplo de uma sessão Device para uma placa Nvidia com saída para TV: Section Device Identifier "GForce" Driver "nvidia" Option "TwinView" "false" Option "NoLogo" "false" Option "TwinViewOrientation" "Clone" Option "TVStandard" "PAL-M" Option "TVOutFormat" "COMPOSITE" Option "ConnectedMonitor" "CRT" Option "IgnoreDevice" "TV" EndSection 30
Sessão Monitor Esta sessão específica os monitores utilizados pelo servidor X. Estrutura: Section Monitor Identifier nome opções... EndSection 31
Sessão Monitor Podemos utilizar algumas opções para identificar melhor nosso hardware (totalmente opcional) Exemplo: Section Monitor Identifier VendorName ModelName Monitor1 Philips 107S opções... EndSection 32
Sessão Monitor Nesta sessão, duas opções são extremamente importantes: Freqüência de varredura Horizontal e Vertical. É indispensável que as freqüências fornecidas sejam as corretas para o monitor especificado. Exemplo: Section Monitor Identifier Monitor1 HorizSync 30-71 VertRefresh 50-160 EndSection 33
Sessão Monitor A forma mais fácil (e melhor) de se obter as freqüências corretas é consultando o manual do monitor. 34
Sessão Monitor A forma mais fácil (e melhor) de se obter as freqüências corretas é consultando o manual do monitor. Exemplo: 35
Sessão Monitor Podemos fazer ajuste da tela (posição, tamanho) através da opção ModeLine Exemplo: Section Monitor Identifier Monitor1 HorizSync 30-71 VertRefresh 50-160 Modeline "1024x768" 94.50 1024 1064 1160 1380 768 769 772 808 +hsync +vsync EndSection 36
Sessão Monitor O utilitário xvidtune pode ser utilizado para ajustar a tela e fornecer a linha ModeLine que deve ser adiciona ao arquivo de configuração 37
Sessão Modes Esta sessão permite especificarmos modos de resolução do vídeo independente do monitor. Na maioria dos casos não é utilizada pois o padrão VESA já possui um padrão de resoluções que é suficiente para a configuração. Estrutura: Section Modes Identifier nome opções... EndSection 38
Sessão Screen Esta sessão associa um dispositivo de vídeo à um monitor, ou seja, específica qual monitor está plugado na placa. Estrutura: Section Screen Identifier Device Monitor... nome deviceid monitorid SubSection Display opções... EndSubSection EndSection 39
Sessão Screen Esta sessão possui subseções denominadas Display. Esta subseções são utilizadas para descrever os modos de resolução e quantidade de cores utilizados Exemplo: SubSection Display Depth 24 Modes 1024x768 800x600 640x480 ViewPort 0 0 EndSubSection 40
Subseção Display Depth: Especifíca a quantidade de cores (8, 15, 16 ou 24 bits). Modes: Específica quais resoluções utilizar, o servidor X tentará setar a primeira resolução fornecida, se não consegue passa para a próxima e assim por diante. ViewPort: Específica a posição do canto da tela. Só é importante quando a resolução do vídeo é menor do que a da tela virtual. 41
Estrutura: Section ServerLayout Estrutura do xorg.conf Sessão ServerLayout Associa sessões de tela e dispositivos de entrada, completando a configuração. Identifier Screen InputDevice InputDevice nome screenid inputdevice1 inputdevice2 opções... EndSection 42
Sessão ServerLayout Screen: Especifíca a tela configurada InputDevice: Associa um dispositivo de entrada à tela informada 43
UFA!!!! CHEGA DE SESSÕES 44
Escrevendo nosso próprio xorg.conf Agora estamos prontos para escrevermos nosso próprio arquivo de configuração. NOTA: Comentários podem ser adicionados ao arquivo utilizando-se um sustenido (#) no início de cada comentário. 45
Escrevendo nosso próprio xorg.conf Agora estamos prontos para escrevermos nosso próprio arquivo de configuração. NOTA: Comentários podem ser adicionados ao arquivo utilizando-se um sustenido (#) no início de cada comentário. Vamos montar uma configuração básica, considerando um máquina com uma placa de vídeo VESA (compatível), um teclado e um mouse, ambos PS/2. Mão à obra! 46
Escrevendo nosso próprio xorg.conf # # Início do xorg.conf # # Autor: Fulano de Tal # Data: 12/09/2006 # # Configuração Básica para uma máquina com uma placa de vídeo # VESA (compatível), um mouse e um teclado, ambos PS/2 # Section Files RgbPath "/usr/x11r6/lib/x11/rgb" FontPath "/usr/x11r6/lib/x11/fonts/misc/" FontPath "/usr/x11r6/lib/x11/fonts/ttf/" FontPath "/usr/x11r6/lib/x11/fonts/type1/" FontPath "/usr/x11r6/lib/x11/fonts/cid/" 47
Escrevendo nosso próprio xorg.conf FontPath "/usr/x11r6/lib/x11/fonts/75dpi/" FontPath "/usr/x11r6/lib/x11/fonts/100dpi/" FontPath "/usr/x11r6/lib/x11/fonts/local/" FontPath "/usr/x11r6/lib/x11/fonts/speedo/" FontPath "/usr/x11r6/lib/x11/fonts/cyrillic/" EndSection Section Module Load dbe # Double-buffer extension Load type1 # Type 1 font rasterize Load freetype Load glx # OpenGL Load extmod # Modules extension EndSection 48
Escrevendo nosso próprio xorg.conf Section InputDevice Identifier Driver TecladoABNT2 kbd Option CoreKeyboard true Option "AutoRepeat" "500 30" Option "XkbRules" "xorg" Option "XkbModel" "abnt2" # Modelo do teclado Option "XkbLayout" "br" # Layout do teclado EndSection Section InputDevice Identifier Driver Mouse mouse Option "Protocol" "IMPS/2" 49
Escrevendo nosso próprio xorg.conf Option CorePointer true Option "Device" "/dev/mouse" Option "Buttons" "5" Option "ZAxisMapping" "4 5" Option "Resolution" "256" EndSection Section Monitor Identifier MonitorPadrao HorizSync 31.5-48.5 VertRefresh 50-90 EndSection 50
Escrevendo nosso próprio xorg.conf Section Device Identifier Driver PlacaVESA vesa EndSection Section Screen Identifier Device Monitor Tela1 PlacaVESA MonitorPadrao DefaultDepth 24 SubSection Display Depth 8 Modes 640x480 51
Escrevendo nosso próprio xorg.conf ViewPort 0 0 EndSubSection SubSection Display Depth 16 Modes 1024x768 800x600 640x480 ViewPort 0 0 EndSubSection SubSection Display Depth 24 Modes 1024x768 800x600 ViewPort 0 0 EndSubSection EndSection 52
Escrevendo nosso próprio xorg.conf Section ServerLayout Identifier Screen InputDevice InputDevice Conf1 Tela1 TecladoABNT2 Mouse EndSection # Fim do xorg.conf 53
Auto-detecção Agora que você já é um mestre em arquivos de configuração do X, vamos apresentar o comando mágico: Xorg -configure Este comando tenta detectar todos os dispositivos de vídeo, entrada e saída (teclado, mouse, etc) presentes no computador, gerando um arquivo de configuração automático. Funciona bem, mas não é perfeito =( 54
Dicas Em caso de erro: Consulte o arquivo de Log, ele é uma grande fonte de informações sobre o que aconteceu com o seu X. Tenha certeza de estar utilizando o driver certo para sua placa de vídeo, em caso de dúvidas, utilize o driver vesa para garantir que o problema não é o driver, depois selecione o correto. Tenha certeza de estar utilizando as freqüências certas para seu monitor, em caso de dúvidas, consulte o manual, site do fabricante, etc. 55
Dicas Verifique se já não há um servidor X sendo executado. Consulte fórums, wikipedia, google, etc... Se tudo der certo: Saia da frente do computador e vá tomar uma cerveja bem gelada! 56
FIM! 57