Aries2747
04-05-2007, 12:43 PM
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
Michael
04-05-2007, 01:12 PM
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?
Aries2747
04-06-2007, 03:53 AM
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
Aries2747
04-09-2007, 11:31 AM
The Problem is half solved, i now use the beyond sources 2.6.19.40 and with them it works good.
Aries
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.