Freekazonid
29.10.04, 13:34
Ergänzend zu Anleitungen, die die Einrichtung von den ati treibern unter fc2 Beschreiben [1], moechte ich einen Hinweis geben der fast nie erwaehnt wird:
bei manchen Usern scheitert die Konfiguration bei dem
sh make.sh
, wo eine Fehlermeldung so oder so ähnlich kommt
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c: In function `agp_generic_alloc_page':
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:1405: error: structure has no member named `count'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c: In function `ali_alloc_page':
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:4416: error: structure has no member named `count'
make[2]: ** [/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.o] Erro 1
make[1]: ** [_module_/lib/modules/fglrx/build_mod/2.6.x] Erro 2
make[1]: Leaving directory `/usr/src/linux-2.6.6-1.435'
make: ** [kmod_build] Erro 2
um Abhilfe zu schaffen, hilft ein kleiner Patch, der nach den beiden anderen eingespielt wird. der Patch sieht so aus
diff -uprN build_mod-mreg_new/agpgart_be.c build_mod-mreg_new-mm/agpgart_be.c
--- build_mod-mreg_new/agpgart_be.c 2004-05-15 03:45:48.000000000 +0300
+++ build_mod-mreg_new-mm/agpgart_be.c 2004-05-15 03:18:30.000000000 +0300
@@ -1402,7 +1402,8 @@ unsigned long agp_generic_alloc_page(voi
}
#endif
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
@@ -4413,7 +4414,8 @@ static unsigned long ali_alloc_page(void
if (page == NULL)
return 0;
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
diff -uprN build_mod-mreg_new/firegl_public.c build_mod-mreg_new-mm/firegl_public.c
--- build_mod-mreg_new/firegl_public.c 2004-05-15 03:45:06.000000000 +0300
+++ build_mod-mreg_new-mm/firegl_public.c 2004-05-15 03:25:13.000000000 +0300
@@ -2066,7 +2066,8 @@ static vm_nopage_ret_t vm_shm_nopage(str
pMmPage = virt_to_page(kaddr);
#endif /* LINUX_VERSION_CODE < 0x020400 */
- atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ //atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ get_page(pMmPage);
#if LINUX_VERSION_CODE >= 0x020400
// __KE_DEBUG3("vm-address 0x%08lx => kernel-page-address 0x%p\n",
dieser Code wird in eine Datei gespeichert, Endung mit Patch zwecks Wiedererkennung, und wird nach den beiden anderen Patches eingespielt, d.h. nach dem
patch -p1 < /path/to/fglrx-3.7.6-fedora.patch
patch -p1 < /path/to/fglrx-3.7.6-regparm.patc
folgt ein
patch -p1 < /path/to/posted_patch.patch
anschliessend wird normal nach dem Tutorial weiter fortgefahren, d.h. mit
sh make.sh
was nun gehen sollte.
[1] http://www.redhat.com/archives/fedora-list/2004-May/msg06859.html
bei manchen Usern scheitert die Konfiguration bei dem
sh make.sh
, wo eine Fehlermeldung so oder so ähnlich kommt
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c: In function `agp_generic_alloc_page':
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:1405: error: structure has no member named `count'
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c: In function `ali_alloc_page':
/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.c:4416: error: structure has no member named `count'
make[2]: ** [/lib/modules/fglrx/build_mod/2.6.x/agpgart_be.o] Erro 1
make[1]: ** [_module_/lib/modules/fglrx/build_mod/2.6.x] Erro 2
make[1]: Leaving directory `/usr/src/linux-2.6.6-1.435'
make: ** [kmod_build] Erro 2
um Abhilfe zu schaffen, hilft ein kleiner Patch, der nach den beiden anderen eingespielt wird. der Patch sieht so aus
diff -uprN build_mod-mreg_new/agpgart_be.c build_mod-mreg_new-mm/agpgart_be.c
--- build_mod-mreg_new/agpgart_be.c 2004-05-15 03:45:48.000000000 +0300
+++ build_mod-mreg_new-mm/agpgart_be.c 2004-05-15 03:18:30.000000000 +0300
@@ -1402,7 +1402,8 @@ unsigned long agp_generic_alloc_page(voi
}
#endif
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
@@ -4413,7 +4414,8 @@ static unsigned long ali_alloc_page(void
if (page == NULL)
return 0;
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
diff -uprN build_mod-mreg_new/firegl_public.c build_mod-mreg_new-mm/firegl_public.c
--- build_mod-mreg_new/firegl_public.c 2004-05-15 03:45:06.000000000 +0300
+++ build_mod-mreg_new-mm/firegl_public.c 2004-05-15 03:25:13.000000000 +0300
@@ -2066,7 +2066,8 @@ static vm_nopage_ret_t vm_shm_nopage(str
pMmPage = virt_to_page(kaddr);
#endif /* LINUX_VERSION_CODE < 0x020400 */
- atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ //atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ get_page(pMmPage);
#if LINUX_VERSION_CODE >= 0x020400
// __KE_DEBUG3("vm-address 0x%08lx => kernel-page-address 0x%p\n",
dieser Code wird in eine Datei gespeichert, Endung mit Patch zwecks Wiedererkennung, und wird nach den beiden anderen Patches eingespielt, d.h. nach dem
patch -p1 < /path/to/fglrx-3.7.6-fedora.patch
patch -p1 < /path/to/fglrx-3.7.6-regparm.patc
folgt ein
patch -p1 < /path/to/posted_patch.patch
anschliessend wird normal nach dem Tutorial weiter fortgefahren, d.h. mit
sh make.sh
was nun gehen sollte.
[1] http://www.redhat.com/archives/fedora-list/2004-May/msg06859.html