5.4. Configuração do Xorg

Originalmente contribuído por Warren Block.

5.4.1. Inicio Rápido

O Xorg suporta as placas de vídeo, teclados e dispositivos USB mais comuns.

Dica:

Placas de vídeo, monitores e dispositivos de entrada são detectados automaticamente e não exigem nenhuma configuração manual. Não crie o xorg.conf ou execute o passo -configure a menos que a configuração automática falhe.

  1. Se o Xorg tiver sido usado neste computador antes, mova ou remova qualquer arquivo de configuração existente:

    # mv /etc/X11/xorg.conf ~/xorg.conf.etc
    # mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc
  2. Adicione o usuário que executará o Xorg ao grupo video ou wheel para ativar a aceleração 3D quando disponível. Para adicionar o usuário jru ao grupo que estiver disponível:

    # pw groupmod video -m jru || pw groupmod wheel -m jru
  3. O gerenciador de janelas twm é incluído por padrão. Ele é chamado quando o Xorg se inicia:

    % startx
  4. Em algumas versões mais antigas do FreeBSD, o console do sistema deve ser definido como vt(4) antes que a volta para o console de texto funcione corretamente. Veja Seção 5.4.3, “Configuração do Modo Kernel (KMS)”.

5.4.2. Grupo de Usuários para Vídeo Acelerado

O acesso ao /dev/dri é necessário para permitir a aceleração 3D nas placas de vídeo. Geralmente é mais simples adicionar o usuário que estará executando o X no grupo video ou no wheel. Aqui, o pw(8) é usado para adicionar o usuário slurms ao grupo video, ou ao grupo wheel se não houver nenhum grupo video:

# pw groupmod video -m slurms || pw groupmod wheel -m slurms

5.4.3. Configuração do Modo Kernel (KMS)

Quando o computador alterna a exibição do console para uma resolução de tela mais alta para o X, ele deve definir o modo da saída de vídeo. Versões recentes do Xorg usam um sistema dentro do kernel para fazer essas mudanças de modo mais eficiente. Versões mais antigas do FreeBSD usam o sc(4), que não tem conhecimento do sistema KMS. O resultado final é que depois de fechar o X, o console do sistema fica em branco, embora ainda esteja funcionando. O console vt(4) mais recente evita esse problema.

Adicione esta linha ao /boot/loader.conf para ativar o vt(4):

kern.vty=vt

5.4.4. Arquivos de Configuração

A configuração manual geralmente não é necessária. Por favor, não crie manualmente arquivos de configuração, a menos que a autoconfiguração não funcione.

5.4.4.1. Diretório

O Xorg procura em vários diretórios por arquivos de configuração. O /usr/local/etc/X11/ é o diretório recomendado para esses arquivos no FreeBSD. Usar esse diretório ajuda a manter os arquivos dos aplicativos separados dos arquivos do sistema operacional.

Armazenar arquivos de configuração no diretório legado /etc/X11/ ainda funciona. No entanto, isso combina arquivos de aplicativos com os arquivos básicos do FreeBSD e não é recomendado.

5.4.4.2. Arquivos Únicos ou Múltiplos

É mais fácil usar multiplos arquivos em que cada um controla uma configuração específica ao invés do único e tradicional xorg.conf. Esses arquivos são armazenados no subdiretório xorg.conf.d/ do diretório principal do arquivo de configuração. O caminho completo é tipicamente /usr/local/etc/X11/xorg.conf.d/.

Exemplos desses arquivos serão mostrados posteriormente nesta seção.

O tradicional e único arquivo xorg.conf ainda funciona, mas não é tão claro e nem tão flexível quanto vários arquivos no subdiretório xorg.conf.d/.

5.4.5. Placas de Vídeo

Devido as mudanças feitas nas versões recentes do FreeBSD, agora é possível usar drivers gráficos fornecidos pelo Framework do Ports, assim como pelos pacotes. Assim sendo, os usuários podem usar um dos seguintes drivers disponíveis em graphics/drm-kmod.

