Ati Radeon Proprietary drivers 8.24.8: fglrx module on kernel 2.6.16 - Xorg 7

Konstantinos Togias ktogias at math.upatras.gr
Sun Apr 30 13:52:53 EEST 2006


On 4/29/06, Manolis Nazlidis <emnazli at ath.forthnet.gr> wrote:
> 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.
>
>
>
> --
> linux-greek-users mailing list -- http://lists.hellug.gr
>
>

Στο Ubuntu Dapper με Χorg 7 ένα

$ sudo apt-get install xorg-driver-fglrx

κάνει όλη τη δουλειά... Μέχρι και xgl έστησα και έτρεξα μετά...

--
Konstantinos Togias
University Of Patras
Dept. of Mathematics




More information about the Linux-greek-users mailing list