ATI (Português)

From ParabolaWiki
Jump to: navigation, search
Summary
Uma visão geral do driver livre da placa de vídeo ATI/AMD.
Related
KMS (Português)
Xorg (Português)

Este artigo descreve o driver livre (xf86-video-ati) para as placas de vídeo ATI/AMD.

Nota: Exitem também os drivers nonfree para essas placas e o microcódigo não livre sem fontes usado por drivers livres em outras distros. Nós não apoiamos isso. Os websites que reivindicam a aceleração 2D ou 3D para trabalhar com drivers "free" não especificam que eles precisam do microcódigo não livre para isso.

1 Convenções de nomenclatura

A marca ATI Radeon segue um esquema de nomenclatura que se relaciona com cada produto para um segmento de mercado. Dentro deste artigo, os leitores vão ver os dois nomes de produtos (exemplo HD 4850, X1900) e nomes de código ou núcleo (exemplo: RV770, R580). Tradicionalmente, uma série de produtos corresponderá a uma série de núcleos (exemplo: a série de produtos "X1000" inclui os produtos X1300, X1600, X1800, e X1900 que utilizam o núcleo de série "R500" – incluindo os nùcleos RV515, RV530, R520, e R580).

Para saber uma tabela de série do núcleo e do produto, consulte Wikipedia:Comparison of AMD graphics processing units.

2 Visão Global

O driver (radeon) xf86-video-ati:

  • Trabalha com chipsets Radeon até HD 4xxx (mais recentes chipsets R700) como com HD 5xxx (mais recentes chipsets R800).
  • Suporta RandR 1.2/1.3, e o do kernel mode-setting
  • O suporte HDMI em breve será implementada em xf86-video-ati sobre AtomBIOS. Ele já está funcionando para alguns chipsets (RV620, pelo menos, ja estão funcionando bem).
Nota: xf86-video-ati é reconhecido como "radeon" pelo Xorg (no xorg.conf).

3 Instalação

Para instalar xf86-video-ati:

pacman -S xf86-video-ati

4 Configuração

O Xorg automaticamente carregara o driver e utilizara o EDID do seu monitor para definir a resolução nativa. A configuração só é necessária para ajustar o driver.

Se você quiser a configuração manual, crie o arquivo /etc/X11/xorg.conf.d/20-radeon.conf/ e adicione o seguinte:

Section "Device"
    Identifier "Radeon"
    Driver "radeon"
EndSection

Usando esta seção, você pode habilitar os recursos e ajustar as configurações do driver.

5 Kernel mode-setting (KMS)

KMS ativa a resolução nativa do framebuffer e permite a comutação por consola instantânea (tty). Ele é ativado por padrão.

O KMS para placas de vídeo ATI exige a Xorg o driver de vídeo livre xf86-video-ati de versão 6.12.4 ou posterior.

5.1 Inicio cedo

Este método vai começar KMS o mais cedo possível no processo de inicialização (quando o initramfs é carregado).

Se você tem um kernel especial (por exemplo, linux-libre-zen), lembre-se de usar o arquivo de configuração apropriado para o mkinitcpio, exemplo: /etc/mkinitcpio-zen.conf. Estas instruções são escritas para o kernel padrão (linux-libre).

  1. Remova todas as opções vga= da linha do kernel no arquivo de configuração (/boot/grub/menu.lst para usuários GRUB). Se você está usando outros drivers de framebuffer (como uvesafb ou radeonfb) iram a entrar em conflito com KMS. Para evitar isto, remova os módulos de framebuffer relacionados de /etc/mkinitcpio.conf. Agora deste jeito, o video= pode ser usado em conjunto com o KMS.
  2. Adicionar radeon na opção MODULES no /etc/mkinitcpio.conf. Para suporte AGP, é necessário adicionar o intel_agp (ou o ali_agp, ati_agp, amd_agp, amd64_agp etc.) antes do módulo radeon.
  3. Re-gerar o seu initramfs: # mkinitcpio -p linux-libre
  4. Adicione radeon.modeset=1 para as opções do kernel no arquivo de configuração do bootloader para habilitar o KMS.
  5. Velocidade AGP pode ser configurada com a opção do kernel radeon.agpmode=x, onde x é 1, 2, 4, 8 (velocidade do AGP) ou -1 (modo PCI).
  6. Reiniciar o sistema.

5.2 Início tardio

Com esta escolha, KMS será ativado quando os módulos são carregados durante o processo de inicialização.