Intel KMS driver, Radeon KMS driver, AMD KMS driver

A aceleração 2D e 3D é suportada na maioria das placas gráficas do driver Intel KMS fornecidas pela Intel®.

Nome do driver: i915kms

A aceleração 2D e 3D é suportada na maioria das placas gráficas de driver Radeon KMS mais antigas fornecidas pela AMD®.

Nome do Driver: radeonkms

A aceleração 2D e 3D é suportada nas mais recentes placas gráficas do driver AMD KMS fornecidas pela AMD®.

Nome do Driver: amdgpu

Para referência, veja https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units ou https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units para uma lista das GPUs suportadas.

Intel®

A aceleração 3D é suportada na maioria dos chipsets gráficos da Intel® até o Ivy Bridge (HD Graphics 2500, 4000 e P4000), incluindo Iron Lake (HD Graphics) e Sandy Bridge (HD Graphics 2000) .

Nome do driver: intel

Para referência, veja https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units.

AMD® Radeon

Aceleração 2D e 3D é suportada em placas Radeon das mais antigas até a série HD6000.

Nome do Driver: radeon

Para referência, veja https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units.

NVIDIA

Vários drivers da NVIDIA estão disponíveis na categoria x11 da Coleção de Ports. Instale o driver que corresponde à sua placa de vídeo.

Para referência, veja https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units.

Gráficos Híbridos de Combinação

Alguns notebooks adicionam unidades de processamento gráfico adicionais àquelas incorporadas ao chipset ou ao processador. O Optimus combina o hardware da Intel® e da NVIDIA. O Switchable Graphics ou Hybrid Graphics são uma combinação dos processadores Intel® ou AMD® e uma GPU AMD® Radeon.

As implementações desses sistemas gráficos híbridos variam e o Xorg no FreeBSD não é capaz de controlar todas as versões deles.

Alguns computadores fornecem uma opção no BIOS para desativar um dos adaptadores gráficos ou selecionar um modo discreto que pode ser usado com um dos drivers de placa de vídeo padrão. Por exemplo, às vezes é possível desativar a GPU NVIDIA em um sistema Optimus. O vídeo Intel® pode então ser usado com um driver Intel®.

Configurações de BIOS dependem do modelo do computador. Em algumas situações, ambas GPUs podem ser deixadas ativadas, mas criar um arquivo de configuração que use apenas a GPU principal na seção Device é o suficiente para tornar esse sistema funcional.

Outras placas de vídeo

Drivers para algumas placas de vídeo menos comuns podem ser encontrados no diretório x11-drivers da Coleção de Ports.

PLacas que não são suportadas por um driver específico ainda podem ser usadas com o driver x11-drivers/xf86-video-vesa. Este driver é instalado pelo x11/xorg. Ele também pode ser instalado manualmente como x11-drivers/xf86-video-vesa. O Xorg tenta usar este driver quando um driver específico não é encontrado para a placa de vídeo.

O x11-drivers/xf86-video-scfb é um driver de vídeo não especializado similar que funciona em muitos computadores UEFI e ARM®.

Configurando o driver de vídeo em um arquivo

Para definir o driver Intel® em um arquivo de configuração:

Exemplo 5.1. Selecione o driver de vídeo Intel® em um arquivo

/usr/local/etc/X11/xorg.conf.d/driver-intel.conf

Section "Device"
	Identifier "Card0"
	Driver     "intel"
	# BusID    "PCI:1:0:0"
EndSection

Se mais de uma placa de vídeo estiver presente, o identificador BusID pode ser descomentado e configurado para selecionar a placa desejada. Uma lista de barramento de placa de vídeo ID pode ser exibida com pciconf -lv | grep -B3 display.


Para definir o driver Radeon em um arquivo de configuração:

Exemplo 5.2. Selecione o driver de vídeo Radeon em um arquivo

/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf

Section "Device"
	Identifier "Card0"
	Driver     "radeon"
