Announcement

Collapse
No announcement yet.

fglrx 8.32.5 and kernel 2.6.20

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    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?
    Michael Larabel
    https://www.michaellarabel.com/

    Comment


    • #3
      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

      Comment


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

        Aries

        Comment

        Working...
        X