5.4. Configuração do Xorg
Anterior | Capítulo 5. O sistema X Window | Próxima

## 5.4. Configuração do Xorg

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 é iniciado quando o Xorg é iniciado:

       % 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 com a variante `oss`.

  Exemplo 5.7. Definindo um layout de teclado

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

      Section	"InputClass"
      	Identifier	"KeyboardDefaults"
      	Driver		"keyboard"
      	MatchIsKeyboard	"on"
      	Option		"XkbLayout" "fr"
      	Option		"XkbVariant" "oss"
      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"
      	Driver		"keyboard"
      	MatchIsKeyboard	"on"
      	Option		"XkbOptions" "terminate:ctrl_alt_bksp"
      EndSection

#### 5.4.7.2. Mouse e Dispositivos Similares

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 com:

    # Xorg -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/`.

Anterior | Acima | Próxima
5.3. Instalando o Xorg | Principal | 5.5. Usando fontes no Xorg

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>.