+ Reply to Thread
Results 1 to 4 of 4

Thread: fglrx 8.32.5 and kernel 2.6.20

  1. #1
    Join Date
    Apr 2007
    Posts
    3

    Default fglrx 8.32.5 and kernel 2.6.20

    Hi @all

    I've got a Problem with the fglrx drivers newer than 8.32.5, the screen goes blank and top left is a not blinking cursor when i run startx, in the logs is nothing about warnings or errors, i can press ctrl-alt-del, it beeps one time and nothing happens, i can't switch back to the console.

    I have already told Ati through the linux driver feedback, but now i want to use kernel 2.6.20 because of the new ata layer and i have got the Problem that the 8.32.5 driver won't compile with the 2.6.20 Kernel (It's a little bit patched, reiser4 and the gensplash patch) even with the ati-drivers-2.6.20.patch supportet by the Gentoo Portage (I have edeited the .ebuild to use the 2.6.20 patch and it applies good) but it won't compile. I can't use 2.6.19 because of the unstable reiser4 Patches (They are unstable on my System).

    At the moment i use 2.6.18.8 with reiser4 and gensplash patches and everything works fine, but how i told you i want to use the new ata layer, which is not in the 2.6.18 Kernel.

    Aries

  2. #2

    Default

    What errors do you get when attempting to build the module? Is it the same patch that they took from my 8.35 Fedora script?

  3. #3
    Join Date
    Apr 2007
    Posts
    3

    Default

    This are the errors i become, when the patch is applied:

    >>> Compiling source in /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod ...
    * Building the DRM module...
    * Converting Makefile to use M= instead of SUBDIRS= ... [ ok ] * Preparing fglrx module
    make -C /usr/src/linux M=/var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod modules
    make[1]: Entering directory `/usr/src/linux-2.6.20.4'
    CC [M] /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.o
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:89:26: Fehler: linux/config.h: Datei oder Verzeichnis nicht gefunden
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:520: Warnung: Initialisierung von inkompatiblem Zeigertyp
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c: In Funktion »firegl_stub_open«:
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:643: Warnung: Zuweisung streicht Qualifizierer von Zeiger-Zieltyp
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c: In Funktion »firegl_put_user_ptr«:
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:1412: Warnung: Typkonvertierung von Zeiger auf Ganzzahl anderer Breite
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:1412: Warnung: Typkonvertierung von Zeiger auf Ganzzahl anderer Breite
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:1412: Warnung: Typkonvertierung von Zeiger auf Ganzzahl anderer Breite
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:1412: Warnung: Typkonvertierung von Zeiger auf Ganzzahl anderer Breite
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c: In Funktion »__ke_request_irq«:
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:2632: Warnung: Übergabe des Arguments 2 von »request_irq« von inkompatiblem Zeigertyp
    /var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c: In Funktion »__ke_unregister_ioctl32_conversion«:/var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.c:2655: Warnung: »return« mit Wert in void zurückgebender Funktion
    make[2]: *** [/var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod/firegl_public.o] Fehler 1
    make[1]: *** [_module_/var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/work/common/lib/modules/fglrx/build_mod] Fehler 2
    make[1]: Leaving directory `/usr/src/linux-2.6.20.4'
    make: *** [kmod_build] Fehler 2

    !!! ERROR: x11-drivers/ati-drivers-8.32.5-r1 failed.
    Call stack:
    ebuild.sh, line 1614: Called dyn_compile
    ebuild.sh, line 971: Called qa_call 'src_compile'
    ebuild.sh, line 44: Called src_compile
    ati-drivers-8.32.5-r1.ebuild, line 157: Called linux-mod_src_compile
    linux-mod.eclass, line 511: Called die

    !!! Unable to make GCC_VER_MAJ=4 KVER=2.6.20.4-Vita-x64 KDIR=/usr/src/linux kmod_build.
    !!! If you need support, post the topmost build error, and the call stack if relevant.
    !!! A complete build log is located at '/var/tmp/portage/x11-drivers/ati-drivers-8.32.5-r1/temp/build.log'.

    !!! This ebuild is from an overlay: '/usr/local/portage'

    There are much more when the Patch is not applied, and this is the patch:

    --- ATi/common/lib/modules/fglrx/build_mod/firegl_public.c.old 2007-03-28 21:39:58.000000000 -0400
    +++ ATi/common/lib/modules/fglrx/build_mod/firegl_public.c 2007-03-28 21:39:46.000000000 -0400
    @@ -23,6 +23,8 @@

    // ================================================== ==========
    #include <linux/version.h>
    +#include <linux/sched.h>
    +#include <linux/freezer.h>
    #ifdef MODVERSIONS
    #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,71)
    #include <linux/modversions.h>
    @@ -204,6 +204,70 @@
    int errno;
    #endif // __ia64__

    +#if defined(__i386__)
    +#define __syscall_return(type, res) \
    +do { \
    + if ((unsigned long)(res) >= (unsigned long)(-(128 + 1))) { \
    + errno = -(res); \
    + res = -1; \
    + } \
    + return (type) (res); \
    +} while (0)
    +#define _syscall2(type,name,type1,arg1,type2,arg2) \
    +type name(type1 arg1,type2 arg2) \
    +{ \
    +long __res; \
    +__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
    + : "=a" (__res) \
    + : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)) \
    + : "memory"); \
    +__syscall_return(type,__res); \
    +}
    +
    +#define _syscall3(type,name,type1,arg1,type2,arg2,type3,ar g3) \
    +type name(type1 arg1,type2 arg2,type3 arg3) \
    +{ \
    +long __res; \
    +__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
    + : "=a" (__res) \
    + : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)), \
    + "d" ((long)(arg3)) : "memory"); \
    +__syscall_return(type,__res); \
    +}
    +#elif defined(__x86_64__)
    +#define __syscall_clobber "r11","rcx","memory"
    +#define __syscall "syscall"
    +
    +#define __syscall_return(type, res) \
    +do { \
    + if ((unsigned long)(res) >= (unsigned long)(-127)) { \
    + errno = -(res); \
    + res = -1; \
    + } \
    + return (type) (res); \
    +} while (0)
    +#define _syscall2(type,name,type1,arg1,type2,arg2) \
    +type name(type1 arg1,type2 arg2) \
    +{ \
    +long __res; \
    +__asm__ volatile (__syscall \
    + : "=a" (__res) \
    + : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)) : __syscall_clobber ); \
    +__syscall_return(type,__res); \
    +}
    +
    +#define _syscall3(type,name,type1,arg1,type2,arg2,type3,ar g3) \
    +type name(type1 arg1,type2 arg2,type3 arg3) \
    +{ \
    +long __res; \
    +__asm__ volatile (__syscall \
    + : "=a" (__res) \
    + : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)), \
    + "d" ((long)(arg3)) : __syscall_clobber); \
    +__syscall_return(type,__res); \
    +}
    +#endif
    +
    // int mlock(const void *addr, size_t len);
    _syscall2(int, mlock, const void *, addr, size_t, len )
    // int munlock(const void *addr, size_t len);
    @@ -5005,15 +5069,9 @@

    DBG_TRACE("destroying slab object '%s'", slabcache_obj->name);

    - if (kmem_cache_destroy(slabcache_obj->cache) == 0)
    - {
    - ret = 1;
    - slabcache_obj->cache = NULL;
    - }
    - else
    - {
    - DBG_ERROR("destroying failed");
    - }
    + kmem_cache_destroy(slabcache_obj->cache);
    + ret = 1;
    + slabcache_obj->cache = NULL;

    DBG_LEAVE("%d", ret);
    return ret;

    I hope you can help me,

    Aries

  4. #4
    Join Date
    Apr 2007
    Posts
    3

    Default

    The Problem is half solved, i now use the beyond sources 2.6.19.40 and with them it works good.

    Aries

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts