Xorg (Português)
Artigos relacionados
- Inicialização automática
- Gerenciador de exibição
- Gerenciador de janela
- Configuração de fontes
- Temas de cursor
- Ambiente de desktop
- Wayland
- xinit
- xrandr Da https://www.x.org/wiki/:
- O projeto X.Org oferece uma implementação de código aberto do Sistema de janelas X. O desenvolvimento é realizado em conjunto com a comunidade freedesktop.org. X.org é uma corporação educacional sem fins lucrativos, liderada pelo conselho e membros do projeto.
- Se ele não achar o driver específico instalado (listados abaixo), ele primeiro procura por fbdev (xf86-video-fbdev).
- Se não for achado, ele procura por vesa (), o driver genérico, que manuseia um grande número de chipsets mas não inclui nenhuma aceleração 2D e 3D.
- Se vesa não é encontrado, Xorg irá fazer uso do kernel mode setting, que inclui aceleração GLAMOR (veja ).
- *: Experimental
- Novas versões do Xorg são automaticamente configuráveis, então configurações manuais não devem ser necessárias.
- Se Xorg não é capaz de detectar qualquer monitor ou para evitar automaticamente configuração, um arquivo de configuração pode ser usado. Um exemplo de uso, é em um servidor, que liga sem um monitor e inicia o Xorg automaticamente, com console virtual no login, ou por um gerenciador de exibição
- A opção da linha de comando tem a maior prioridade.
- Se ela não é usada, a configuração no arquivo de configuração do X é usada para entregar o DPI, dado o tamanho de resolução da tela.
- Se nenhum é dado, os valores de tamanho do monitor da DDC são usados para definir o DPI, dado a resolução de tela.
- Se DDC não especifica um tamanho, é usado por padrão 75 DPI.
- Executar startx como um subpprocesso do shell de login; executar diretamente e não usar.
- Se usa certos drivers de vídeo proprietários, a detecção automática do kernel mode setting vai falhar. Em tais casos, você deve definir
needs_root_rights = no
em . - No arquivo de log você pode procurar por qualquer linhas começando com , que representam erros, e também , que são avisos que podem indicar outros problemas.
- Se o arquivo
xinitrc
estiver vazio em seu , exclua ou edite ele para o X iniciar apropriadamente. Se você não fizer isto X irá mostrar uma tela vazio sem erros aparentes no seu . Ao exclui-lo a próxima vez que for iniciado o X será executado com o ambiente X padrão. - Se a tela ficar preta, você pode ainda tentar trocar para um diferente console virtual (por exemplo, ), e entrar como root. Você pode fazer isto ao digitar
root
(pressionando depois) e entrar com a senha do usuário root (denovo, pressione depois). - Você pode querer matar o servidor X com:
- Se isto não funcionar, pode reiniciar cegamente com:
- Mude o alvo padrão para rescue.target. Veja Systemd#Alterar target padrão para inicializar.
- Se você além de ter um sistema com falhas que fazem o Xorg não usável, tem o menu do GRUB sem tempo de espera, e não pode usar o GRUB para prevenir o Xorg de iniciar. Você pode usar um live CD do Arch Linux. Veja no guia de instalação sobre como montar e chroot o sistema Arch Linux instalado.Você também pode tentar trocar para outro tty com
Ctrl+Alt
+ a tecla de função (normalmente do para , use um que não está sendo usado pelo X), logue como root e siga os passos abaixo. - Desabilite o gerenciador de exibição.
- Desabilite o Inicio automático do X no login.
- Renomeie o ou comente a linha que contém dentro dele.
- Xplain - Explicação detalhada do sistema de janelas X.
- - Página manual do Xorg.
- Gentoo/Xorg#Configuration - Página de configuração do Xorg da Wiki do Gentoo.
Xorg (normalmente chamado de X) é o servidor de exibição mais popular entre os usuários do Linux. Sua onipresença lhe fez um pré-requisito para programas GUI, Isto resultou em uma massiva adoção na maioria das distribuições Linux. Veja a página do Wikipédia Xorg ou visite o site do Xorg para mais informações.
Instalação
Xorg pode ser instalado com o pacote .
Alguns pacotes do grupo são necessários para certas tarefas de configuração, eles serão destacados nas seções relevantes.
O grupo também é uma opção, ele oferece pacotes do servidor Xorg, pacotes do grupo e fontes.
Instalação de driver
O kernel Linux inclui drivers de vídeo de código aberto e suporta aceleração de hardware para framebuffers. No entanto, é necessário suporte para OpenGL e aceleração 2D no X11.
Primeiro, identifique sua placa:
$ lspci | grep -e VGA -e 3DEntão, instale o driver apropriado. Você pode procurar por uma lista completa de drivers de vídeo com:
$ pacman -Ss xf86-videoXorg procura por drivers de vídeo instalados automaticamente:
Para aceleração de vídeo funcionar, e geralmente para usar todos os modos configuráveis da GPU, é necessário o driver apropriado:
Marca | Tipo | Driver | OpenGL | OpenGL (multilib) | Documentação |
---|---|---|---|---|---|
AMD / ATI | Código aberto | AMDGPU | |||
ATI | |||||
Intel | Código aberto | Gráficos Intel | |||
NVIDIA | Código aberto | Nouveau | |||
Proprietário | nvidia | nvidia-utils | NVIDIA | ||
Outros drivers de vídeo podem ser encontrados no grupo .
Xorg deve rodar suavemente sem drivers de código fechado, que são tipicamente necessários somente para características avançadas como rápida renderização 3D para jogos. As exceções para esta regra são GPUs recentes (especialmente GPUs da NVIDIA), que não são suportadas por drivers de código aberto.
AMD
Arquitetura da GPU | Placas Radeon | Driver de código aberto | Driver proprietário |
---|---|---|---|
GCN 4 e recentes | vários | AMDGPU | AMDGPU PRO |
GCN 3 | AMDGPU | AMDGPU PRO | |
GCN 2 | AMDGPU* / ATI | não disponível | |
GCN 1 | AMDGPU* / ATI | não disponível | |
TeraScale 2&3 | HD 5000 - HD 6000 | ATI | não disponível |
TeraScale 1 | HD 2000 - HD 4000 | não disponível | |
Mais antigo | X1000 e antigo | não disponível |
Iniciando
O comando não é normalmente iniciado diretamente, ao invés disso o servidor X é iniciado por um gerenciador de exibição ou xinit.
Configuração
Xorg usa o arquivo de configuração xorg.conf
e arquivos terminando com o sufixo para sua inicialização: a lista completa das pastas onde estes arquivos são procurados podem ser encontrados em , juntamente com explicações detalhadas de todas as opções disponíveis.
Usando arquivos .conf
O diretório guarda configurações específicas do usuário. Você é livre para adicionar arquivos de configuração, mas eles deve ter o sufixo : os arquivos são lidos na ordem ASCII, e por convenção seus nomes começam com XX-
(dois dígitos e um hífen, e por exemplo, 10 é lido antes de 20). Estes arquivos são analisados pelo servidor X e são tratados como parte do arquivo de configuração tradicional xorg.conf
. Note que em caso de configuração conflitante, o arquivo lido por último será processado. Por esta razão os arquivos de configuração genéricos devem ser ordenados primeiro por nome. As configurações no arquivo xorg.conf
são processadas no final.
Para opções de configuração, veja também a página da wiki do Fedora.
Usando xorg.conf
Xorg pode ser configurado modificando ou . Você também pode gerar um esqueleto do para xorg.conf
com:
Isto deve criar um arquivo em que você pode copiar para .
Alternativamente, seu driver proprietário pode vir com uma ferramenta para automaticamente configurar o Xorg: veja o artigo do seu driver de vídeo, NVIDIA ou AMDGPU PRO, para mais detalhes.
Dispositivos de entrada
Para dispositivos de entrada o servidor X usa o driver libinput (xf86-input-libinput), mas e drivers relacionados estão disponíveis como alternativa.
Udev, oferecido como dependência do systemd, irá detectar o hardware e ambos os drivers irão agir dinamicamente como driver de entrada para quase todos dispositivos, como definido nos arquivos de configuração padrão e no diretório .
Depois de iniciar o servidor X, o arquivo de log irá mostrar que driver foi selecionado para dado dispositivo (note que o nome do arquivo de log mais recente pode variar):
$ grep -e "Using input driver " Xorg.0.logSe ambos não suportam um dispositivo particular, instale o driver necessário do grupo . O mesmo se aplica, se você quiser usar outro driver.
Para influenciar a troca dinâmica entre os drivers, Veja #Configuração.
Para instruções específicas, veja também o artigo libinput, as seguintes páginas abaixo, ou a wiki do Fedora para mais exemplos.
Identificação de entrada
Aceleração do mouse
Veja Mouse acceleration.
Botões adicionais do mouse
Veja Mouse buttons.
Touchpad
Toque de tela
Veja Touchscreen.
Configurações do teclado
Configurações do monitor
Configuração manual
Para configuração headless o driver é necessário; instale e crie um arquivo de configuração, como o seguinte:
Múltiplos monitores
Veja o artigo Múltiplos monitores para informações gerais.
Veja também as instruções específicas da GPU:
Mais de uma placa de vídeo
Você deve definir o driver correto a ser usado e botar o bus ID de sua placa de vídeo (em notação decimal).
Para descobrir os bus IDs (em hexadecimal):
Os bus IDs desse exemplo são 0:2:0 e 1:0:0.
Tamanho da tela e DPI
O DPI do servidor X é determinado da seguinte maneira:
Para conseguir pontos por polegada (DPI) correto, o tamanho da tela deve ser reconhecido ou configurado. Ter o DPI correto é um requisito quando detalhes finos são necessários (como renderização de fontes). Antigamente, fabricantes tentaram criar um padrão para 96 DPI (um monitor de 10.3" deveria ser 800X600, um monitor de 13.2" deveria ser 1024X768). Atualmente, DPIs variam e podem não ser iguais horizontalmente e verticalmente. Por exemplo, uma tela panorâmica LCD de 19" 1440X900 poderia ter um DPI de 89X87. Para configurar o DPI, o servidor Xorg tenta a auto detecção do tamanho de tela físico através da placa gráfica com DDC. Quando o servidor Xorg sabe o tamanho físico da tela, ele será capaz de configurar o DPI corretamente baseado no tamanho da resolução.
Para ver se o tamanho da sua tela e DPI são detectados/calculados corretamente:
$ xdpyinfo | grep -B2 resolutionVerifique se as dimensões correspondem ao tamanho da sua tela. Se o servidor Xorg não é capaz de corretamente calcular o tamanho de tela, o DPI será definido como 75X75 e você terá que calcular isto você mesmo.
Se você tem especificações do tamanho físico da tela, pode colocá-los no arquivo de configuração do Xorg para então o DPI apropriado ser calculado (ajuste o Identifier de acordo com a saída do ):
Se você somente quer colocar sua especificação de monitor sem criar um novo arquivo xorg.conf. Por exemplo (/etc/X11/xorg.conf.d/90-monitor.conf
):
Se você não tem as especificações físicas de altura e largura da tela, (a maioria das especificações atualmente somente listam o tamanho diagonal) você pode usar a nativa resolução do monitor (ou aspecto de proporção) e comprimento diagonal para calcular a dimensão horizontal e vertical física. Usando o Teorema de Pitágoras em uma tela diagonal de 13.3" com uma resolução nativa de 1280X800 (ou aspecto de proporção 16:10):
$ echo 'scale=5;sqrt(1280^2+800^2)' | bc # 1509.43698Isto dará o comprimento do pixel diagonal e com este valor você pode descobrir o comprimento horizontal e vertical físico (e converter eles para milímetros):
$ echo 'scale=5;(13.3/1509)*1280*25.4' | bc # 286.43072 $ echo 'scale=5;(13.3/1509)*800*25.4' | bc # 179.01920Definindo o DPI manualmente
Para drivers compatíveis com RandR (por exemplo, o driver ATI de código aberto), você pode configurá-lo da seguinte maneira:
$ xrandr --dpi 144Para torná-lo permanente, consulte Inicialização automática#Na inicialização de Xorg.
Driver proprietário NVIDIA
O DPI pode ser configurado manualmente se você deseja usar somente uma resolução (calculadora de DPI):
Section "Monitor" Identifier "Monitor0" Option "DPI" "96 x 96" EndSection
Você pode configurar manualmente o DPI adicionando as opções abaixo no arquivo (dentro da seção Device):
Option "UseEdidDpi" "False" Option "DPI" "96 x 96"Correção manual do DPI
GTK frequentemente sobrescreve o DPI do servidor com o Xresource opcional . Para descobrir se isto está acontecendo com você, verifique:
$ xrdb -query | grep dpiA partir da versão 3.16 do GTK quando esta variável não é explicitamente definida, GTK define como 96. Para os programas GTK obedecerem o DPI do servidor você deve explicitamente definir Xft.dpi. O recurso Xft.dpi é o metodo pelo qual alguns ambientes desktop opcionalmente forçam o DPI para um valor específico. Dentre estes KDE e TDE.
Gerenciamento de energia do monitor
DPMS (Gerenciamento de energia do monitor baseado em sinalização) é uma tecnologia que habilita o modo de economia de energia para monitores quando o computador não está em uso. Isto permite que os monitores vão para o modo standby automaticamente depois de determinado período de tempo.
Composição
A extensão de Composição para X gera uma completa subárvore hierárquica de janelas a serem renderizadas para um buffer off-screen (renderização fora da tela). Programas então pegam o conteúdo desse buffer e fazem o que quiser com ele. O buffer off-screen pode ser automaticamente fundido com a janela pai ou com programas externos, chamados gerenciadores de composição. Veja o seguinte artigo para mais informações: gerenciador de janelas compositor
Alguns gerenciadores de janela (por exemplo: compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm) fazem composição. Para outros gerenciadores de janela, um gerenciador de composição pode ser usado.
Lista de gerenciadores de composição
Dicas e truques
Automação
Esta seção lista utilitários para automatizar a entrada do teclado ou mouse e operações de janela (como mover, redimensionar e iniciar).
Ferramenta | Pacote | Manual | Entrada Keysym | Operações de janela | Nota |
---|---|---|---|---|---|
xautomation | Sim | Não | Também contém ferramentas de screen scraping. Não pode simular F13+. | ||
xdo | Não | Sim | Pequena ferramenta do X para ações elementárias em janelas. | ||
xdotool | Muitos bugs e não está em desenvolvimento ativo, exemplo: tem parseamento da linha de comando quebrado. | ||||
xvkbd | Não | Teclado virtual para Xorg, também tem a opção para envio de caracteres. |
Veja também Clipboard#Tools e uma visão geral de ferramentas de automação do X (em inglês).
Sessão X aninhada
Para executar uma sessão aninhada de outro ambiente de desktop:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1Isso vai iniciar uma sessão de Window Maker em uma janela 1024 por 768 dentro de sua sessão X atual.
Isso precisa do pacote xorg-server-xnest para ser instalado.
Iniciando programas GUI remotamente
Veja o artigo principal: OpenSSH#X11 forwarding.
Habilitando e desabilitando em demanda dispositivos de entrada
Com a ajuda de xinput você pode temporariamente desabilitar ou habilitar dispositivos de entrada. Isto pode ser útil, por exemplo, em sistemas que tem mais de um mouse, como os ThinkPads, e você prefere usar somente um para evitar clicks indesejados.
Instale o pacote .
Encontre o nome ou ID do dispositivo que você quer desabilitar:
$ xinputPor exemplo, em um Lenovo ThinkPad T500, a saída parece com isto:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]
Desabilite o dispositivo com , onde o dispositivo é o ID ou nome do dispositivo que você quer desabilitar. Neste exemplo nós iremos desabilitar o Synaptics Touchpad, com o ID 10:
$ xinput --disable 10Para habilitar novamente o dispositivo, execute o comando:
$ xinput --enable 10Alternatively using the device name, the command to disable the touchpad would be:
Alternativamente, usando o nome do dispositivo, o comando para desabilitar o touchpad seria:
$ xinput --disable "SynPS/2 Synaptics TouchPad"Atalho para matar um programa
Faça um atalho com o seguinte script:
#!/bin/sh windowFocus=$(xdotool getwindowfocus); pid=$(xprop -id "$windowFocus" | grep PID); kill -9 "$pid"Dependências: , .
Impeça acesso ao TTY
Para impedir o acesso ao TTY no X, adicione no xorg.conf:
Impeça um usuário de matar o X
Para prevenir um usuário de matar uma sessão X quando ela está rodando, adicione o seguinte no xorg.conf:
Xorg sem root
Xorg pode ser executado com privilégios de usuário comum ao invês do root (conhecido em inglês como "rootless" Xorg). É uma melhora significativa na segurança quando comparado com executar como root. Note que a maioria dos gerenciadores de login não suportam Xorg sem root.
Você pode verificar que usuário está executando o Xorg com .
Veja também , , Systemd/User#Xorg as a systemd user service, e FS#41257.
Usando xinitrc
Para configurar Xorg sem root usando xinitrc:
Usando GDM
GDM vai executar o Xorg sem privilégios root por padrão quando o kernel mode setting é usado.
Redirecionamento do log da sessão
Quando Xorg é executado sem privilégios root, os logs do xorg são armazenados em . No entanto, as saídas stdout e stderr da sessão Xorg não são redirecionadas para este arquivo. Para habilitar o redirecionamento, inicie o Xorg com a opção e redirecione a saída stdout e stderr para um arquivo:
startx -- -keeptty &> ~/.xorg.logSolução de problemas
Geral
Se um problema acontecer, veja o log armazenado em ou, se executa o servidor X como usuário comum (possível desde v1.16), em ~/.local/share/xorg/
. Usuários do GDM devem verificar os registros do systemd.
Os arquivos de log estão na forma de com sendo o número de exibição(). Para uma maquina de único usuário com configuração padrão, o arquivo de log é frequentemente , mas isto pode variar. Para ter certeza de qual é o arquivo certo você pode olhar o log da inicialização da sessão X e de qual console ele foi iniciado. Por exemplo:
Tela preta, nenhum protocolo especificado.., recurso temporariamente não disponível para todos ou alguns usuários
X cria configuração e arquivos temporários no diretório do usuário ($HOME). Tenha certeza que existe espaço de disco disponível na partição utilizada. Infelizmente, o servidor X não informa isso de maneira óbvia.
DRI com placas Matrox parou de funcionar
Se você usa um cartão Matrox e DRI parou de funcionar depois de atualizar o Xorg, tente adicionar a seguinte linha:
Option "OldDmaInit" "On"Na seção que referência a placa de vídeo em xorg.conf
.
Problemas no modo renderizador de quadros (framebuffer mode)
Se X falha para iniciar com a seguinte messagem de log:
Desinstale o pacote xf86-video-fbdev.
Programa requer "font '(null)'"
Messagem de erro: .
Alguns programas somente funcionam com fontes bitmap. Os dois maiores pacotes com fontes bipmap disponíveis são xorg-fonts-75dpi e . Você não precisa de ambos, um deve ser o bastante. Para descobrir qual o mais apropriado para sua situação, tente , do pacote , desse jeito:
$ xdpyinfo | grep resolutionUse o que for mais próximo do valor mostrado.
Recuperação: Desabilitar o Xorg antes do login GUI
Se o Xorg está configurado para iniciar automaticamente e por alguma razão você precisa evitar isto antes de iniciar o login/gerenciador de exibição Aparecerem (e o sistema está mal configurado e o Xorg não reconhece o mouse ou teclado, por exemplo), você pode fazer isto com dois métodos.
Dependendo da configuração, você vai precisar fazer um ou mais desses passos:
Cliente X começando com falha "su"
Se você está ecebendo "Client is not authorized to connect to server", tente adicionar essa linha:
session optional pam_xauth.soEm e . pam_xauth
irá então apropriadamente definir as variáveis de ambiente e cuidar das chaves .
X falhou para iniciar: Inicialização do teclado falhou
Se o sistema de arquivos, especificamente se está cheio, irá falhar. irá terminar com:
Libere espaço no sistema de arquivos e X irá iniciar.
Tela verde toda vez que tenta ver um vídeo
Sua profundidade de cor está errada. Pode ser 24 ao invés de 16, por exemplo.
Erro SocketCreateListener
Se X termina com a mensagem de erro "SocketCreateListener() failed", você pode precisar deletar os arquivos de socket em /tmp/.X11-unix
. Isto pode acontecer se você antes tenha rodado o Xorg como superusuário (Por exemplo, para gerar uma xorg.conf
).
Chave inválida MIT-MAGIC-COOKIE-1 enquanto tenta executar um programa como root
Este erro significa que somente o atual usuário tem acesso ao servidor X. Para resolver, dê acesso ao superusuário:
$ xhost +si:localuser:rootEsta linha também pode dar acesso a outros usuários.
Xorg-server Fatal server error: (EE) AddScreen/ScreenInit
Se o servidor do Xorg estiver apresentando um problema intermitente e no log do Xorg você vê:
systemd-logind: failed to take device /dev/dri/card0: Operation not permitted ... AddScreen/ScreenInit failed for driver 0Então este problema pode ser causado pelo issue 13943 do systemd. Configure um início antecipado de KMS.