Antes de iniciar o Xorg pela primeira vez, é útil reconstruir o
cache da biblioteca executando-se o ldconfig
como o(a) usuário(a)
root
.
Antes de iniciar o Xorg pela primeira vez, muitas vezes é necessário reinicializar o sistema para garantir que todos os processos de segundo plano apropriados sejam iniciados e que os problemas de segurança apropriados estejam configurados adequadamente. Como alternativa, sair e logar-se novamente possivelmente funcione, mas ao tempo deste texto, não foi testado.
Se o "Xorg" travar por algum motivo (por exemplo, ausência de um
controlador de entrada adequado), [então] o sistema poderá parar
de responder a qualquer entrada gerada de usuário(a). Como
precaução, você pode habilitar uma tecla mágica "SysRq" antes de testar o "Xorg".
Como o(a) usuário(a) "root
",
emita:
echo 4 > /proc/sys/kernel/sysrq
Então, se o "Xorg" travar, é possível usar "Alt+SysRq+R" para reconfigurar o modo do teclado. Agora ele deveria ser capaz de usar "Ctrl+Alt+Fx" (substitua o "x" por um número de "VT") para comutar para outro "VT". Se funcionar, [então] logue-se e mate o "Xorg" usando a linha de comando no novo "VT".
Para testar a instalação do "Xorg", emita "startx". Esse comando traz um gerenciador de janelas rudimentar chamado "twm" com três janelas do "xterm" e uma janela do "xclock". A janela do "xterm" no canto superior esquerdo é um terminal de "login" e executar-se "exit" a partir desse terminal sairá da sessão do "Janelas X". A terceira janela do "xterm" possivelmente esteja obscurecida em teu sistema pelos outros dois "xterms".
Ao testar o "Xorg" com o gerenciador de janelas "twm", existirão vários avisos no arquivo de registro do "Xorg", "$HOME/.local/share/xorg/Xorg.0.log", a respeito de arquivos de fontes ausentes. Além disso, existirão vários avisos no terminal de modo texto (geralmente "tty1") a respeito de fontes ausentes. Esses avisos não afetam a funcionalidade, mas podem ser removidos, se desejado, instalando-se o "Fontes Legadas do Xorg".
Em sistemas com GPUs NVIDIA que estão usado o controlador de núcleo Nouveau, você pode encontrar congelamentos e travamentos ocasionais da GPU. Se esse problema ocorrer, rebaixe para a versão mais recente do núcleo Linux 6.1.
Geralmente, não existe configuração específica exigida para o "Xorg", mas a personalização é possível. Para detalhes, veja-se "“Configurando Dispositivos do Xorg”" abaixo.
"DRI" é uma estrutura que permite que logiciário acesse "hardware" gráfico de maneira segura e eficiente. Ela é instalada no "X" por padrão (usando "Mesa") se você tiver uma placa de vídeo suportada.
Para verificar se os controladores da "DRI" estão instalados
adequadamente, verifique o arquivo de registro "$HOME/.local/share/xorg/Xorg.0.log
" (ou
"/var/log/Xorg.0.log
" se você tiver
construído o "Xorg-Server-21.1.8" com o "bit" "suid")
para declarações como:
(II) modeset(0): [DRI2] Setup complete
(II) modeset(0): [DRI2] DRI driver: crocus
(II) modeset(0): [DRI2] VDPAU driver: va_gl
A configuração da DRI possivelmente difira se você estiver usando controladores alternativos, como tradicionais controladores DDX ou os controladores proprietários oriundos da NVIDIA ou da AMD.
Outra maneira de determinar se a "DRI" está funcionando adequadamente é a de usar um dos dois aplicativos de demonstração "OpenGL" instalados opcionalmente no "Mesa-23.1.6". A partir de um terminal do "X", execute "glxinfo" e procure pela frase:
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Se a Renderização Direta estiver habilitada, [então] você poderá adicionar detalhamento executando "LIBGL_DEBUG=verbose glxinfo". Isso mostrará os controladores, nós de dispositivos e arquivos usados pelo sistema da "DRI".
Para confirmar se a aceleração de "hardware" "DRI2" está
funcionando, você pode (ainda no terminal do "X") executar o
comando glxinfo | grep -E "(OpenGL
vendor|OpenGL renderer|OpenGL version)". Se isso
informar algo diferente de
"Software Rasterizer
", então você tem
aceleração funcional para o(a) usuário(a) que executou o comando.
Se o teu "hardware" não tiver nenhum controlador "DRI2" disponível, [então] ele usará um "Software Rasterizer" para Renderização Direta. Nesses casos, você pode usar um novo "Software Rasterizador", acelerado por "LLVM", chamado "LLVMPipe". Para a finalidade de construir o "LLVMPipe", apenas certifique-se de que o "LLVM-16.0.5" esteja presente ao tempo da construção do "Mesa". Observe que toda a decodificação é feita na "CPU" e não na "GPU", de forma que a exibição ficará mais lenta que com aceleração de "hardware". Para verificar se você está usando o "LLVMpipe", revise a saída gerada do comando "glxinfo" acima. Um exemplo de saída gerada usando o "Software Rasterizer" é mostrado abaixo:
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.5, 256 bits)
OpenGL version string: 3.0 Mesa 10.4.5
Você também consegue forçar o "LLVMPipe" exportando a variável de
ambiente "LIBGL_ALWAYS_SOFTWARE=1
" ao
iniciar o "Xorg".
Novamente, se você tiver construído os demonstrativos "OpenGL" do "Mesa", [então] também poderá executar o aplicativo de teste "glxgears". Esse aplicativo abre uma janela com três engrenagens girando. O terminal do "X" exibirá quantos quadros foram desenhados a cada cinco segundos, de forma que isso dará uma avaliação comparativa aproximada. A janela é escalonável e os quadros desenhados por segundo são altamente dependentes do tamanho da janela. Em alguns "hardwares", o "glxgears" executará sincronizado com o sinal de atualização vertical e a taxa de quadros será aproximadamente a mesma que a taxa de atualização do monitor.
Ao iniciar o "Xorg", existem algumas maneiras de verificar
quaisquer problemas que você possa ter. Se o sistema funcionar,
[então] você poderá ver qual controlador está sendo usado
executando o "xdriinfo". Se existirem problemas
ou você quiser apenas verificar, {então} consulte Xorg.0.log
.
O local do Xorg.0.log
depende de como
o Xorg está instalado. Se as instruções no livro forem seguidas à
risca e o Xorg for iniciado a partir da linha de comando, ele
estará localizado no diretório $HOME/.local/share/xorg/
. Se o Xorg for iniciado
por um gerenciador de telas (por exemplo, lightdm-1.32.0, sddm-0.20.0 ou
GDM-44.1) ou
se $XORG_PREFIX/bin/Xorg
tiver o bit
suid configurado, ele estará localizado no diretório /var/log/
.
Ao olhar para o "Xorg.0.log", verifique entradas como ("EE") ou ("WW"). Abaixo estão algumas entradas comuns:
Esse aviso ocorre porque o "acpid-2.0.34" não está instalado. Se você não estiver em um "laptop", [então] ele pode ser seguramente ignorado. Em um "laptop", instale o "acpid-2.0.34" para habilitar ações como reconhecer quando a tampa está fechada.
Esse aviso é exibido quando um(a) usuário(a) normal inicia o Xorg.
A biblioteca libpciaccess.so
emite
esse aviso quando ela tenta abrir o /dev/vga_arbiter
. Se existir não mais que uma
placa gráfica PCI legada (não PCIe) no sistema, ele pode ser
seguramente ignorado. Se realmente necessário, as permissões desse
dispositivo podem ser mudadas adicionando-se uma regra do Udev e
adicionando-se o(a) usuário(a) local ao grupo de vídeo. Como o(a)
usuário(a) root
:
cat > /etc/udev/rules.d/99-vga-arbiter.rules << EOF # /etc/udev/rules.d/99-vga-arbiter.rules: Configura grupo/modo do "vga_arbiter" ACTION=="add", KERNEL=="vga_arbiter", GROUP="video" MODE="0660" EOF usermod -a -G video <usuário(a) executando o Xorg>
Os Gráficos Híbridos ainda estão em estado experimental para o Linux. Os(As) desenvolvedores(as) do "Xorg" desenvolveram uma tecnologia chamada "PRIME" que pode ser usada para comutar entre "GPU" discreta integrada e sem "mux" à vontade. A comutação automática não é possível no momento.
Para a finalidade de usar a "PRIME" para comutação de "GPU", certifique-se de que está usando o Núcleo Linux 3.4 ou posterior (recomendado). Você precisará dos controladores "DRI" e "DDX" mais recentes para o teu "hardware" e do Servidor "Xorg" 1.13 ou posterior.
O Servidor "Xorg" deveria carregar ambos os controladores de "GPU" automaticamente. Você pode verificar isso executando:
xrandr --listproviders
Deveria existir dois (ou mais) provedores listados, por exemplo:
Providers: number : 2
Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:modesetting
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:modesetting
Para a finalidade de poder executar um aplicativo GLX em uma GPU discreta, você precisará executar o seguinte comando, onde <provider> é o ID da placa discreta mais poderosa e <sink> é o ID da placa que tiver uma tela conectada:
xrandr --setprovideroffloadsink <provider> <sink>
Com o controlador de configuração de modo do Xorg, que é compatível com DRI3, o comando acima não mais é necessário. No entanto, ele não danifica.
Então, você precisará exportar a variável de ambiente "DRI_PRIME=1
" toda vez que quiser que a poderosa
"GPU" seja usada. Por exemplo,
DRI_PRIME=1 glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)"
mostrará o fornecedor, o renderizador e a versão do "OpenGL" para a "GPU" discreta.
Se o último comando informar o mesmo renderizador "OpenGL" com e
sem "DRI_PRIME=1
", [então] você
precisará verificar a tua instalação.
Para a maioria das configurações de "hardware", o "Xorg" moderno corrigirá automaticamente a configuração do servidor sem qualquer intervenção do(a) usuário(a). Existem, no entanto, alguns casos em que a configuração automática estará incorreta. A seguir estão alguns de itens de configuração manual de exemplo que possivelmente sejam de uso nesses casos.
Para a maioria dos dispositivos de entrada, nenhuma configuração adicional será necessária. Esta seção é fornecida somente para fins informativos.
Uma amostra de configuração padrão do "XKB" poderia ser
semelhante ao seguinte (executado como o(a) usuário(a)
"root
"):
cat > /etc/X11/xorg.conf.d/xkb-defaults.conf << "EOF"
Section "InputClass"
Identifier "XKB Defaults"
MatchIsKeyboard "yes"
Option "XkbLayout" "fr"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
EOF
A linha “XkbLayout” é um exemplo para um teclado francês ("AZERTY"). Mude-a para o modelo do teu teclado. Essa linha não é necessária para um teclado "QWERTY" ("EUA").
Se você deseja configurar a resolução do monitor para o Xorg, primeiro execute xrandr em um terminal do X para listar as resoluções suportadas e as correspondentes taxas de atualização. Por exemplo, ele gera o seguinte para um monitor:
Screen 0: minimum 16 x 16, current 5760 x 2160, maximum 32767 x 32767
DP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
3840x2160 59.98*+
2048x1536 59.95
1920x1440 59.90
1600x1200 59.87
1440x1080 59.99
1400x1050 59.98
1280x1024 59.89
1280x960 59.94
1152x864 59.96
1024x768 59.92
800x600 59.86
640x480 59.38
A partir da saída gerada podemos ver que o monitor está
identificado como DP-1
. Selecione
uma resolução adequada a partir da lista da saída gerada, por
exemplo 1920x1440
. Então, como o(a)
usuário(a) root
, crie um arquivo
de configuração para o servidor Xorg:
cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
Identifier "DP-1"
Option "PerferredMode" "1920x1440"
EndSection
EOF
Às vezes, o xrandr pode falhar para detectar algumas configurações de resolução suportadas pelo monitor. Isso geralmente acontece com monitores virtuais de gerenciadores de máquinas virtuais, como qemu-8.1.0 ou VMWare: um monitor virtual na verdade suporta todos os pares de números inteiros em um intervalo conforme a resolução, mas xrandr só listará alguns. Para usar uma resolução não listada por xrandr, primeiro execute cvt para obter a linha de modo para a resolução. Por exemplo:
cvt 1600 900
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
Como o(a) usuário(a) root
, crie
um arquivo de configuração do servidor Xorg contendo essa linha
de modo e especifique o modo como modo preferido:
cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
Identifier "DP-1"
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
Option "PerferredMode" "1600x900_60.00"
EndSection
EOF
Alguns monitores LCD de última geração suportam uma taxa de atualização superior a 100 Hz, mas xrandr pode falhar para reconhecer a taxa de atualização suportada e usar 60 Hz. Esse problema impediria você de utilizar a capacidade completa do monitor e poderia fazer com que a tela piscasse ou mostrasse “artefatos” como malhas ou grades. Para resolver o problema, use novamente cvt para obter a linha de modo com uma taxa de atualização personalizada:
cvt 3840 2160 144
# 3840x2160 143.94 Hz (CVT) hsync: 338.25 kHz; pclk: 1829.25 MHz
Modeline "3840x2160_144.00" 1829.25 3840 4200 4624 5408 2160 2163 2168 2350 -hsync +vsync
Em seguida, cole-a no arquivo de configuração do servidor Xorg e configure-a como modo preferido.
Outra configuração comum é ter vários esquemas de servidor para uso em ambientes diferentes. Apesar de que o servidor automaticamente detectará a presença de outro monitor, ele possivelmente obtenha a ordem incorreta:
cat > /etc/X11/xorg.conf.d/server-layout.conf << "EOF"
Section "ServerLayout"
Identifier "DefaultLayout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" LeftOf "Screen0"
Option "Xinerama"
EndSection
EOF
Quando você arrasta uma janela no TWM (ou em qualquer gerenciador de janelas não de composição) horizontalmente, você poderá observar que as bordas verticais da janela são quebradas em vários segmentos. Esse é um exemplo dos artefatos visuais chamados rasgamento de tela. Para resolver os problemas de rasgamento de tela, crie um arquivo de configuração que habilite a opção TearFree. Observe que você precisa ter o remendo Tearfree aplicado a partir de Xorg-Server-21.1.8 para isso funcionar corretamente e isso pode aumentar a alocação de memória e reduzir o desempenho.
cat > /etc/X11/xorg.conf.d/20-tearfree.conf << "EOF"
Section "Device"
Identifier "Graphics Adapter"
Driver "modesetting"
Option "TearFree" "true"
EndSection
EOF
Com o moderno Xorg, pouca ou nenhuma configuração adicional de
placa gráfica é necessária. Se você devesse precisar de opções
extras passadas para o teu controlador de vídeo, adicione-as na
seção Device
também. As opções
suportadas pelo controlador de configuração de modo estão
documentadas na página de manual modesetting(4)
.