Ati Radeon Proprietary drivers 8.24.8: fglrx module on kernel 2.6.16 - Xorg 7
Manolis Nazlidis
emnazli at ath.forthnet.gr
Sat Apr 29 00:22:37 EEST 2006
Kalhspera se olous.
Meta apo arketes ores psaksimatos sto google brika pos mporei kaneis na
kanei toys odhgoys gia kartes grafikon ths seiras ATI Radeon na
doulevoyn se Xorg 7. Paratheto edo osa anakalypsa mhpos endiaferoyn
kapoious me paromoio hardware, oste na mhn psaxnoun.
1. Kanoume to programma egkatastashs kat arxhn na nomizei oti trexoyme
Xorg 6.9, exontas ypopsin oti afto ginetai apo th metablith
periballonots `X_VERSION' kai me thn timh `x690'
2. Kanoume thn egkatastash kanonika (afto einai ligo mpakalikh texnikh,
alloste h egkatastash tha apotyxei). Oloi oi odhgoi einai topothetimenoi
kato apo to /usr/X11R6/lib/{,modules,modules/drivers,modules/dri}. Afto
poy menei gia na doulepsoyn einai na antigrapsoyme ta arxeia ekei poy
einai egaktesthmenoi oi drivers gia to Xorg 7, eg usr/lib/xorg/....
3. Antigrafoyme kai ta executables toy /usr/X11R6/bin sto /usr/bin
kathos kai oti alla sxetika arxeia einai aparaithta.
Gia linux kernel 2.6.16:
To module fglrx den kanei sosta compilation se kernel 2.6.16.
Exo brei epishs merika skorpia patches gia afto.
1. To patch gia to ./firegl_public.c to brhka se arketes listes kai to
paratheto aftousio.
[Oi klhseis inter_module_* einai depricated.
Typika ginetai compile toy fglrx module kai xoris afto to patch alla
prepei kaneis na ksanariksei mesa ston pyrhna to
/usr/src/kernels/linux-2.6.16/kernel/intermodule.c]
diff -cr fglrx/build_mod/firegl_public.c
fglrx-2.6.16/build_mod/firegl_public.c
*** fglrx/build_mod/firegl_public.c 2006-04-11 23:59:33.000000000 +0300
--- fglrx-2.6.16/build_mod/firegl_public.c 2006-04-25 00:31:31.000000000
+0300
***************
*** 361,373 ****
} firegl_drm_stub_info_t;
static firegl_drm_stub_info_t firegl_stub_info;
! #if LINUX_VERSION_CODE < 0x020400
struct firegl_drm_stub_info_t *firegl_stub_pointer = NULL;
#define inter_module_put(x)
#define inter_module_unregister(x)
#define inter_module_get_request(x,y) firegl_stub_pointer
#define inter_module_register(x,y,z) do { firegl_stub_pointer = z;
} while (0)
/* This is a kludge for backward compatibility that is only useful in
DRM(stub_open) */
#define fops_put(fops) MOD_DEC_USE_COUNT
#define fops_get(fops) (fops); MOD_INC_USE_COUNT
#endif // LINUX_VERSION_CODE < 0x020400
--- 361,375 ----
} firegl_drm_stub_info_t;
static firegl_drm_stub_info_t firegl_stub_info;
! #if LINUX_VERSION_CODE > 0x02060F
struct firegl_drm_stub_info_t *firegl_stub_pointer = NULL;
#define inter_module_put(x)
#define inter_module_unregister(x)
#define inter_module_get_request(x,y) firegl_stub_pointer
#define inter_module_register(x,y,z) do { firegl_stub_pointer = z;
} while (0)
/* This is a kludge for backward compatibility that is only useful in
DRM(stub_open) */
+ #endif
+ #if LINUX_VERSION_CODE < 0x020400
#define fops_put(fops) MOD_DEC_USE_COUNT
#define fops_get(fops) (fops); MOD_INC_USE_COUNT
#endif // LINUX_VERSION_CODE < 0x020400
2.
a) O compiler ebgaze omos kai to parakato lathos [gcc 4.1.0, se
ekdoseis kato apo 4 den prepei na yparxei problhma logika]
./firegl_agpgart/firegl_wrap.c:171: error: static declaration of ¡errno¢
follows non-static declaration
/usr/src/kernels/linux-2.6.16/include/linux/unistd.h:4: error: previous
declaration of ¡errno¢ was here
Nomizo aftoy toy eidoys ta lathh parousiastikan arketes fores apo thn
emfanish toy gcc 4 kai exoyn typika patches sta sources. Paratheto kai
afto to patch.
b) Akoma eixa ena warning:
*** Warning: "verify_area"
[/lib/modules/fglrx-2.6.16/build_mod/firegl_agpgart/fglrx_agp.ko] undefined!
Patch gia afto yphrxe kai se prohgoymenes ekdoseis ton odhgon. To paratheto
diff -cr fglrx/build_mod/firegl_agpgart/firegl_wrap.c
fglrx-2.6.16/build_mod/firegl_agpgart/firegl_wrap.c
*** fglrx/build_mod/firegl_agpgart/firegl_wrap.c 2006-04-11
23:59:33.000000000 +0300
--- fglrx-2.6.16/build_mod/firegl_agpgart/firegl_wrap.c 2006-04-28
23:09:24.000000000 +0300
***************
*** 168,174 ****
#if !defined(__ia64__)
// the macros do use errno variable
! static int errno;
#endif // __ia64__
// int mlock(const void *addr, size_t len);
--- 168,174 ----
#if !defined(__ia64__)
// the macros do use errno variable
! int errno;
#endif // __ia64__
// int mlock(const void *addr, size_t len);
***************
*** 1120,1126 ****
--- 1120,1130 ----
int ATI_API_CALL __ke_verify_area(int type, const void * addr,
unsigned long size)
{
diff -cr fglrx/build_mod/firegl_agpgart/firegl_agp.c
fglrx-2.6.16/build_mod/firegl_agpgart/firegl_agp.c
*** fglrx/build_mod/firegl_agpgart/firegl_agp.c 2006-04-11
23:59:33.000000000 +0300
--- fglrx-2.6.16/build_mod/firegl_agpgart/firegl_agp.c 2006-04-25
00:56:54.000000000 +0300
***************
*** 292,297 ****
--- 292,306 ----
static const fglrx_agp_t *fglrx_agp_stub = NULL;
+ #if LINUX_VERSION_CODE > 0x02060F
+ struct firegl_drm_stub_info_t *firegl_stub_pointer = NULL;
+ #define inter_module_put(x)
+ #define inter_module_unregister(x)
+ #define inter_module_get_request(x,y) firegl_stub_pointer
+ #define inter_module_register(x,y,z) do { firegl_stub_pointer = z;
} while (0)
+ /* This is a kludge for backward compatibility that is only useful in
DRM(stub_open) */
+ #endif
+
/* init_module is called when insmod is used to load the module */
static int __init firegl_agp_init(void)
{
+ #ifdef access_ok
+ return access_ok(type,addr,size) ? 0 : -EFAULT;
+ #else
return verify_area(type, addr, size);
+ #endif
}
int ATI_API_CALL __ke_get_pci_device_info(__ke_pci_dev_t* dev,
__ke_pci_device_info_t *pinfo)
3. To idio akrivos patch me to 1, alla sto ./firegl_agpgart/firegl_agp.c
Afto to patch den to brika kapou, alla to antegrapsa sxedon sta tyfla
(xoris na eimai katholou sigoyros gia thn orthotha toy) apo to patch toy
./firegl_public.c
diff -cr fglrx/build_mod/firegl_agpgart/firegl_agp.c
fglrx-2.6.16/build_mod/firegl_agpgart/firegl_agp.c
*** fglrx/build_mod/firegl_agpgart/firegl_agp.c 2006-04-11
23:59:33.000000000 +0300
--- fglrx-2.6.16/build_mod/firegl_agpgart/firegl_agp.c 2006-04-25
00:56:54.000000000 +0300
***************
*** 292,297 ****
--- 292,306 ----
static const fglrx_agp_t *fglrx_agp_stub = NULL;
+ #if LINUX_VERSION_CODE > 0x02060F
+ struct firegl_drm_stub_info_t *firegl_stub_pointer = NULL;
+ #define inter_module_put(x)
+ #define inter_module_unregister(x)
+ #define inter_module_get_request(x,y) firegl_stub_pointer
+ #define inter_module_register(x,y,z) do { firegl_stub_pointer = z;
} while (0)
+ /* This is a kludge for backward compatibility that is only useful in
DRM(stub_open) */
+ #endif
+
/* init_module is called when insmod is used to load the module */
static int __init firegl_agp_init(void)
{
Episynapto kai oloklhro to patch (elpizo afto na mhn prokalei problhma
sth list).
Se emena ola ta pio pano ekanan thn ATI-X300 na doulevei me
3D-Acceleration. Parakalo an breite pos otidhpote apo ta parapano einai
lathos, eite exete ta dika sas patch let me know ;)
Elpizo oti oi epomenoi proprietary drivers apo thn ATI tha yposthrizoyn
Xorg7 kai ta kernel modules tha kanoyn compile correctly ;->
Exei kaneis dokimasei toys DRI drivers apo to freedesktop???
Me ektimhsh se olous,
Manolis Nazlidis.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fglrx-8.24.patch
Type: text/x-patch
Size: 3514 bytes
Desc: not available
URL: <http://lists.hellug.gr/pipermail/linux-greek-users/attachments/20060429/93d1b2c4/attachment.bin>
More information about the Linux-greek-users
mailing list