Cher journal,
ca fait maintenant 1 mois que j'ai une nouvelle machine mais l'accéleration graphique de mon ati 9600 pro ne marchait pas :(
apres de longues recherche, quelques cafés, j'arrive enfin à une solution.
Je vais essayé de resumer ma demarche le plus clairement possible.
sans trop de succés. depuis j'ai continué ma recherche et aujourd'hui ca marche !
Config materielle : cm : a7v8x-x, ati 9600 pro, amd athlon 2200+
distrib : debian sid
gcc : gcc version 3.2.3 (Debian)
X : XFree86 Version 4.2.1.1 (Debian 4.2.1-12.1 20031003005825 james@nocrew.org) / X Window System
voici ma demarche :
j'ai compile un noyau 2.6.0-test7 avec le support de l'agp inclus dedans ainsi que le support des chips VIA.
le DRM _n'est pas_ du tout compile, ni en module ni dans le noyau. Apres une compil de l'ensemble + reboot, un dmesg | grep agp me donne :
Linux agpgart interface v0.100 (c) Dave Jones
Detected VIA KT400/KT400A/KT600 chipset
Maximum main memory to use for agp memory: 439M
agpgart: AGP aperture is 1024M @ 0x80000000
ensuite j'ai pris la derniere version des drivers ati sur leur site :
fglrx-glc22-4.2.0-3.2.8.i586.rpm
un petit alien pour convertir ca en deb
puis dpkg -i --force-overwrite fglrx-glc22_4.2.0-4.2_i386.deb
il installe differentes lib etc mais le plus important ce deroule ici : /lib/modules/fglrx/build_mod/
lorsque je compilais (./make.sh) j'avais un warning
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function `__ke_get_vm_phys_addr':
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1511: warning: implicit declaration of function `VMALLOC_VMADDR'
et lorsqu'on load le module, le noyau rale.
j'ai donc cherché d'ou venait ce pb et je l'ai resolu en ajoutant :
#define VMALLOC_VMADDR(x) ((unsigned long)(x)) dans firegl_public.c
cette ligne provient du fichier : /usr/include/asm/pgtable.h
apres avoir compilé et chargé ce nouveau module, lors du lancement de X, j'avais un beau :
Unable to handle kernel paging request at virtual address e096c320
printing eip:
e096c320
*pde = 1fe78067
*pte = 00000000
Oops: 0000 [#4]
CPU: 0
EIP: 0060:[__crc_agp_memory_reserved+848724/2737961] Tainted: PEFLAGS: 00013292
EIP is at 0xe096c320
eax: 00000001 ebx: e0af4780 ecx: ffffffff edx: 69746e65
esi: e0af3a78 edi: df6f1a40 ebp: e0af47b0 esp: ddfbff18
ds: 007b es: 007b ss: 0068
Process XFree86 (pid: 411, threadinfo=ddfbe000 task=de2de7c0)
Stack: e0aceb34 69746e65 444d4163 df6f1a40 e0af4780 e0af4780 e0af3a78 df6f1a40
e0ad7d20 1f000b0a e0ace76b e0af4780 e0ade445 e0af4780 bffffb64 00000004
de2de7c0 e0af391c 1f000b0a e0ade3a0 e0acf2a6 dd7b9140 dfb1cf40 40046432
Call Trace:
[__crc_agp_memory_reserved+2300776/2737961] __ke_amd_adv_spec_cache_feature+0x14/0x90 [fglrx]
[__crc_agp_memory_reserved+2338132/2737961] _r6x_CheckAGPCommand+0x130/0x190 [fglrx]
[__crc_agp_memory_reserved+2299807/2737961] __ke_agp_enable+0x3b/0x40 [fglrx]
[__crc_agp_memory_reserved+2364537/2737961] drm_agp_enable+0xa5/0xf0 [fglrx]
[__crc_agp_memory_reserved+2364372/2737961] drm_agp_enable+0x0/0xf0 [fglrx]
[__crc_agp_memory_reserved+2302682/2737961] firegl_ioctl+0x146/0x1b0 [fglrx]
[sys_ioctl+181/560] sys_ioctl+0xb5/0x230
[syscall_call+7/11] syscall_call+0x7/0xb
Code: Bad EIP value.
et X plante :( ecran noir :(
bref desespéré et n'ayant plus rien a perdre je vais voir pourquoi cette fonction (__ke_amd_adv_spec_cache_feature) plante. Le contenu est tres simple, elle permet d'identifier le type du processeur et de retourner un 1 ou 0 si c'est un amd athlon et si la famille et le model sont egale a 6 ou la famille egale a 6. rien de plus !
j'ai effacé tout le contenu de cette fonction et je retourne tout le tps 0.
voila ma nouvelle fonction :
int __ke_amd_adv_spec_cache_feature(void)
{
return 0;
}
j'ai aussi effacé la fonction static int __init have_cpuid_p(void) qui ne sert plus a rien.
une recompilation, un reboot pour bien dechargé le precedent module et là 'oh miracle, tout marche' !
un petit tour par : glxinfo | grep OpenGL me donne
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon 9600 Athlon (3DNow!)
OpenGL version string: 1.3 (X4.2.0-3.2.8)
glxinfo me donne 1900 fps !
quake3, ut tournent niquel ! l'affichage en 2D est aussi plus fluide.
j'ai pas encore tester ut2003 mais je ne me fais pas trop de soucis :)
j'espere avoir été clair et que cette explication va pouvoir aider ceux d'entre vous qui ne peuvaient pas jouer sous notre cher pingouin os.
# Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Marc (site web personnel) . Évalué à 0.
Me semble que si, et ça evite d'utiliser les pilotes de chez ATI (qui chez moi, merdent total, et de toute facon, capucaipalibre)
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Jump3R (site web personnel) . Évalué à 1.
Mais d'apres le site, seules les cartes ati Mach64 Radeon et Rage128 sont supportées.
Je me trompe ?
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Marc (site web personnel) . Évalué à 1.
ma 8500 (r200) marche, mon autre 7500 marche. Ca fait aussi tourner des 9xxx. Après faut voir les details précis. Mais l'installation sur une debian est super simple.
Tu rajoutes les lignes qui vont bien dans ton sources.list, t'installes 2 ou 3 paquets, un coup de make-kpkg pour le drm, et ca marche (en principe).
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
Sinon je trouve que c'est quand même une drole d'idee que de vouloir mettre un binaire proprio +/- stable sur un kernel +/- fonctionnel et qui n'est aux vues des tests intéressant que pour les systèmes multiprocesseurs.
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par durandal . Évalué à 1.
Y'a quand même de grosses améliorations au niveau de l'interactivité et X-Window en profite pas mal, donc c'est aussi beaucoup mieux au niveau desktop (j'ai pas encore pu tester, le test6 démarrait pas mais je vais rééessayer, moi aussi je veux accélérer ma souris :)
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Marc (site web personnel) . Évalué à 1.
Parceque moi, j'ai pas xfree 4.3 dans la sid. Il faut passer par les paquet du dri pour avoir qqch de plus recent ;)
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Jump3R (site web personnel) . Évalué à 1.
deb http://people.debian.org/~mmagallo/packages/xfree86/$(ARCH(...))/ ./
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Marc (site web personnel) . Évalué à 1.
Merci pour le tuyaux :)
# Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Mathieu Pillard (site web personnel) . Évalué à 1.
Maximum main memory to use for agp memory: 439M
agpgart: AGP aperture is 1024M @ 0x80000000
^^ ca normalement c'est pas du tout bon signe, a moins que tu as 2go de ram... (ca veut dire que il peut en chopper jusqua 1go pour l'utiliser comme de la memoire video... d'habitude on laisse ca a 64mo...)
Et ca montre bien que l'agp3 (automatiquement activé par les chipsets KT400/KT400A/KT600 quand ya une carte video recente de branchee) a du mal avec linux. - personellement, avec une nvidia et la meme carte mere, jai des jolis caracteres cabalistiques ou pas d'acceleration du tout -
Sinon, j'ai lu autre part que les drivers ati utilisent _pas_ le driver kt400 mais le driver via generic, yen a d'autres qui en modifiant ce petit detail ont reussi a faire marcher leur truc (mais ils n'avaient pas le message d'agpgart que tu as)
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Mathieu Pillard (site web personnel) . Évalué à 1.
http://csociety-ftp.ecn.purdue.edu/pub/gentoo-portage/media-video/a(...)
Visiblement d'autres ont eu le meme probleme que toi, leur solution est ptet juste un peu moins bourrin :)
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Jump3R (site web personnel) . Évalué à 1.
j'ai 512 de ddr + 256 de ddr sur la carte video.
j'ai aussi modifié la valeur dans le bios de la taille de cette memoire en la mettant à 256 Mo (= moitie de ma ram)
[^] # Re: L'accélération de mon ati 9600 pro marche enfin. Explications
Posté par Mathieu Pillard (site web personnel) . Évalué à 1.
Enfin normalement avec une carte embarquant autant de memoire, tu devrais pas en avoir vraiment besoin donc tout va bien :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.