HOWTO mini – ATI drajveri u novom 2.6.x kernelu

Podeli preko

U ovom mini FAQ-u objasnjeno je kako instalirati zvanicne ATI drajvere u novoj grani kernela.
Najnovija verzija kernela 2.6.x moze se skinuti sa http://www.kernel.org, a fglrx drajveri sa http://www.ati.com . Postupak instalacije kernela nije tema mini FAQ-a, i pretpostavljam da svi vi koji citate ovo znate kako se ceo postupak obavlja.1. Sta treba ukljuciti/iskljuciti u kernelu

Prilikom kompajliranja kernela i pravljenja .config fajla, bilo sa
‘make config’, ‘make menuconfig’ ili ‘make xconfig’, 
potrebno je uraditi sledece da bi vas ATI proradio:

– ukljuciti MTRR; lokacija – Procesor type and features-> MTRR
(Memory Type Range Register) support
– ukljuciti agpgart; lokacija – u Device Drivers-> Character
Devices-> /dev/agpgart (AGP Support), izaberete vas cipset, i
izaberite da se drajver kompajlira kao MODUL! ( i agpgart i drajver za
cipset)
-iskljuciti DRM; lokacija –  Device Drivers-> Character
Devices-> Direct Rendering Manager (XFree 4.1.0 and higher support)
– iskljuciti radeon podrsku za frame buffer : lokacija – u Device
Drivers-> Graphic Support-> Support for frame buffer Devices,
iskljuciti sve drajvere osim podrske za VESA VGA i VGA 16-color .

2. Instalacija drajvera iz rpm paketa

Skinute drajvere sa ATI-jevog sajta instalirajte klasicim
  rpm -Uhv .rpm
 ili ako bude problema
  rpm -i –force .rpm
 ili ako bude jos nekih problema ubacite ‘–nodeps’ switch’ .
Vise o tome moze se naci u readme fajlu, na istom mestu odakle ste
download-ovali drajver.

3. Patch-ovanje drajvera

Drajver kao takav nije prilagodjen novom kernelu, i mora se patchovati.
Obavezni patch koji ispravlja VMALLOC gresku, dug je samo 10 redova :

root@sale:/lib/modules/fglrx# cat fglrx-2.6-vmalloc-vmaddr.patch

diff -ruN build_mod.orig/firegl_public.c build_mod/firegl_public.c
— build_mod.orig/firegl_public.c     
2003-09-05 00:45:33.539384168 +0200
+++ build_mod/firegl_public.c   2003-09-05 00:47:13.193234480
+0200
@@ -129,7 +129,9 @@
         #define
pte_offset  pte_offset_map
     #endif
 #endif

+#ifndef VMALLOC_VMADDR
+#define VMALLOC_VMADDR(x)  ((unsigned long)(x))
+#endif
 // ============================================================
 #ifndef TRUE
 #define TRUE 1

Snimite ovih 10-ak redova od diff naredbe do kraja u
/lib/modules/fglrx/fglrx-2.6-vmalloc-vmaddr.patch
i patchujte firegl_public.c sa
  ‘patch -p0 < fglrx-2.6-vmalloc-vmaddr.patch' U slucaju da imate AMD procesor potrebno je primeniti i sledeci patch : root@sale:/lib/modules/fglrx/build_mod# cat fglrx-3.2.8-fix-amd-adv-spec.patch — firegl_public.c.orig        2003-09-22 04:43:30.000000000 +0200
+++ firegl_public.c     2003-10-09
00:14:41.337778176 +0200
@@ -3106,7 +3108,7 @@

 int __ke_amd_adv_spec_cache_feature(void)
 {
-#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE ==
KERNEL_VERSION(2,4,19)) )
+#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE >=
KERNEL_VERSION(2,4,19)) )
 /* the kernel already does provide a fix for the AMD Athlon
    big page attribute / cache flush data consistency
system bug on its own.
    (AMD claimed that CPU cache behaviour for such pages
is not specified.)

Ovaj patch snimite u
/lib/modules/fglrx/build_mod/fglrx-3.2.8-fix-amd-adv-spec.patch
i patchujte ponovo firegl_public.c sa
  ‘patch -p0 < fglrx-3.2.8-fix-amd-adv-spec.patch'
Nakon zavrsenog patchovanja, pokrenite make skriptu u
/lib/modules/fglrx/build_mod
  ‘/lib/modules/fglrx/build_mod/make.sh’
i kad build-ovanje modula bude zavrseno i make_install direktorijum
iznad :
  ‘/lib/modules/fglrx/make_install.sh’

Ukoliko se ne pojave poruke sa greskama, kompajliranje i ubacivanje
fglrx modula u kernel uspesno je zavrseno; da li je modul ucitan
proverite sa ‘lsmod | grep fglrx’

XF98Config-4 fajl koji je radio sa starim kernelom radice bez ikakvih
izmena i problema, a ako zelite da ga ponovo napravite, startujte
‘fglrxconfig’

Na kraju, ubacite u u /etc/modules.conf ili u rc.local ili negde drugde
u startup skriptama liniju ‘modprobe fglrx’ kako bi se modul ucitavao
pri startovanju sistema.

Restartujte sistem sa novim kernelom, startujte X i proverite radi li
3d akceleracija :
root@sale:/# uname -a
Linux sale 2.6.1 #2 Sun Jan 18 12:17:40 CET 2004 i686 unknown unknown
GNU/Linux
root@sale:/# glxinfo | grep direct
direct rendering: Yes
root@sale:/# glxgears
13464 frames in 5.0 seconds = 2692.800 FPS
14375 frames in 5.0 seconds = 2875.000 FPS
14377 frames in 5.0 seconds = 2875.400 FPS
14378 frames in 5.0 seconds = 2875.600 FPS

Autor: salac