Se você tem um kernel especial (por exemplo, linux-libre-zen), lembre-se de usar o arquivo de configuração apropriado para o mkinitcpio, exemplo: /etc/mkinitcpio-zen.conf. Estas instruções são escritas para o kernel padrão (linux-libre).

  1. Remova todas as opções vga= da linha do kernel no arquivo de configuração (/boot/grub/menu.lst para usuários GRUB). Se você está usando outros drivers de framebuffer (como uvesafb ou radeonfb) iram a entrar em conflito com KMS. Para evitar isto, remova os módulos de framebuffer relacionados de /etc/mkinitcpio.conf. Agora deste jeito, o video= pode ser usado em conjunto com o KMS.
  2. Adicionar radeon na opção MODULES no /etc/rc.conf. Para suporte AGP, é necessário adicionar o intel_agp (ou o ali_agp, ati_agp, amd_agp, amd64_agp etc.) antes do módulo radeon.
  3. Reiniciar o sistema.
Dica: Alguns usuários relataram que pode ficar mais rápido o carregamento de módulos udev, adicionando options radeon modeset=1 no /etc/modprobe.d/modprobe.conf.

5.3 Solução de problemas do KMS

5.3.1 Solução do problema genérico

Sua placa de vídeo, muitas vezes fica travado ao carregar o módulo radeon, ao iniciar o seu gerenciador de login, entrando no desktop ou falhando quando você inicia aplicativos 3D como o glxgears, você pode tentar com a opção de inicialização do kernel pci=nomsi que resolve os seus problemas. Veja https://bugzilla.kernel.org/show_bug.cgi?id=15626 para as placas de vídeo X200m.


Nota: A partir do kernel 2.6.35 (e provavelmente .34), o pci=nomsi é mais provável que esteja configurado por padrão.

5.3.2 Desativar o KMS

Os usuários devem considerar a desativação do kernel mode-setting somente em casos de achar: a) pânico do kernel (kernel panics), b) framebuffer distorcido no boot, c) não ter sinal de GPU, d) Xorg se recusar ao iniciar, ou d) o problema do "POWER OFF" (kernel 2.6.33-2) no desligamento do computador.

  1. Adicione radeon.modeset=0 (ou se isso não funcionar, adicione nomodeset) para a linha de opções do kernel no arquivo de configuração do bootloader (/boot/grub/menu.lst para os usuários do GRUB). Isto deveria de funcionar. Se você quiser remover o suporte KMS do initramfs, siga as próximas duas etapas.
  2. Se radeon foi adicionado na opção MODULES no mkinitcpio.conf para permitir a função iniciar cedo, por favor removê-lo para evitar o problema.
  3. Reconstruir o initramfs com
    # mkinitcpio-p linux-libre

Alternativamente, as opções de módulo pode ser especificado em um arquivo dentro do diretório /etc/modprobe.d. Se estiver usando o módulo radeon (lsmod | grep radeon), desative o KMS, criando um arquivo contendo o código:

/etc/modprobe.d/radeon.conf
options radeon modeset=0

5.3.3 Renomear xorg.conf

As vezes é preciso renomear o /etc/X11/xorg.conf, pois pode conter opções que conflitam com o KMS. Fazendo isto, forçará ao Xorg autodetetar o hardware com os padrões normais. Depois, reinicie o Xorg.

6 Ajuste de desempenho

As opções a seguir se aplicam a /etc/X11/xorg.conf.d/20-radeon.conf.

Pelo seu "design". o xf86-video-ati funciona em AGP 4x. Geralmente ele é seguro para modificar isso. Se você notar alguma trava, tente reduzir o valor ou remover a linha totalmente (você pode usar os valores 1, 2, 4, 8). Se o KMS está ativado, essa opção não é usado e é substituído pela opção do kernel radeon.agpmode.

Option "AGPMode" "8"

O ColorTiling é completamente seguro para habilitar e, supostamente, é ativado por padrão. A maioria dos usuários irám a observar que o desempenho aumentou, mas cabe lembrar que ainda não são suportadas nos modelos R200 e em placas de vídeos anteriores. Pode ser habilitado em placas de vídeo antigos, mas a carga de trabalho será transferido para o CPU.

Option "ColorTiling" "on"

A Arquitetura de Aceleração vai funcionar apenas em placas novas. Se você ativar isso e logo disso você não pode voltar para o X, removê-lo.

Option "AccelMethod" "EXA"

O Page Flip é geralmente seguro para ativar. Isso seria usado principalmente em placas antigas, já que esta opção iria desativar o EXA. Também pode ser usado o EXA junto com os drivers recentes.

Option "EnablePageFlip" "on"

O AGPFastWrite permitirá ativar escrituras rapidas para placas AGP. Este pode causar instabilidade, então esteja preparado para removê-lo caso você não poder entrar em X. Esta opção não é utilizada quando o KMS está ligado.

Option "AGPFastWrite" "yes"

A Opção EXAVSync tenta evitar o "tearing" (rasgamento da tela) no motor grafico. Ele reduz o tearing (que tem sido conhecido por causar instabilidade em alguns chips) ao custo do desempenho. Este opção é realmente útil ao habilitar Xv overlay em vídeos em um desktop 3D acelerado. Não é necessário usa-lô quando o KMS (e portanto a aceleração DRI2) esteja habilitado.

Option "EXAVSync" "yes"

Abaixo está um arquivo de configuração de amostra /etc/X11/xorg.conf.d/20-radeon.conf:

Section "Device"
       Identifier  "My Graphics Card"
        Option	"AGPMode"               "8"   #not used when KMS is on
	Option	"AGPFastWrite"          "off" #could cause instabilities enable it at your own risk
	Option	"SWcursor"              "off" #software cursor might be necessary on some rare occasions, hence set off by default
	Option	"EnablePageFlip"        "on"  #supported on all R/RV/RS4xx and older hardware and set off by default
	Option	"AccelMethod"           "EXA" #valid options are XAA and EXA. EXA is the newest acceleration method and its the default.
	Option	"RenderAccel"           "on"  #enabled by default on all radeon hardware
	Option	"ColorTiling"           "on"  #enabled by default on RV300 and later radeon cards.
	Option	"EXAVSync"              "off" #default is off, otherwise on
	Option	"EXAPixmaps"            "on"  #when on icreases 2D performance, but may also cause artifacts on some old cards
	Option	"AccelDFS"              "on"  #default is off, read the radeon manpage for more information
EndSection

Se não for detectados, defina o gartsize, que pode ser feito com a seguinte opção:

Nas opções do kernel (neste caso syslinux.cfg):

APPEND root=/dev/sda1 ro 5 radeon.modeset=1 radeon.agpmode=8 radeon.gartsize=32 quiet

O tamanho é em megabytes e 32 é para placas de vídeo RV280.

Alternativamente, pode ser feito com uma opção modprobe em /etc/modprobe.d/radeon.conf:

options radeon gartsize=32

Para mais informações e outras opções, leia o manpage do radeon e a página de informação de módulos:

man radeon
modinfo radeon

Uma ferramenta muito boa para tentar é o driconf. Ele permitirá que você modifique diversas configurações, como a filtragem, o vsync anisotrópico, a compressão de textura, etc. Usando esta ferramenta também é possível "desabilitar o fallback de Baixo Impacto" necessário para alguns programas.

6.1 Ativar PCI-E 2.0

Pode ser instável com algumas placas-mãe ou não produzir nenhuma performarce, teste você mesmo adicionando "radeon.pcie_gen2=1" na linha de comando do kernel.

Para obter maior informação, entre no artigo de Phoronix

7 Economia de energia (Powersaving)

A parte de economia de energia é totalmente diferente com e sem KMS.

7.1 Com o KMS ativado

Com o driver radeon, a economia de energia é desativado por padrão, mas o kernel de série (2.6.35 como esta escrito) fornece uma utilidade "sysfs" para habilitá-lo.

A opção de economizar energia através da KMS é ainda em sua maior parte, um trabalho em progresso que está sendo melhorado dia a dia. Ele deve funcionar, mas em alguns chips tem problemas com ele. Um problema comum é a tela piscando quando o kernel troca entre os estados de energia, e em algumas configurações ainda faz com que o sistema se congele. Mas mesmo assim, o KMS é impressionante, por isso é a sua escolha. O método UMS é geralmente mais estável, porém seu poder de poupança pode não ser tão bom como os fornecidos pelas opções do KMS.


Existe uma maneira de permitir o gerenciamento de energia:

  1. Tente adicionar radeon.dynpm=1 para os parâmetros do kernel (se estiver usando o kernel padrão < 2.6.35). Se você estiver usando o kernel Linux-libre >= 2.6.35 esta opção não é mais necessária e a interface sysfs estará presente por padrão. Se esta opção é passada para um kernel >= 2.6.35, o driver irá falhar e cair de volta para renderização de software.

7.2 Sem o KMS

No seu arquivo xorg.conf, adicione duas linhas para o Section "Device":

       Option      "DynamicPM"          "on"
       Option      "ClockGating"        "on"

Se as duas opções são habilitadas com sucesso, você verá as seguintes linhas no /var/log/Xorg.0.log:

       (**) RADEON(0): Option "ClockGating" "on"
       (**) RADEON(0): Option "DynamicPM" "on"
       Static power management enable success
       (II) RADEON(0): Dynamic Clock Gating Enabled
       (II) RADEON(0): Dynamic Power Management Enabled

Se você deseja baixo custo de consumo de energia, você pode adicionar uma linha extra para o Section "Device" no xorg.conf:

       Option      "ForceLowPowerMode"   "on"

8 Saída de TV

Este artigo ou seção está obsoleto.
Por favor, ajude a melhorar a wiki, atualizando o artigo e corrigindo os erros.

Desde agosto de 2007, há suporte para saída de TV para todas as Radeons integradas com TV-out (Saída de TV).

É um pouco limitado, por enquanto, nem sempre autodeteta a saída correta e apenas o modo NTSC funciona.

Primeiro, verifique se você tem uma saída S-vídeo: o xrandr deve dar-lhe algo como

Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200
...
S-video disconnected (normal left inverted right x axis y axis)

Agora devemos dizer ao Xorg que ele está realmente conectado

xrandr --output S-video --set load_detection 1

Configure o padrão de TV para usar:

xrandr --output S-video --set tv_standard ntsc

Adicione um modo (atualmente ele suporta apenas 800x600):

xrandr --addmode S-video 800x600

Agora irá por um modo clone:

xrandr --output S-video --same-as VGA-0

Até aqui tudo bem. Agora vamos tentar ver o que temos:

xrandr --output S-video --mode 800x600

Neste ponto, você deve ver uma versão 800x600 de seu desktop na sua TV.

Para desativar a saída, fazer

xrandr --output S-video --off

Além disso, você pode notar que o vídeo está sendo reproduzido no monitor e não apenas na TV. Onde a sobreposição Xv é enviado é controlado pelo atributo XV_CRTC.


Para voltar ao monitor, mude isso para 0. O -1 é usado para a mudança automática nas configurações DualHead (Cabeça Dupla).

Por favor, veja Habilitar Saída de TV estaticamente para saber como habilitar o TV-out (Saída de TV) no arquivo de configuração do xorg.

8.1 Forçar a Saída de TV no KMS

O Kernel pode reconhecer o parâmetro video= na seguinte forma:

 video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]

(veja KMS)

Por exemplo:

 video=DVI-I-1:1280x1024-24@60e

ou

 "video=9-pin DIN-1:1024x768-24@60e"

Os parâmetros com espaços em branco devem ser citados. O mkinitcpio atual também exige a implementação antes do #. Por exemplo:

 root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"
  • Grub pode passar da linha de comando, do jeito como é.
  • Lilo necessita de barras invertidas para as aspas duplas (append="...... # .... \"video=9-pin DIN-1:1024x768-24@60e\"")
  • Grub2: TODO

Você pode obter a lista de saídas de seu vídeo com comando a seguir:

ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-

9 Audio HDMI

O xf86-video-ati pode permitir a saída de áudio HDMI para todos os chipsets suportados até r7xx ao usar o KMS. Basta usar o xrandr para permitir a saída e teste conforme descrito abaixo.

9.1 Testing HDMI Audio

  1. Ligue o seu PC para a exibição via cabo HDMI.
  2. Use o xrandr para obter a imagem para a tela. Ex: xrandr --output DVI-D_1 --mode 1280x768 --right-of PANEL. Simplesmente digitando xrandr vai lhe dar uma lista válida de suas saídas.
  3. Execute aplay -l para obter a lista de seus dispositivos de som. Procure o HDMI nessa lista e anota o número do cartão e número de dispositivo correspondente. Aqui passamos um exemplo do que você quer ver: card 1: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI]
  4. Tente enviar o som para este dispositivo: aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Center.wav. Certifique-se de mudar o plughw:z,y para combinar com o seu número de hardware encontrado com o último comando comentado. Você deve ser capaz de ouvir o som de teste da sua exibição.
  • O módulo de áudio é desabilitado por padrão no kernel >=3.0. Adicione radeon.audio=1 para na final da linha do seu "kernel" no /boot/grub/menu.lst para habilitá-lo.

10 Instalação Dual Head (Duas cabeças)

10.1 Telas X independentes

As configurações Dual-Head independentes podem ser configuradas da maneira usual. No entanto, você deve querer saber se o driver radeon tem uma opção "ZaphodHeads" que lhe permite ligar uma seção de dispositivo específico para uma saída de sua preferência, por exemplo usando:

       Section "Device"
       Identifier     "Device0"
       Driver         "radeon"
       Option         "ZaphodHeads"   "VGA-0"
       VendorName     "ATI"
       BusID          "PCI:1:0:0"
       Screen          0
       EndSection


Este pode ser um salva-vidas, porque alguns cartões que têm mais de duas saídas (por exemplo, um saìda HDMI, uma DVI, uma VGA), só irá selecionar e usar as saídas HDMI + DVI para a configuração dual-head, a menos que você explicitamente especifique "ZaphodHeads" "VGA-0".

Além disso, esta opção permite que você facilmente selecione a tela que você deseja marcar como primária.

11 Solução de problemas

11.1 Eu encontrei artefatos ao fazer logon no meu Ambiente de Trabalho

Se você encontrou artefatos, primeiro tente iniciar o X sem o /etc/X11/xorg.conf/. As versões recentes do Xorg são capazes de fazer auto-detecção confiável e auto-configuração para a maioria dos casos de uso. Um arquivo xorg.conf desatualizado ou mal configurado é motivo conhecido por causar este tipo de problemas.

A fim de executar sem uma peça de configuração, é recomendado que o grupo de pacote xorg-input-drivers seja instalado no sistema.

Os artefatos podem também estar relacionados à configuração em modo kernel. Considere desativar o KMS.

Você pode também tentar desativar o EXAPixmaps em /etc/X11/xorg.conf.d/20-radeon.conf:

Section "Device"
    Identifier "Radeon"
    Driver "radeon"
    Option "EXAPixmaps" "off"
EndSection

Além disso, o ajuste poderia ser feito desativando AccelDFS

Option "AccelDFS" "off"

11.2 Meu cartão é dolorosamente lento

Compre um cartão que tenha suporte de aceleração sem o uso de microcódigo não livre (não feito por ATI/AMD).

11.3 AGP está desativada (com KMS)

Se você tiver um mau desempenho e dmesg mostra algo parecido com isto

[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19

então, verifique se o driver agp para a placa-mãe (ex., via_agp, intel_agp etc.) é carregado antes do módulo radeon, veja na seção de ativar o KMS.

11.4 Minha TV está mostrando uma borda preta ao redor da tela

Quando conectei a minha TV para o meu Radeon HD 5770 usando a porta HDMI, a TV mostrou uma imagem borrada com uma borda de 2-3cm em torno dele. Neste caso, o Overscan ​​pode ser desligado usando o xrandr:

xrandr --output HDMI-0 --set underscan off

11.5 Tela preta e sem console, mas funciona o X no KMS

Este é um problema que pode surgir, ao usar duas ou mais placas ATI no mesmo PC. Por exemplo, o laptop Fujitsu Siemens Amilo PA 3553 tem este problema. Isto é devido a si mesmo ao mapeamento do driver do console fbcon para o dispositivo framebuffer errado existentes no cartão errado.

Isso pode ser corrigido adicionando um deles para a linha de inicialização do kernel:

fbcon=map:1

Isto irá dizer ao fbcon para mapear-se ao dispositivo de framebuffer /dev/fb1 e não ao /dev/fb0, que no nosso caso existe na placa de vídeo errado.

11.6 O desempenho do 2D é lento (por exemplo, a rolagem do scroll do mouse)

Se você tiver problema com o desempenho em 2D, como rolagem do scroll do mouse no terminal ou no navegador, talvez seja necessário adicionar Option "MigrationHeuristic" "greedy" na seção "Device" do seu arquivo xorg.conf.

A seguir você tem a configuração de amostra para ser adicionado no /etc/X11/xorg.conf.d/20-radeon.conf:

Section "Device"
        Identifier  "My Graphics Card"
        Driver  "radeon"
        Option  "MigrationHeuristic"  "greedy"
EndSection

12 Reconhecimento

Este artigo é baseado do ArchWiki. Podemos ter removido dele, os pedaços que tenham conteúdo "não-FSDG".