Xorg
De Wiki do Arch Linux Brasil
Introdução
Xorg é público, implementação open-source do Sistemas de Janelas X, X11. (Veja o artigo do Xorg no WikiPedia ou Xorg para mais detalhes). Basicamente, se você quer uma GUI no Arch, você vai querer usar o xorg.
Instalando o Xorg
Antes de iniciar, certifique-se de fazer os passos a seguir:
- Tenha o pacman configurado e atualizado;
- Se tiver outro servidor X sendo executado, você pode fechá-lo com ctrl+alt+backspace;
- Anotade sobre as configurações dos drivers de vídeo (exemplo, drivers nVidia ou ATI).
Primeiro vamos instalar todo o grupo do meta pacote xorg:
# pacman -S xorg
O driver padrão 'vesa' é apenas um último recurso (não tem suporte a aceleração e nem a muitas resoluções), então, futuramente você precisará de um driver adequado. Você pode digitar esse comando para listar todos os drivers de vídeos disponíveis
# pacman -Ss xf86-video
Procure pelo driver apropriado para sua placa de vídeo e instale com 'pacman -S'. Para verificar qual sua placa de vídeo, se tiver o hwd instalado, execute 'hwd -s', ou execute 'lspci' (e procure por 'VGA compatible controller').
Se o Xorg estiver instalado corretamente, é hora de criar o xorg.conf.
Configurando o Xorg
Antes de executar o xorg, você precisa configurá-lo, então você precisa conhecer sobre sua placa de vídeo, monitor, mouse e teclado. Existem diversos métodos para automatizar esse processo:
hwd
A forma mais rápida de ter o xorg instalado e configurado é usando o hwd, uma ferramenta criada pelos usuários da comunidade do Arch Linux. Ele é basicamente uma ferramenta para detectar hardware, com vários usos, um dos quais é criar a configuração do servidor X. Felizmente hwd é muito mais racional do que xorgconf e não requer muitas opções.
Primeiro, instale o pacote hwd.
# pacman -S hwd
Agora simplesmente execute o comando a seguir, como root para gerar um arquivo xorg.conf padrão.
# hwd -xa
Isso irá sobreescrever qualquer arquivo /etc/X11/xorg.conf com as configurações padrão, com base no hardware que o hwd detectou.
Alternativamente você pode gerar um exemplo da configuração do Xorg (/etc/X11/xorg.conf.hwd) sem sobreescrever sua configuração existente. Então para fazê-lo, execute hwd com a opção -x:
# hwd -x
Exemplo:
/etc/X11/xorg.conf.ati /etc/X11/xorg.conf.vesa
Your sample file(s) ready, rename 'xorg.conf'. If unsure first try 'vesa' (default).
Para usar as configurações de exemplo, você deve renomear manualmente. Exemplo:
# mv /etc/X11/xorg.conf.vesa /etc/X11/xorg.conf
AD: Na minha experiência de uso, hwd cria o arquivo XF86Config-4 e se não existir xorg.conf ele será usado automaticamente.
xorgconfig
Para iniciar o xorgconfig:
# xorgconfig
ou
# xorgcfg -textmode
Isso irá gerar um novo xorg.conf.
Responda as perguntas, e o programa criará um arquivo pra você. Este programa não é muito bom mas é um começo, e você pode encontrar outras opções editando manualmente.
Xorg -configure
Você também pode usar
- Xorg -configure
ou
- X -configure
nvidia-xconfig
Usuários nVidia também podem usar:
# nvidia-xconfig
quando tiver o driver oficial da nVidia instalado.
Comente a linha:
Load "type1"
na seção Module nas atuais versões do xorg-server, não é incluindo o módulo da fonte type1 (foi completamente substituido pelo freetype).
Editando xorg.conf
Você pode querer editar as configurações depois de té-las gerado. Abra com seu editor de texto favorito, tal como Vim (você precisa de privilégios de root):
# vim /etc/X11/xorg.conf
Se você quer suporte a scroll do mouse, veja.
Configurações do Monitor
Dependendo do seu hardware, o Xorg pode falhar ao detectar a capacidade correta do seu monitor, ou você pode simplesmente usar uma resolução abaixo do que seu monitor é capaz. Você pode procurar os seguintes valores no manual do seu monitor, antes de configurá-lo. As configurações a seguir são especificadas na seção Monitor:
Horizontal Sync
HorizSync 28-64
Refresh Rate
VertRefresh 60
As configurações a seguir, são especificadas na seção Screen:
Colour Depth
Depth 24
Resolution
Modes "1280x1024" "1024x768" "800x600"
Configurações do teclado
Xorg pode falhar ao detectar seu teclado corretamente. Isso pode dar problemas com a configuração do layout e modelo do seu teclado, por não estar corretamente configurado.
Para ver a lista completa de layout, modelos, variantes e opções de teclado, veja:
/usr/share/X11/xkb/rules/xorg.lst
Layout do Teclado
Para mudar o layout do teclado, use a opção XkbLayout na seção InputDevice do teclado. Por exemplo, se você tem um teclado com layout Brasileiro:
Option "XkbLayout" "br"
Para habilitar facilmente a troca dos layouts do teclado, por exemplo entre um layout Norte Americano e um Sueco use as opções:
Option "XkbLayout" "us, se" Option "XkbOptions" "grp:caps_toggle"
Isso faz com que sua tecla Caps Lock alterne entre os diferentes layouts. É extremamente útil se você não executa um Ambiente Desktop o qual troca o layout do teclado para você.
Modelo do Teclado
Para mudar o modelo do teclado, use a opção XkbModel na seção InputDevice do teclado. Por exemplo se você tem um teclado Microsoft Wireless Multimedia:
Option "XkbModel" "microsoftmult"
Display Size/DPI
A fim de obter as dimensões corretas para as fontes e o tamanho do display devem ser definidos para o seu DPI pretendido. Na seção "Monitor" coloque o tamanho do seu display em mm (milímetros):
Section "Monitor" ... DisplaySize 336 252 # 96 DPI @ 1280x960 ... EndSection
A fórmula para calcular os valores do DisplaySize é, Width x 25.4 / DPI e Height x 25.4 / DPI. Se você está executando o Xorg com a resolução de 1024x768 e quer o DPI de 96, use: 1024 x 25.4 / 96 e 768 x 25.4 / 96. Veja os números a baixo:
# calc: (x|y)pixels * 25.4 / dpi # DisplaySize 168 126 # 96 DPI @ 640x480 # DisplaySize 210 157 # 96 DPI @ 800x600 # DisplaySize 269 201 # 96 DPI @ 1024x768 # DisplaySize 302 227 # 96 DPI @ 1152x864 # DisplaySize 336 252 # 96 DPI @ 1280x960 # DisplaySize 336 269 # 96 DPI @ 1280x1024 (non 4:3 aspect) # DisplaySize 370 277 # 96 DPI @ 1400x1050 # DisplaySize 420 315 # 96 DPI @ 1600x1200 # DisplaySize 506 315 # 96 DPI @ 1920x1200
Para drivers da nVidia você será necessário desabilitar a detecção automática do DPI, para configurar manualmente. Existe também um jeito fácil para configurar DPI nessas placas de vídeo. Uma ou todas as linhas a seguir, podem ser adicionadas seção Device da sua placa de vídeo nVidia.
Option "UseEdidDpi" "false" Option "DPI" "96 x 96"
O resultado pode ser analisado pelo uso do comando a seguir, deve retornar 96x96 pontos por polegadas se você configurou DPI @ 96.
$ xdpyinfo | grep -B1 dot
Drivers Proprietários
Se você quiser usar drivers gráficos de terceiros, primeiro verifique se o servidor X está correto. Xorg funcionará bem sem drivers oficiais, que normalmente são necessários apenas para os recursos mais avançados, como aceleração 3D de renderização de jogos, configurações dual-screen, e TV-out. Procure o wiki da NVIDIA e ATI para obter ajudar com a instalação.
Fontes
Existem algumas dicas para a Configuração de fontes no Xorg.
Exemplos de Xorg.conf
Qualquer um que tenha um arquivo Xorg.conf configurado e que funcione, vá em frente e coloque um link aqui para que outras pessoas possam olhar! Por favor, não adicione todo o arquivo de configuração; faz o upload em algum outro lugar e adicione o link aqui. Obrigado!
- Shadowhand (drives nv e nvidia): http://people.os-zen.net/shadowhand/configs/xorg.conf
- Cerebral (drivers fglrx e radeon): http://www.student.cs.uwaterloo.ca/~tjwillar/configs/xorg.conf
- raskolnikov (drivers via unichrome e synaptics): http://athanatos.free.fr/Arch/xorg.conf
- Leigh (Três screens independentes - Três placas nvidia): http://files.myopera.com/allisonleigh/linuxbackup/xorg.conf
Executando o Xorg
Isso é feito simplesmente digitando:
$ startx
O ambiente X padrão é bastante simples, e você normalmente pretendem instalar um gerenciador de janelas ou ambientes desktop para completar o X.
Para testar o arquivo de configuração que você criou:
$ X -config <seu arquivo de configuração>
Se algum problema ocorrer, então veja o log em /var/log/Xorg.0.log. Procure por qualquer linha que comece com (EE) o qual representa os erros, e também (WW) que são avisos que podem indicar outros erros.
* Observe quê * Usando startx exige um arquivo ~/.xinitrc, de modo que X saiba o que fazer quando ele iniciar. A melhor opção é copiar /etc/skel/.xinitrc para seu diretório home e editá-lo. Comente as linhas 'exec' que você não irá usar, e adicione ou descomente a linha adequada para o WM (Gerenciador de Janerlas) que pretende utilizar. Se você estiver usando o GNOME é melhor iniciar o GNOME através gdm para evitar problemas de permissão do HAL.
Além disso, você pode també instalar o twm e o xterm (via pacman), qual será usado como auxílio se ~/.xinitrc não existir (como declarado em /etc/X11/xinit/xinitrc).
Configurando a inicialização do X (/usr/bin/startx)
Para referência as opções do X, seja:
$ man Xserver
As seguintes opções devem ser adicionadas à variável "defaultserverargs" no arquivo /usr/bin/startx.
evita que o X receba mensagens por tcp:
-nolisten tcp
se livrando da tela feia cinza e deixando o X setar uma janela raiz:
-br
permitir carregamento de símbolos deferidos para fontes de 16 bits:
-deferglyphs 16
Nota: Se você iniciar X com kdm, o script startx não parece ser executado. As opções do X devem ser adiconadas à variável "ServerCmd" no arquivo /opt/kde/share/config/kdm/kdmrc. Por padrão as opções do kdm são:
ServerCmd=/usr/bin/X -br -nolisten tcp
Mudanças no Xorg modular
Os pacotes mais comuns
Certifique-se de instalar os drivers para o mouse, teclado e placa de vídeo. Para mouse e teclado funcionar precisará dos pacotes xf86-input-mouse e xf86-input-keyboard instalados. Outros pacotes xf86-input-* estão disponíveis para os diferentes dispositivos de entrada.
Para a placa de vídeo, é preciso saber qual driver é necessário para instalar o pacote xf86-video-* correto. Usuários ATI e Nvidia podem querer instalar o driver non-freepara suas placas de vídeo (NVIDIA [ http://wiki.archlinux.org/index.php/NVIDIA ], ATI [ http://wiki.archlinux.org/index.php/ATI ]).
Para instalar todos os drivers em uma única vez, os pacotes xorg-input-drivers e xorg-video-drivers estão disponíveis.
Aceleração 3D OpenGL
X.Org 7.0 no Arch Linux usa um design modular para mesa, o sistema de renderização do OpenGL. Muitas implementações estão disponíveis:
- libgl-dri: implementação Open-source DRI OpenGL. Suporte para softwares de renderização quando o driver DRI está instalado;
- algum outro drivers fornecendo libGL (ati, nvidia).
Quando o pacman instala uma aplicação que precisa do mesa, ele instalará um desses pacotes. Para ter certeza que suas bibliotecas foram instaladas para sua configuração, instale primeiro a biblioteca que você quer antes de instalar o Xorg. Depois de instalar o pacote certo também é possível, encontrar algumas vezes erros de dependência, embora pode ser ignorado usando a opção -d.
Glxgears e Glxinfo
Estas aplicações são incluidas no pacote mesa.
Mudando os caminhos (e as configurações)
Veja essa entrada adicional para atualizar as informações: http://www.archlinux.org/blog/2006/01/02/how-to-upgrade-xorg/
X.Org 7 Modular instala tudo no /usr, onde as versões antigas eram instaladas em /usr/X11R6. Alguns arquivos precisam de atualização:
- /etc/X11/xorg.conf
- Fontpaths agora se encontra em /usr/share/fonts
- base de dados RGB está em /usr/share/X11/rgb
- caminho dos módulos é /usr/lib/xorg/modules
Observe também que algumas ferramentas de configuração do X podem deixar de funcionar. A maneira mais fácil de configurar X.org é instalando o pacote correto do driver e executar Xorg -configure, o que resulta num /root/xorg.conf.new que precisa apenas de algumas alterações nas configurações da resolução, mouse e layout do teclado.
Alguns pacotes tem forte referência ao /usr/X11R6. Estes pacotes precisam de correções. Enquanto isso, veja quais pacotes instala arquivos em /usr/X11R6, desinstale esses pacotes, crie um link simbólico de /usr para /usr/X11R6 e reinstalar os pacotes afetados. Outra opção é mudar o conteúdo do /usr/X11R6 para /usr e criar um link simbólico.
Ou você pode apenas adicionar um segundo caminho para os módulos via ModulePath "/usr/X11R6/lib/modules" Isto funciona por exemplo, para nVidia 76.76
Solucionando problemas
Xorg "não consegue ver" as resoluções que seu monitor suporta
Eu me encontro numa situação em que se eu usar um dos meus monitores (um gnr ts902), xorg apenas apresenta-se a mim com as opções 640x480 e 320x480, as quais é claro são menos do que eu desejava. depois de um monte de pesquisas eu encontrei através do read-edid (no aur) que part do meu EDID estava corrompido e então eu poderia apenas ler minha HorizSync com read-edid. Isto graças a Deus foi suficiente, após adicionar a linha correta do HoriSync na seção Monitor (não tinha adicionado VertRefresh...) do xorg.conf. Reiniciei o X e vi a resolução correta :)
nota: Não tenho certeza:
Option "ModeValidation" "NoEdidModes" Option "UseEdid" "false"
na seção Device no xorg essas configurações também são necessárias, embora esteja com preguiça para testar sem elas :)
Problemas com o teclado
O arquivos xorg.conf auto-gerado pode lhe causar problemas. Se você não pode ter acesso ao tty1 combinando as teclas CTRL-ATL e pressionando F1 ou não consegue receber o sinal £ para pessoas da gb (Grã-Bretanha), verifique se as entradas a seguir estão no seu /etc/X11/xorg.conf:
Option "XkbLayout" "uk" #"uk" não é um layout válido, para ter uma lista válida procure no /usr/share/X11/xkb/ Option "XkbRules" "xfree86" #isto deve ser "xorg" Option "XkbVariant" "nodeadkeys" #Esta linha também é conhecida por causar os problemas descritos, tente comenta-la.
Para mudar entre os layouts use Alt+Shift:
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
Uma rápida correção para conflitos com a fonte Bitstream-Vera
Se você receber uma mensagem que ttf-bitstream-vera conflitou com xorg:
- Saida da seção do pacman, respondendo "NO" (Não).
- Execute pacman -Rd xorg
- Execute pacman -Syu
- Execute pacman -S xorg
- Atualize seus paths no /etc/X11/xorg.conf
Uma rápida correção para conflitos no /usr/include
Se você receber uma mensagem sobre conflitos nos arquivos /usr/include/X11 e /usr/include/GL:
- Execute rm /usr/include/{GL,X11}
- Execute pacman -Su
Os diretórios com links simbólicos removidos por esta operação são substituidos pelos diretórios reais no novo pacote do xorg, causando a aparição desse conflito entre os arquivos.
Conflitos com libgl-dri
Se você receber uma mensagem similar a:
:: libgl-dri conflita com nvidia-legacy. Remover nvidia-legacy? [S/n]
Isso acontece porque existe multiplas implementações do OpenGL veja isto na seção acima sobre OpenGL - pacman tenta instalar libgl-dri para satisfazer esssa dependência, mas também tenta atualizar o driver de vídeo existente, então eles conflitão. Para resolver isso, tente:
- Atualize o driver da sua placa de vídeo antes de atualizar todo o sistema:
# pacman -S nvidia-legacy # pacman -Syu
Ou, se isso não funcionar,
- Remova o driver existente da sua placa de vídeo, atualize o sistema, depois reinstale o driver:
# pacman -Rd nvidia-legacy # pacman -Syu # pacman -S nvidia-legacy :: nvidia-legacy conflita com libgl-dri. Remover libgl-dri? [S/n] S
Rodinha do Mouse não funciona
O protocola "Auto" parace não funcionar adequadamente no Xorg 7. Na seção InputDevice do seu mouse, mude:
Option "Protocol" "auto"
para
Option "Protocol" "IMPS/2"
ou
Option "Protocol" "ExplorerPS/2"
Botões extras do mouse não funcionam
Usuário de mouse USB devem ler fazer todos os botões do mouse fucionarem.
Usuários do mouse Intellimouse (ExplorerPS/2) podem perceber que os botões de rolagem e lateral não funcionam como eles costumavam funcionar. O xorg.conf anterior eh necessário:
Option "Buttons" "7" Option "ZAxisMapping" "6 7"
e usuário que também tenham que executar xmodmap para ter os botões funcionando com a linha de comando como:
xmodmap -e "pointer = 1 2 3 6 7 4 5"
Agora xmodmap não é mais necessário. Ao ínves disso, adicione no xorg.conf algo como isso:
Option "Buttons" "5" Option "ZAxisMapping" "4 5" Option "ButtonMapping" "1 2 3 6 7"
e os botoes laterais em um Intellimouse de 7 botoes irão funcionar como funcionavam antes, sem precisar executar o xmodmap.
Problemas com o Teclado
Alguns teclados tem que modificar o layout. Vou explicar o porque:
- Não estava habilitado para trocar de console Ctrl+Alt+Fx;
- Não estava habilitado para usar layouts
O problema era que o layout sk_qwerty não existia mais. Tive que substituir
Option "XkbLayout" "us,sk_qwerty"
para
Option "XkbLayout" "us,sk" Option "XkbVariant" ",qwerty"
Outra coisa que se observar seu teclado não está funcionado corretamente é a opção XkbRules. Você precisa mudar:
Option "XkbRules" "xfree86"
para
Option "XkbRules" "xorg"
AltGR (Tecla de Composição) não funciona corretamente
Se, depois de uma atualização, você não pode mais usar a tecla AltGr como o esperado, tente adicionar isto na seção do seu teclado:
Option "XkbOptions" "compose:ralt"
Esse não é o jeito correto de ativar a tecla AltGr em um teclado Alemão (por exemplo, para usar as teclas '|' e '@' no teclado Alemão). Então escolha uma variante válida para o teclado para ele funcionar novamente, por exemplo (o exemplo é para teclado Alemão):
Option "XkbLayout" "de" Option "XkbVariant" "nodeadkeys"
A solução acima não funciona no teclado Italiano. Para ativar a tecla AltGr no teclado Italiano certifique-se que você tem as seguintes linhas configuradas corretamente:
Driver "kbd" Option "XkbRules" "xorg" Option "XkbVariant" ""
Essa situação pode ainda não ser suficiente para um teclado Sueco. Tente as opções acima, mas com ao ínves de composição use lv3 (Obrigado wyvern!). Isto é:
Option "XkbLayout" "se" Option "XkbVariant" "nodeadkeys" Option "XkbOptions" "lv3:ralt_switch"
Não consigo configurar layout qwerty usando o comando setxkbmap
Após a atualização, não existem layouts qwerty como por exemplo sk_qwerty. Se você quer trocar o layout do seu teclado para qualquer teclado com layout qwerty use este comando:
$ setxkbmap NOME_DO_LAYOUT qwerty
ex.: para sk_qwerty use:
$ setxkbmap sk qwerty
Após a atualização, tentando o comando acima recebi esta mensagem "Error loading new keyboard description". Descobri que o xserver não tem permissão para escrever, executar no diretório /var/tmp, então dê as permissões para esse diretório. Reinicie o xserver e você terá suas deadkeys de volta! Não acredita? Tente o comando, ex.: layout it
$ setxkbmap -layout it
Configurando layouts Francês e Canadense (antigo ca_enhanced)
Com Xorg7 não é mais "ca_enhanced", Você tem que fazer um pequeno truque para ter o mesmo layout você está acostumado. Mude o velho:
Option "XkbLayout" "ca_enhanced"
Para:
Option "XkbLayout" "ca" Option "XkbVariant" "fr"
Suponho que isso será similiar com outro layout. Você pode procurar no HowTo do Gentoo: http://www.gentoo.org/proj/en/desktop/x/x11/modular-x-howto.xml
Bibliotecas Perdidas
- Ajuda! Recebi uma mensagem de erro executando minha app favorita, dizendo: "libXsomething" não existe!
Na maioria dos casos, tudo que você precisa fazer é colocar o nome da biblioteca (ex. libXau.so.1) converter para letras minúsculas, retire a extensão e use o pacman:
# pacman -S libxau
Isso irá instalar a biblioteca que você "perdeu", e tudo ficará bem novamente!
Alguns pacotes não conseguem compilar e reclamam de não ter X11
Apenas reinstale os pacotes xproto e libx11, mesmo que eles já estejam instalados.
Incapaz de carregar fonte '(null)'
- Alguns programas não funcionam e dizem que são incapaz de carregar font `(null)'.
Estes pacotes gostariam de algumas fontes extras. Alguns pacotes funcionam apenas com fontes bitmap. Dois pacotes major com fontes bitmap estão disponíveis, xorg-fonts-75dpi e xorg-fonts-100dpi. Você não precisa dos 2; um deve ser o bastante. Para descobrir qual a melhor, no seu caso, tente isto:
$ xdpyinfo | grep resolution
e pegue o que estiver mais próximo do que você precisa (75 ou 100 ao ínves de XX)
# pacman -S xorg-fonts-XXdpi
KDE Taskbar/Ícones da Área de trabalho quebram
- taskbar do KDE não funciona e os ícones da área de trabalho desaparecem.
Instale os pacotes libxcomposite e libxss. E tudo ficará bem.
# pacman -S libxcomposite libxss
Atualizando a versão do testing para o extra (faltando arquivos)
Se estiver atualizando do Xorg 7 em testing para Xorg 7 no extra e perceber que estão faltando muitos arquivos (incluindo start, /usr/share/X11/rgb.txt e outros), você pode ter perdido muitos arquivos devido a divisão de um único pacote xorg-clients em pequenos sub-pacotes.
Você precisa reinstalar todos os pacotes que são dependências do xorg-clients:
# pacman -S xorg-apps xorg-font-utils xorg-res-utils xorg-server-utils \
xorg-twm xorg-utils xorg-xauth xorg-xdm xorg-xfs xorg-xfwp \
xorg-xinit xorg-xkb-utils xorg-xsm
Isso deve solucionar o problema.
Problemas com tipos MIME em vários ambientes desktop
Se você percebeu que os ícones sumiram e não pode clicar para abrir arquivos na área de trabalho, adicione as seguintes linhas ao /etc/profile ou se preferir no init script e reinicie.
XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share export XDG_DATA_DIRS
DRI parou de funcionar com placas Matrox
Se você usa placa Matrox e o DRI parou de funcionar depois da atualização para o Xorg7, tente adicionar a seguinte linha:
Option "OldDmaInit" "On"
na seção Device que referência a placa de vídeo no xorg.conf.
Não pode iniciar qualquer cliente sob Xephyr
As conexões do cliente são rejeitas pelo mecanismo de segurança do servidor X, você pode encontrar uma explicação e uma solução aqui.
Não consegue iniciar clientes X como root usando "su"
Se você está recebendo "Client is not authorized to connect to server", tente adiconar a linha:
session optional pam_xauth.so
no arquivo /etc/pam.d/su. pam_xauth irá configurar corretamente as variaveis de ambiente e manipulando as chaves xauth.
Links
Veja também:
- Habilitando um DM
- Iniciando o X no boot
- Configuração de fontes no Xorg
- Drivers Proprietários
- Ambiente Desktop
Links Externos: