ubuntu gutsy, ati e compiz

by gallois

Bom galera, como esse é um tópico comum em vários blogs e forums, resolvi colocar aqui as minhas experiências também. Pode ser que seja útil a alguém.

Em primeiro lugar, vou descrever o meu computador

Athlon 64 2800+ 1.8GHz

1GB DDR400 genérica xD

HD SAMSUNG SATA 80GB

Mobo Asus K8S-MX

Placa de vídeo ATI RADEON 9600PRO

$ uname -a

Linux tivoli 2.6.22-14-generic #1 SMP Tue Feb 12 07:42:25 UTC 2008 i686 GNU/Linux

A instalação foi feita sobre um ubuntu recém instalado. A única coisa que tinha feito antes foi tentar instalar os drivers de vídeo pelo restricted drivers manager do ubuntu. O que não me deu nenhum resultado positivo.

Vamos à instalação em si. (Faça sempre uma cópia do seu xorg.conf por segurança =)

Partirei do princípio que o sistema não tem nada de xgl e fglrx instalados. Caso tenha, será necessário remover.

$ sudo apt-get remove xserver-xgl xserver-xorg-fglrx

Habilite Composite e AIGLX no /etc/X11/xorg.conf adicionando as seguintes linhas no final do arquivo.

Section “Extensions”
Option “Composite” “true”
EndSection
Section “ServerFlags”
Option “AIGLX” “true”
EndSection

Retire o módulo fglrx da lista de carregamento do kernel editando o arquivo /etc/default/linux-restricted-modules-common na linha onde tem DISABLED_MODULES=”” e altere-a para ficar como segue: DISABLED_MODULES=”fglrx”

Certifique-se de ter habilitados os repostórios universe e multiverse no apt. Isso pode ser alterado diretamente no arquivo /etc/apt/sources.list retirando os comentários das linhas que tiverem esses dados.

Após ter os repositórios devidamente configurados, execute

$ sudo apt-get update
$ sudo apt-get install module-assistant build-essential fakeroot dh-make debhelper debconf libstdc++5 linux-headers-generic-$(uname-r)

Baixe o driver e, dentro da pasta onde ele estiver, rode o comando

$ sudo bash ati-driver-installer-8.42.3-x86.x86_64.run –buildpkg Ubuntu/gutsy

Isso deverá gerar os pacotes .deb que serão necessários para a instalação do driver. Caso algum erro ocorra, não adianta de nada continuar, você deve corrigir o problema antes de prosseguir.

Após isso, instale todos os pacotes:

$ sudo dpkg -i xorg-driver-fglrx_8.42.3-1*.deb fglrx-kernel-source_8.42.3-1*.deb fglrx-amdcccle_8.42.3-1*.deb

Eventualmente pode acontecer de alguma dependência não ser resolvida, contorne com:

$ sudo apt-get -f install

Retire todos os pacotes antigos do fglrx para evitar conflitos:

$ sudo rm /usr/src/fglrx-kernel*.deb

Compile o módulo!!!!

$ sudo module-assistant prepare
$ sudo module-assistant update
$ sudo module-assistant build fglrx -f
$ sudo module-assistant install fglrx -f
$ sudo depmod -a

Caso já tenha sido feita alguma alteração no módulo do fglrx, pode ser necessária a seguinte etapa, execute por via das dúvidas:

$ sudo mkdir /lib/modules/$(uname -r)/volatile
$ sudo ln -sf /lib/modules/$(uname -r)/misc/fglrx.ko /lib/modules/$(uname -r)/volatile/fglrx.ko

Entre com os seguintes comandos para que o xorg.conf seja alterado:

$ sudo aticonfig –initial – f
$ sudo aticonfig –overlay-type=Xv

Após isso, você tem duas alternativas. Ou reinicia o pc e deixa que o próprio sistema se encarregue de carregar os drivers, ou então, faça da maneira mais “correta”, afinal de contas, você usa linux exatamente para não ter que ficar reiniciando o seu pc a toda alteração que faz.

Chame um tty (Ctrl+Alt+F1 por exemplo). Faça o login e execute os seguintes comandos.

$ sudo /etc/init.d/gdm stop

Isso deve parar o gdm

$ sudo rmmod radeon

$ sudo rmmod drm

Para tirar os módulos que não serão mais usados do sistema

$ sudo modprobe -v fglrx

$ sudo depmod -a

Para carregar o módulo do fglrx e criar a lista de dependências de módulos.

Tudo pronto, reinicie o gdm

$ sudo /etc/init.d/gdm start

Agora é só testar sua nova configuração

gallois@tivoli:~$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI RADEON 9600 Series
OpenGL version string: 2.0.6958 Release
gallois@tivoli:~$ glxinfo | grep direct
direct rendering: Yes
gallois@tivoli:~$ glxgears
17141 frames in 5.0 seconds = 3428.177 FPS
18477 frames in 5.0 seconds = 3694.979 FPS
18448 frames in 5.0 seconds = 3689.492 FPS
18491 frames in 5.0 seconds = 3698.152 FPS
18436 frames in 5.0 seconds = 3687.086 FPS

gallois@tivoli:~$

Isso indica que o fglrx está rodando corretamente com a aceleração 3D. Um detalhe interessante é notar que ao acessar System > Administration > Restricted Drivers Manager, será mostrado que os drivers fglrx não estão instalados, mas sim, em uso. O que quer dizer que você está usando um driver diferente do que é fornecido pelo sistema. Se aparecer algo como MESA DRI na linha “OpenGL renderer string: ATI RADEON 9600 Series” aconteceu alguma coisa errada. Dê uma olhada nos logs de inicialização do xorg, que se encontra em /var/log/Xorg.0.log (uma boa é executar $ cat /var/log/Xorg.0.log | egrep \(EE\) que te mostrará onde estão os erros) e no output do comando dmesg para ter uma idéia de por onde começar.

Passado esse ponto ainda resta a configuração do compiz, bem mais simples, diga-se de passagem.

O seguinte comando deve habilitá-lo para a sessão em execução:

$ SKIP_CHECKS=yes compiz

Para habilitá-lo pelo menu System > Preferences > Appearance > Visual Effects, execute:

$ mkdir -p ~/.config/compiz && echo SKIP_CHECKS=yes >> ~/.config/compiz/compiz-manager.

A dica de configuração do compiz eu peguei nesse site, e usei suas etapas para a instalação de driver como base para escrever esse post, apesar de basicamente já ter decorado o procedimento, de tantas vezes que já fiz. O que parece que resolveu meu problema, na verdade, foi a instalação da versão 8.42 do driver. As outras pareciam não funcionar. Como essa foi a primeira a ter suporte a AIGLX (embora eu deva advertir, ele é precário) resolvi tentar, e tive sucesso.

compiz1

compizz2

compiz3

Fica aí a dica, qualquer dúvida, mande um comentário.

[update] me lembrei de um erro comum. as vezes o X reclama de nao achar a libGL.so.1, caso isso aconteca, execute

$ sudo ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so.1

[/update]
abraços e até a próxima.