EndSection

Para definir o driver VESA em um arquivo de configuração:

Exemplo 5.3. Selecione o driver de vídeo VESA em um arquivo

/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf

Section "Device"
	Identifier "Card0"
	Driver     "vesa"
EndSection

Para definir o driver scfb para uso com um computador UEFI ou ARM®:

Exemplo 5.4. Selecione o driver de vídeo scfb em um arquivo

/usr/local/etc/X11/xorg.conf.d/driver-scfb.conf

Section "Device"
	Identifier "Card0"
	Driver     "scfb"
EndSection

5.4.6. Monitores

Quase todos os monitores suportam o padrão Extended Display Identification Data (EDID). O Xorg usa o EDID para se comunicar com o monitor e detectar as resoluções e taxas de atualização suportadas. Em seguida, seleciona a combinação mais adequada de configurações para usar com esse monitor.

Outras resoluções suportadas pelo monitor podem ser escolhidas definindo a resolução desejada nos arquivos de configuração, ou após o servidor X ter sido iniciado com xrandr(1).

Usando xrandr(1)

Execute o xrandr(1) sem nenhum parâmetro para ver uma lista de saídas de vídeo e modos de monitor detectados:

% xrandr
Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
   1920x1200     59.95*+
   1600x1200     60.00
   1280x1024     85.02    75.02    60.02
   1280x960      60.00
   1152x864      75.00
   1024x768      85.00    75.08    70.07    60.00
   832x624       74.55
   800x600       75.00    60.32
   640x480       75.00    60.00
   720x400       70.08
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)

Isso mostra que a saída DVI-0 está sendo usada para exibir uma resolução de tela de 1920x1200 pixels a uma taxa de atualização de cerca de 60 Hz. Os monitores não estão conectados aos conectores DisplayPort-0 e HDMI-0.

Qualquer um dos outros modos de exibição pode ser selecionado com xrandr(1). Por exemplo, para mudar para 1280x1024 a 60 Hz:

% xrandr --mode 1280x1024 --rate 60

Uma tarefa comum é usar a saída de vídeo externa em um notebook para um projetor de vídeo.

O tipo e a quantidade de conectores de saída variam entre os dispositivos, e o nome dado a cada saída varia de driver para driver. O que um driver chama de HDMI-1, outro pode chamar de HDMI1. Portanto, o primeiro passo é executar xrandr(1) para listar todas as saídas disponíveis:

% xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.04*+
   1024x768      60.00
   800x600       60.32    56.25
   640x480       59.94
VGA1 connected (normal left inverted right x axis y axis)
   1280x1024     60.02 +  75.02
   1280x960      60.00
   1152x864      75.00
   1024x768      75.08    70.07    60.00
   832x624       74.55
   800x600       72.19    75.00    60.32    56.25
   640x480       75.00    72.81    66.67    60.00
   720x400       70.08
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)

Quatro saídas foram encontradas: os conectores LVDS1 e VGA1, HDMI1 e DP1 do painel interno.

O projetor foi conectado à saída VGA1. O xrandr(1) agora é usado para definir essa saída para a resolução nativa do projetor e adicionar o espaço adicional à direita da área de trabalho:

% xrandr --output VGA1 --auto --right-of LVDS1

A opção --auto escolhe a resolução e a taxa de atualização detectadas pelo EDID. Se a resolução não for detectada corretamente, um valor fixo pode ser fornecido com --mode em vez da instrução --auto. Por exemplo, a maioria dos projetores pode ser usada com uma resolução de 1024x768, que é definida com --mode 1024x768.

O xrandr(1) geralmente é executado a partir do .xinitrc para definir o modo apropriado quando o X é iniciado.

Configurando a resolução do monitor em um arquivo

Para definir uma resolução de tela de 1024x768 em um arquivo de configuração:

Exemplo 5.5. Defina a resolução de tela em um arquivo

/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	SubSection "Display"
	Modes      "1024x768"
	EndSubSection
EndSection

