erro xf86_EINVAL

Iniciado por L'ANGEROUGE, 14 de Janeiro de 2006, 23:48

tópico anterior - próximo tópico

L'ANGEROUGE

Galera, alguem teve esse tipo de problema?
tenho uma placa de video ATI 9600 e ao habilitar a aceleracao grafica via fglrx o arquivo de log (/var/log/Xorg.0.log) da a seguinte mensagem:

(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_EINVAL"
(EE) fglrx(0): cannot init AGP
(II) fglrx(0): [drm] removed 1 reserved context for kernel
(II) fglrx(0): [drm] unmapping 8192 bytes of SAREA 0xd0c0a000 at 0xb7b04000
(WW) fglrx(0): ***********************************************
(WW) fglrx(0): * DRI initialization failed!                  *
(WW) fglrx(0): * (maybe driver kernel module missing or bad) *
(WW) fglrx(0): * 2D acceleraton available (MMIO)             *
(WW) fglrx(0): * no 3D acceleration available                *
(WW) fglrx(0): ********************************************* *

Alguem pode me ajudar?
Obrigado!
-=[ L'Ange Rouge 2006 ]=-

L'ANGEROUGE

Descobri que esse erro decorre de uma informacao passada incorretamente pela BIOS ao Linux. A quantidade de memoria Ram passada não eh valida, algo em torno de 1 também, e pode ser constatado com o seguinte comando no termnial:

cat /proc/mtrr

caso esta linha de comando retorne o seguinte valor:
reg00: base=0x00000000 ( 0MB), size=984064MB: write-back, count=1

significa que voce precisarah definir na mao a quantidade de memoria RAM do seu pc.
Para isso, vc deve editar um script:

sudo gedit /etc/init.d/fix_mtrr

depois copie e cole o seguinte trecho no arquivo fix_mtrr:

#!/bin/sh
# Fix wrong MTRR setting

echo "disable=0" >| /proc/mtrr
echo "base=0x00000000  size=<SIZE HERE> type=write-back" >| /proc/mtrr
#echo "base=0x00000000  size=0x08000000 type=write-combining" >| /proc/mtrr

Substitua o <SIZE HERE> com o numero em hexadecimal da respectiva quantidade de memoria ram que seu pc dispoe:
0x10000000 = 256 MB
0x20000000 = 512 MB
0x40000000 = 1024 MB
0x80000000 = 2048 MB

Por exemplo, caso vc tenha 256MB o seu arquivo fix_mtrr seria:
#!/bin/sh
# Fix wrong MTRR setting

echo "disable=0" >| /proc/mtrr
echo "base=0x00000000  size=0x10000000 type=write-back" >| /proc/mtrr
#echo "base=0x00000000  size=0x08000000 type=write-combining" >| /proc/mtrr

Concluido o arquivo fix_mtrr, salve-o e feche-o. Retornando ao terminal dê a permissao para execucao ao arquivo:
sudo chmod +x fix_mtrr

Finalmente a parte mais chata, fiquei um dia batendo cabeça com isso. Pois os relatos que encontrei na net mandavam criar um link simbolico no rcS.d mas no Ubuntu nao funcionou nem por decreto. Ai alterei-o para o rc2.d e ai tudo se resolveu. Enfim, digite os seguintes comandos:
cd /etc/rc2.d/
sudo ln -s ../init.d/fix_mtrr S03fix_mtrr

Pronto!
Agora reinicie o seu pc.

Apos ter reiniciado a maquina, para testar, dê o comando:
cat /proc/mtrr

E voce deverah visualizar o valor correto da quantidade de memoria ram disponivel no seu pc. Exemplo para 512MB:
reg00: base=0x00000000 (   0MB), size= 512MB: write-back, count=1
reg01: base=0xd0000000 (3328MB), size= 128MB: write-combining, count=1
reg02: base=0xf0000000 (3840MB), size= 128MB: write-combining, count=1

E para confirmar o funcionamento da sua placa ati, dê o seguinte comando:
fgl_glxgears

Espero ter contribuido.
Bom, gostaria de aproveitar pra agradecer o help q o LEDSTYLLE me deu esses dias.
=]
-=[ L'Ange Rouge 2006 ]=-