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