Os poucos monitores que não possuem EDID podem ser configurados setando o HorizSync e o VertRefresh para o intervalo de frequências suportado pelo monitor.

Exemplo 5.6. Configurando Manualmente as Frequências do Monitor

/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf

Section "Monitor"
	Identifier   "Monitor0"
	HorizSync    30-83   # kHz
	VertRefresh  50-76   # Hz
EndSection

5.4.7. Dispositivos de Entrada

5.4.7.1. Teclados

Layout do Teclado

A localização padronizada das teclas em um teclado é chamada de layout. Layouts e outros parâmetros ajustáveis são listados em xkeyboard-config(7).

Um layout dos Estados Unidos é o padrão. Para selecionar um layout alternativo, defina as opções XkbLayout e XkbVariant em um InputClass. Isso será aplicado a todos os dispositivos de entrada que correspondam à classe.

Este exemplo seleciona um layout de teclado Francês.

Exemplo 5.7. Definindo um layout de teclado

/usr/local/etc/X11/xorg.conf.d/keyboard-fr.conf

Section	"InputClass"
	Identifier	"KeyboardDefaults"
	MatchIsKeyboard	"on"
	Option		"XkbLayout" "fr"
EndSection

Exemplo 5.8. Definindo vários layouts de teclado

Define os layouts de teclado para Estados Unidos, Espanhol e Ucraniano. Alterne entre esses layouts pressionando Alt+Shift. O x11/xxkb ou x11/sbxkb pode ser usado para um melhor controle da mudança de layout e dos indicadores do layout atual.

/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf

Section	"InputClass"
	Identifier	"All Keyboards"
	MatchIsKeyboard	"yes"
	Option		"XkbLayout" "us, es, ua"
EndSection

Fechando o Xorg pelo teclado

X pode ser fechado com uma combinação de teclas. Por padrão, essa combinação de teclas não está definida porque entra em conflito com os comandos do teclado para alguns aplicativos. Ativar essa opção requer alterações na seção InputDevice do teclado:

Exemplo 5.9. Ativando o fechamento de X pelo teclado

/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf

Section	"InputClass"
	Identifier	"KeyboardDefaults"
	MatchIsKeyboard	"on"
	Option		"XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

5.4.7.2. Mouse e Dispositivos Similares

Importante:

Se ao usar xorg-server 1.20.8 ou maior no FreeBSD 12.1 e não usar moused(8), adicione kern.evdev.rcpt_mask=12 ao arquivo /etc/sysctl.conf:

Muitos parâmetros do mouse podem ser ajustados com opções de configuração. Veja mousedrv(4) para obter uma lista completa.

Botões do Mouse

O número de botões em um mouse pode ser definido na seção InputDevice do xorg.conf. Para definir o número de botões para 7:

Exemplo 5.10. Definindo o número de botões do mouse

/usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf

Section "InputDevice"
	Identifier  "Mouse0"
	Option      "Buttons" "7"
EndSection

5.4.8. Configuração manual

Em alguns casos, a autoconfiguração do Xorg não funciona com alguns hardwares específicos, ou uma configuração diferente é desejada. Para esses casos, um arquivo de configuração personalizado pode ser criado.

Atenção:

Não crie arquivos de configuração manualmente, a menos que seja necessário. A configuração manual desnecessária pode impedir o funcionamento adequado.

Um arquivo de configuração pode ser gerado pelo Xorg baseado no hardware detectado. Esse arquivo geralmente é um ponto de partida útil para configurações personalizadas.

Gerando um arquivo xorg.conf:

# Xorg -configure

O arquivo de configuração é salvo em /root/xorg.conf.new. Faça as alterações desejadas e teste esse arquivo(usando -retro assim será exibido um fundo visível) com:

# Xorg -retro -config /root/xorg.conf.new

Após a nova configuração ter sido ajustada e testada, ela pode ser dividida em arquivos menores no diretorio, /usr/local/etc/X11/xorg.conf.d/.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.