Method: Install the appropriate build-deps for these git checkouts from freedesktop.org. This should be solved mostly by apt-get build-dep xserver-xorg.
mesa: mesa_7_0_branch (don't actually install this, just have it handy for building xserver) xorg-macros: master libXfont: libXfont-1.2-branch xserver: server-1.4-branch xf86-input-evdev: 0405f7b xf86-input-keyboard: ae630ae xf86-input-mouse: abc65be Then, using the notes below, and perhaps the git building instructions for xserver on freedesktop.org, build these into a X server executable in a convenient prefix. For use on 2.6.29, you will need to patch your fglrx kernel module source as follows: <contained in attachment> In addition, you will need to link/copy from the kernel source root: drivers/acpi/acpica/ into your linux-headers-VERSION/include/acpi/acpica , due to dirty things the fglrx driver does. Instructions, patch, and notes adapted from various internet forums, firstly http://www.phoronix.com/forums/showthread.php?t=16173 NOTES: for building xserver: ./configure --prefix=/opt/gfx-test --with-xkb-path=/usr/share/X11/xkb --enable-glx --with-mesa-source=/home/user/mesa for libXfont to work, you will need to use this patch: diff --git a/src/FreeType/fttools.c b/src/FreeType/fttools.c index 5393558..36a59b9 100644 --- a/src/FreeType/fttools.c +++ b/src/FreeType/fttools.c @@ -44,11 +44,9 @@ #include "ft.h" /* backward compatibility hack */ -#if (FREETYPE_VERSION < 2001008) # ifndef ft_isdigit # define ft_isdigit isdigit # endif -#endif #ifndef LSBFirst #define LSBFirst 0 A smarter path to accomplish this for the interested may be to hack the symbol/api bits fglrx and it's dri want back into xserver-1.[56], but I don't know how successful such an endeavor could be, especially with newer upcoming Mesa/Gallium/DRI versions probably obsoleting this. The above would of course need much cleaning to be packagable, and reminds me of the bad old days of needing 16 different X servers, but would be workable for the stubborn.
diff -Nparu a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2009-01-23 20:00:26.000000000 -0200
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2009-02-13 15:25:00.000000000 -0200
@@ -1460,7 +1460,11 @@ KCL_TYPE_Pid ATI_API_CALL KCL_GetTgid(vo
*/
KCL_TYPE_Uid ATI_API_CALL KCL_GetEffectiveUid(void)
{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+ return current->cred->euid;
+#else
return current->euid;
+#endif
}
/** /brief Delay execution for the specified number of microseconds
@@ -1832,15 +1836,30 @@ int ATI_API_CALL KCL_PosixSecurityCapChe
*/
void ATI_API_CALL KCL_PosixSecurityCapSetIPCLock(unsigned int lock)
{
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+ struct cred *new = prepare_creds();
+ if (!new) {
+ printk(KERN_ERR "fglrx: could not allocate memory\n");
+ return;
+ }
+#else
+#define new current
+#endif
if (lock == 0 )
{
- cap_lower(current->cap_effective, CAP_IPC_LOCK);
+ cap_lower(new->cap_effective, CAP_IPC_LOCK);
}
else
{
- cap_raise(current->cap_effective, CAP_IPC_LOCK);
+ cap_raise(new->cap_effective, CAP_IPC_LOCK);
}
- return;
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+ commit_creds(new);
+#else
+#undef new
+#endif
}
/** \brief Get number of available RAM pages
diff -Nparu a/common/lib/modules/fglrx/build_mod/firegl_public.h b/common/lib/modules/fglrx/build_mod/firegl_public.h
--- a/common/lib/modules/fglrx/build_mod/firegl_public.h 2009-01-23 20:00:26.000000000 -0200
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.h 2009-02-16 14:02:50.000000000 -0300
@@ -18,6 +18,7 @@
#define _FIREGL_PUBLIC_H_
#include <stdarg.h>
+#include <asm/pgtable.h>
#include "kcl_pci.h"
#include "kcl_io.h"
@@ -590,6 +591,11 @@ extern unsigned long KCL_SYSINFO_
#define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
#endif
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+#undef pgprot_writecombine
+#undef pgprot_noncached
+#endif
+
#ifndef pgprot_writecombine
#define pgprot_writecombine(prot) __pgprot((pgprot_val(prot) & ~(_PAGE_PCD)) | _PAGE_PWT)
#endif
@@ -598,6 +604,7 @@ extern unsigned long KCL_SYSINFO_
#define pgprot_noncached(prot) __pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)
#endif
+
#endif //FIREGL_USWC_SUPPORT
diff -Nparu a/common/lib/modules/fglrx/build_mod/kcl_acpi.c b/common/lib/modules/fglrx/build_mod/kcl_acpi.c
--- a/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2009-01-23 20:00:26.000000000 -0200
+++ b/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2009-02-13 15:25:00.000000000 -0200
@@ -18,6 +18,12 @@
#include <linux/autoconf.h>
#include <linux/acpi.h>
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)
+#include <acpi/acpica/acconfig.h>
+#include <acpi/acpica/aclocal.h>
+#include <acpi/acpica/acobject.h>
+#endif
+
#include "kcl_config.h"
#include "kcl_type.h"
#include "kcl_acpi.h"
#include "kcl_acpi.h"
signature.asc
Description: OpenPGP digital signature

