Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
HOWTO ati-drivers-8.532 on zen-sources 2.6.27-rc
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Tue Aug 12, 2008 10:39 pm    Post subject: HOWTO ati-drivers-8.532 on zen-sources 2.6.27-rc Reply with quote

I wanted to post a message requesting help with running the latest fglrx on zen-2.6.27 at first. Fortunately I succeeded with my last desperate attempt therefore here it is. I guess it could work with other kernel flavours.

Disclaimer: it may blow up your computer or even kill your cat. Make sure you understand what it does. I take no credits, the second patch was a trivia. I am not C programmer, so be careful :-)

Step by step howto:

ati-drivers-8.512
Create private overlay if you have not already done so. Let's get the ebuild.
Code:
cd *YOUR OVERLAY*
mkdir -p x11-drivers/ati-drivers
cd x11-drivers/ati-drivers
mkdir files
wget http://data.radekdvorak.eu/private/ati-drivers/ati-drivers-8.512.ebuild


It is time to get the patches now.
Code:
cd files
wget http://data.radekdvorak.eu/private/ati-drivers/firegl_public.diff
wget http://data.radekdvorak.eu/private/ati-drivers/firegl_public.on_each_cpu.diff
cp -r /usr/portage/x11-drivers/ati-drivers/files/8.476 .
cp /usr/portage/x11-drivers/ati-drivers/files/atieventsd.init .
cp /usr/portage/x11-drivers/ati-drivers/files/libGL.la.in .


Create a digest, if necessary.
Code:
cd ..
ebuild ati-drivers-8.512.ebuild digest


Credits
The firegl_public.diff has been adapted from AJ Online. The firegl_public.on_each_cpu.diff is trivial oneliner - blame me for errors.


ati-drivers-8.532
Please use this ebuild and corresponding patch
Code:
http://data.radekdvorak.eu/private/ati-drivers/ati-drivers-8.532.ebuild
http://data.radekdvorak.eu/private/ati-drivers/fglrx_8.9_2.6.27.patch3


Impressions
Seems to run smoothly now. I gues that the problems I had before were caused by something else (nptl & mesa?)

Credits
This patch actuallly comes from ubuntu folks.
_________________
Only Sith deals in absolutes.


Last edited by Non_E on Wed Oct 08, 2008 9:09 pm; edited 2 times in total
Back to top
View user's profile Send private message
a.b.
Apprentice
Apprentice


Joined: 23 Mar 2008
Posts: 218
Location: Anus Mundi, Germany

PostPosted: Wed Aug 13, 2008 1:04 am    Post subject: Reply with quote

I wonder where to get zen 2.6.27 from but it works great with 2.6.26-zen2.1.
Back to top
View user's profile Send private message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Wed Aug 13, 2008 6:51 am    Post subject: Reply with quote

a.b. wrote:
I wonder where to get zen 2.6.27 from but it works great with 2.6.26-zen2.1.


From the first page of zen-sources thread (part IV):
Code:
First Time
Code:
cd /usr/src
git clone git://zen-sources.org/zen/kernel.git zen-sources
cd zen-sources

_________________
Only Sith deals in absolutes.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Sun Aug 17, 2008 12:43 am    Post subject: Reply with quote

Could you write exactly what to do (how to name, where to place files, and where to insert the command into ebuild) ?
I ended up with this
Code:
 * Failed Patch: firegl_public.diff !
 *  ( /home/mieszko/overlay/x11-drivers/ati-drivers/files/firegl_public.diff )
 *
 * Include in your bugreport the contents of:
 *
 *   /var/tmp/portage/x11-drivers/ati-drivers-8.512-r11/temp/firegl_public.diff-19688.out

 *
 * ERROR: x11-drivers/ati-drivers-8.512-r11 failed.
 * Call stack:
 *                      ebuild.sh, line 1858:  Called source '/home/mieszko/overlay/x11-drivers/ati-drivers/ati-drivers-8.512-r11.ebuild'
 *   ati-drivers-8.512-r11.ebuild, line   18:  Called epatch '/home/mieszko/overlay/x11-drivers/ati-drivers/files/firegl_public.diff'
 *                  eutils.eclass, line  324:  Called die
 * The specific snippet of code:
 *               die "Failed Patch: ${patchname}!"
 *  The die message:
 *   Failed Patch: firegl_public.diff!
 *
 * If you need support, post the topmost build error, and the call stack if relevant.

Could you write which ebuild you used (where was it from)?
Back to top
View user's profile Send private message
cheater1034
Veteran
Veteran


Joined: 09 Sep 2004
Posts: 1558

PostPosted: Sun Aug 17, 2008 1:05 am    Post subject: Reply with quote

patched ebuilds will go in the zen-overlay if needed ;)
_________________
IRC!: #zen-sources on irc.rizon.net
zen-kernel.org
--
Lost in android development land.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Sun Aug 17, 2008 5:32 am    Post subject: Reply with quote

But could you answer me here anyway?;)
I could learn something, and it migtht take some time to see this ebuild in zen-overlay..
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Sun Aug 17, 2008 4:56 pm    Post subject: Reply with quote

cheater1034 wrote:
patched ebuilds will go in the zen-overlay if needed ;)

So could you write one?
Zen sources are really fast, and great in general, but not usable for me without fglrx;(
Back to top
View user's profile Send private message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Sun Aug 17, 2008 6:05 pm    Post subject: Reply with quote

mieszkoslusarczyk wrote:
cheater1034 wrote:
patched ebuilds will go in the zen-overlay if needed ;)

So could you write one?
Zen sources are really fast, and great in general, but not usable for me without fglrx;(


Try updated howto.

cheater1034: It would be nice if the ebuild with patch could go into zen-overlay. However I am not C programmer which makes me uncapable of maintaining it. The ebuild is in the "Works for me" state.
_________________
Only Sith deals in absolutes.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Sun Aug 17, 2008 8:20 pm    Post subject: Reply with quote

It is also in "Works for me" state;)
Thank you very much!
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Mon Aug 25, 2008 9:38 am    Post subject: Reply with quote

Could you update your ebuild for the new ati drivers?
Back to top
View user's profile Send private message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Mon Aug 25, 2008 3:55 pm    Post subject: Reply with quote

Modifications to the ebuild are not sufficient to make new drivers run. The patches fail.
_________________
Only Sith deals in absolutes.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Wed Oct 01, 2008 8:42 am    Post subject: Reply with quote

How about the 8.9 drivers?
Back to top
View user's profile Send private message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Thu Oct 02, 2008 11:12 am    Post subject: Reply with quote

Hi, I have found some patches however I do not use it. It aplies cleanly and compiles fine. OpenGL and xv feels slower and cpu load higher. If you want, I will post them here when I return home.
_________________
Only Sith deals in absolutes.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Thu Oct 02, 2008 11:18 am    Post subject: Reply with quote

It'd be great;)
Back to top
View user's profile Send private message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Fri Oct 03, 2008 7:59 am    Post subject: Reply with quote

Code:
--- common/lib/modules/fglrx/build_mod/firegl_public.c.orig   2008-09-19 19:55:21.316408190 +0200
+++ common/lib/modules/fglrx/build_mod/firegl_public.c   2008-09-19 19:59:03.533967146 +0200
@@ -202,6 +202,13 @@
 #define preempt_enable()
 #endif
 
+/* Since 2.6.27 SMP_CALL_FUNCTION doesn't have a nonatomic/retry argument */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
+#define SMP_CALL_FUNCTION(func, info, retry, wait) smp_call_function(func, info, wait)
+#else
+#define SMP_CALL_FUNCTION(func, info, retry, wait) smp_call_function(func, info, retry, wait)
+#endif
+
 // ============================================================
 /* globals */
 
@@ -248,7 +255,7 @@
 const unsigned long __ke_LINUX_VERSION_CODE = LINUX_VERSION_CODE;
 
 // create global constants and hint symbols (i.e. for objdump checking)
-#ifdef MODVERSIONS
+#ifdef CONFIG_MODVERSIONS
 const unsigned long __ke_MODVERSIONS_State = 1;
 const char BUILD_KERNEL_HAS_MODVERSIONS_SET;
 #else
@@ -256,7 +263,7 @@
 const char BUILD_KERNEL_HAS_MODVERSIONS_CLEARED;
 #endif
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 const unsigned long __ke_SMP_State = 1;
 const char BUILD_KERNEL_HAS_SMP_SET;
 #else
@@ -2668,8 +2675,8 @@
 {
 /*Some kernel developer removed the export of symbol "flush_tlb_page" on 2.6.25 x86_64 SMP kernel.
   Define a simple version here.*/
-#if defined(__x86_64__) && defined(__SMP__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25))
-    on_each_cpu(KCL_flush_tlb_one, &va, 1, 1);
+#if defined(__x86_64__) && defined(CONFIG_SMP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25))
+    on_each_cpu(KCL_flush_tlb_one, &va, 1);
 #else
     flush_tlb_page(vma, va);
 #endif
@@ -3055,7 +3062,7 @@
 
 /*****************************************************************************/
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 static atomic_t cpus_waiting;
 
 static void deferred_flush(void* contextp)
@@ -3071,13 +3078,13 @@
    while (atomic_read(&cpus_waiting) > 0)
       barrier();
 }
-#endif /* __SMP__ */
+#endif /* CONFIG_SMP */
 
 int ATI_API_CALL __ke_flush_cache(void)
 {
-#ifdef __SMP__
+#ifdef CONFIG_SMP
     /* write back invalidate all other CPUs (exported by kernel) */
-   if (smp_call_function(deferred_flush, NULL, 1, 0) != 0)
+   if (SMP_CALL_FUNCTION(deferred_flush, NULL, 1, 0) != 0)
       panic("timed out waiting for the other CPUs!\n");
 
     /* invalidate this CPU */
@@ -3091,7 +3098,7 @@
 
    while (atomic_read(&cpus_waiting) > 0)
       barrier();
-#else /* !__SMP__ */
+#else /* !CONFIG_SMP */
 #if defined(__i386__) || defined(__x86_64__)
    asm volatile ("wbinvd":::"memory");
 #elif defined(__alpha__) || defined(__sparc__)
@@ -3099,7 +3106,7 @@
 #else
 #error "Please define flush_cache for your architecture."
 #endif
-#endif /* !__SMP__ */
+#endif /* !CONFIG_SMP */
 
     //for kernel 2.6.25, tlb_flush has been included when calling set_pages_*.
     #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
@@ -4796,7 +4803,7 @@
 void ATI_API_CALL KCL_CallFuncOnOtherCpus(firegl_void_routine_t func_to_call)
 {
 #ifdef CONFIG_SMP
-   smp_call_function( firegl_smp_func_parameter_wrap, (void*)func_to_call, 0, 1 );
+   SMP_CALL_FUNCTION( firegl_smp_func_parameter_wrap, (void*)func_to_call, 0, 1 );
 #endif
 }
 
@@ -4910,7 +4917,7 @@
    }
 
 #ifdef CONFIG_SMP
-   if (smp_call_function(KCL_setup_pat, NULL, 0, 1) != 0)
+   if (SMP_CALL_FUNCTION(KCL_setup_pat, NULL, 0, 1) != 0)
        return 0;
 #endif
    KCL_setup_pat(NULL);
@@ -4929,7 +4936,7 @@
     }
 
 #ifdef CONFIG_SMP
-    if (smp_call_function(KCL_restore_pat, NULL, 0, 1) != 0)
+    if (SMP_CALL_FUNCTION(KCL_restore_pat, NULL, 0, 1) != 0)
        return;
 #endif
     KCL_restore_pat(NULL);

_________________
Only Sith deals in absolutes.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Fri Oct 03, 2008 4:14 pm    Post subject: Reply with quote

Can you tell me which patches should I update/modify/delete, or could you just modify your howto?
Back to top
View user's profile Send private message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Sat Oct 04, 2008 11:42 am    Post subject: Reply with quote

Simply update the paths and substitute both patches with this new (fglrx_8.9_2.6.27.patch).

See my ebuild
Code:
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-8.522.ebuild,v 1.1 2008/08/22 20:01:58 lu_zero Exp $

IUSE="acpi debug"

inherit eutils multilib linux-mod toolchain-funcs versionator

DESCRIPTION="Ati precompiled drivers for recent chipsets"
HOMEPAGE="http://www.ati.com"
ATI_URL="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/"
SRC_URI="${ATI_URL}/ati-driver-installer-8-8-x86.x86_64.run"

LICENSE="AMD GPL-2 QPL-1.0 as-is"
KEYWORDS="~amd64 ~x86"

# The portage dep is for COLON_SEPARATED support in env-update.
# The eselect dep (>=1.0.9) is for COLON_SEPARATED in eselect env update.
RDEPEND="x11-base/xorg-server
   !x11-apps/ati-drivers-extra
   >=app-admin/eselect-1.0.9
   app-admin/eselect-opengl
   amd64? ( app-emulation/emul-linux-x86-xlibs )
   acpi? (
      x11-apps/xauth
      sys-power/acpid
   )
   x11-libs/libXrandr
   >=sys-apps/portage-2.1.1-r1"

DEPEND="${RDEPEND}
   x11-proto/xf86miscproto
   x11-proto/xf86vidmodeproto
   x11-proto/inputproto"

EMULTILIB_PKG="true"

QA_EXECSTACK_x86="usr/lib/dri/fglrx_dri.so
   usr/lib/opengl/ati/lib/libGL.so.1.2
   opt/bin/amdcccle"
QA_EXECSTACK_amd64="usr/lib64/dri/fglrx_dri.so
   usr/lib32/dri/fglrx_dri.so
   usr/lib64/opengl/ati/lib/libGL.so.1.2
   usr/lib32/opengl/ati/lib/libGL.so.1.2
   opt/bin/amdcccle"
QA_TEXTRELS_x86="usr/lib/dri/fglrx_dri.so
   usr/lib/xorg/modules/drivers/fglrx_drv.so
   usr/lib/opengl/ati/lib/libGL.so.1.2
   usr/lib/xorg/modules/glesx.so
   usr/lib/xorg/modules/amdxmm.so"
QA_TEXTRELS_amd64="
   usr/lib64/opengl/ati/lib/libGL.so.1.2
   usr/lib32/opengl/ati/lib/libGL.so.1.2
   usr/lib64/dri/fglrx_dri.so
   usr/lib32/dri/fglrx_dri.so
   usr/lib32/xorg/modules/glesx.so
   usr/lib64/xorg/modules/glesx.so"

S="${WORKDIR}"

pkg_setup() {

   # Define module dir.
   MODULE_DIR="${S}/common/lib/modules/fglrx/build_mod"

   #check kernel and sets up KV_OBJ
   MODULE_NAMES="fglrx(video:${S}/common/lib/modules/fglrx/build_mod/2.6.x)"
   BUILD_TARGETS="kmod_build"
   linux-mod_pkg_setup
   BUILD_PARAMS="GCC_VER_MAJ=$(gcc-major-version) KVER=${KV_FULL} KDIR=${KV_DIR}"

   if ! kernel_is 2 6; then
      eerror "Need a 2.6 kernel to compile against!"
      die "Need a 2.6 kernel to compile against!"
   fi

   if kernel_is ge 2 6 25 && linux_chkconfig_present PREEMPT_RCU; then
      die "${P} is not compatible RCU Preemption, please disable it"
   fi

   if kernel_is ge 2 6 24 && ! linux_chkconfig_present PCI_LEGACY; then
      eerror "${P} requires support for pci_find_slot."
      die "${P} requires support for pci_find_slot."
   fi

   if ! linux_chkconfig_present MTRR; then
      ewarn "You don't have MTRR support enabled, the direct rendering will not work."
   fi

   if linux_chkconfig_builtin DRM; then
      ewarn "You have DRM support enabled builtin, the direct rendering will not work."
   fi

   if ! linux_chkconfig_present AGP && \
      ! linux_chkconfig_present PCIEPORTBUS; then
      ewarn "You need AGP and/or PCI Express support for direct rendering to work."
   fi

   if linux_chkconfig_present PARAVIRT; then
      eerror "The current ati-drivers don't compile when having"
      eerror "paravirtualization active due to GPL symbol export"
      eerror "restrictions."
      eerror "Please disable it:"
      eerror "   CONFIG_PARAVIRT=n"
      eerror "in /usr/src/linux/.config or"
      eerror "   Processor type and features -->"
      eerror "      [ ] Paravirtualization support (EXPERIMENTAL)"
      eerror "in 'menuconfig'"
      die "CONFIG_PARAVIRT enabled"
   fi

   # Only support xorg-server >=1.1
   BASE_DIR="${S}/x710"

   # This is used like $(get_libdir) for paths in ati's package.
   if use amd64 ; then
      BASE_DIR="${BASE_DIR}_64a"
      PKG_LIBDIR=lib64
      ARCH_DIR="${S}/arch/x86_64"
   else
      PKG_LIBDIR=lib
      ARCH_DIR="${S}/arch/x86"
   fi
}

src_unpack() {
   #Switching to a standard way to extract the files since otherwise no signature file
   #would be created
   local src="${DISTDIR}/${A}"
   sh "${src}" --extract "${S}"  2&>1 /dev/null

   # These are the userspace utilities that we also have source for.
   # We rebuild these later.
   rm \
      "${ARCH_DIR}"/usr/X11R6/bin/{fgl_glxgears,fglrx_xgamma} \
      "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR}/libfglrx_gamma* \
      || die "bin rm failed"

   if use debug; then
      # Enable debug mode in the Source Code.
      sed -i '/^#define DRM_DEBUG_CODE/s/0/1/' \
         "${MODULE_DIR}/firegl_public.c" \
         || die "Failed to enable debug output."
   fi

   if use acpi; then
      sed -i \
         -e "s:/var/lib/xdm/authdir/authfiles/:/var/run/xauth/:" \
         -e "s:/var/lib/gdm/:/var/gdm/:" \
         "${S}/common/etc/ati/authatieventsd.sh" \
         || die "sed failed."

      # Since "who" is in coreutils, we're using that one instead of "finger".
      sed -i -e 's:finger:who:' \
         "${S}/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh" \
         || die "Replacing 'finger' with 'who' failed."
      # Adjust paths in the script from /usr/X11R6/bin/ to /opt/bin/ and
      # add funktion to detect default state.
      epatch "${FILESDIR}"/8.476/ati-powermode-opt-path-2.patch
   fi
   
   epatch "${FILESDIR}"/fglrx_8.9_2.6.27.patch

   pushd ${MODULE_DIR} >/dev/null
   ln -s "${ARCH_DIR}"/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC$(gcc-major-version) \
      || die "symlinking precompiled core failed"

   convert_to_m 2.6.x/Makefile || die "convert_to_m failed"

   # When built with ati's make.sh it defines a bunch of macros if
   # certain .config values are set, falling back to less reliable
   # detection methods if linux/autoconf.h is not available. We
   # simply use the linux/autoconf.h settings directly, bypassing the
   # detection script.
   sed -i -e 's/__SMP__/CONFIG_SMP/' *.c *h || die "SMP sed failed"
   sed -i -e 's/ifdef MODVERSIONS/ifdef CONFIG_MODVERSIONS/' *.c *.h \
      || die "MODVERSIONS sed failed"
   popd >/dev/null

   mkdir extra || die "mkdir failed"
   cd extra
   unpack ./../common/usr/src/ati/fglrx_sample_source.tgz
   sed -i -e 's:include/extensions/extutil.h:X11/extensions/extutil.h:' \
      lib/fglrx_gamma/fglrx_gamma.c || die "include fixup failed"
   # Add a category.
   mv programs/fglrx_gamma/fglrx_xgamma.{man,1} || die "man mv failed"
   cd ..
}

src_compile() {
   linux-mod_src_compile

   einfo "Building fgl_glxgears"
   cd "${S}"/extra/fgl_glxgears
   # These extra libs/utils either have an Imakefile that does not
   # work very well without tweaking or a Makefile ignoring CFLAGS
   # and the like. We bypass those.

   # The -DUSE_GLU is needed to compile using nvidia headers
   # according to a comment in ati-drivers-extra-8.33.6.ebuild.
   "$(tc-getCC)" -o fgl_glxgears ${CFLAGS} ${LDFLAGS} -DUSE_GLU \
      -I"${S}"/common/usr/include fgl_glxgears.c \
      -lGL -lGLU -lX11 -lm || die "fgl_glxgears build failed"

   einfo "Building fglrx_gamma lib"
   cd "${S}"/extra/lib/fglrx_gamma
   "$(tc-getCC)" -shared -fpic -o libfglrx_gamma.so.1.0 ${CFLAGS} ${LDFLAGS} \
      -DXF86MISC -Wl,-soname,libfglrx_gamma.so.1.0 fglrx_gamma.c \
      -lXext || die "fglrx_gamma lib build failed"
   ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so || die "ln failed"
   ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so.1 || die "ln failed"

   einfo "Building fglrx_gamma util"
   cd "${S}"/extra/programs/fglrx_gamma
   "$(tc-getCC)" -o fglrx_xgamma ${CFLAGS} ${LDFLAGS} \
      -I../../../common/usr/X11R6/include -L../../lib/fglrx_gamma \
      fglrx_xgamma.c -lm -lfglrx_gamma -lX11 \
      || die "fglrx_gamma util build failed"

}

src_install() {
   linux-mod_src_install

   # We can do two things here, and neither of them is very nice.

   # For direct rendering libGL has to be able to load one or more
   # dri modules (files ending in _dri.so, like fglrx_dri.so).
   # Gentoo's mesa looks for these files in the location specified by
   # LIBGL_DRIVERS_PATH or LIBGL_DRIVERS_DIR, then in the hardcoded
   # location /usr/$(get_libdir)/dri. Ati's libGL does the same
   # thing, but the hardcoded location is /usr/X11R6/lib/modules/dri
   # on x86 and amd64 32bit, /usr/X11R6/lib64/modules/dri on amd64
   # 64bit. So we can either put the .so files in that (unusual,
   # compared to "normal" mesa libGL) location or set
   # LIBGL_DRIVERS_PATH. We currently do the latter. See also bug
   # 101539.

   # The problem with this approach is that LIBGL_DRIVERS_PATH
   # *overrides* the default hardcoded location, it does not extend
   # it. So if ati-drivers is merged but a non-ati libGL is selected
   # and its hardcoded path does not match our LIBGL_DRIVERS_PATH
   # (because it changed in a newer mesa or because it was compiled
   # for a different set of multilib abis than we are) stuff breaks.

   # We create one file per ABI to work with "native" multilib, see
   # below.

   echo "COLON_SEPARATED=LIBGL_DRIVERS_PATH" > "${T}/03ati-colon-sep"
   doenvd "${T}/03ati-colon-sep"

   # All libraries that we have a 32 bit and 64 bit version of on
   # amd64 are installed in src_install-libs. Everything else
   # (including libraries only available in native 64bit on amd64)
   # goes in here.

   # There used to be some code here that tried to detect running
   # under a "native multilib" portage ((precursor of)
   # http://dev.gentoo.org/~kanaka/auto-multilib/). I removed that, it
   # should just work (only doing some duplicate work). --marienz
   if has_multilib_profile; then
      local OABI=${ABI}
      for ABI in $(get_install_abis); do
         src_install-libs
      done
      ABI=${OABI}
      unset OABI
   else
      src_install-libs
   fi

   # This is sorted by the order the files occur in the source tree.

   # X modules.
   exeinto /usr/$(get_libdir)/xorg/modules/drivers
   doexe "${BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/drivers/fglrx_drv.so
   exeinto /usr/$(get_libdir)/xorg/modules/linux
   doexe "${BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/linux/libfglrxdrm.so
   exeinto /usr/$(get_libdir)/xorg/modules
   doexe "${BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/{esut.a,glesx.so,amdxmm.so}

   # Arch-specific files.
   # (s)bin.
   into /opt
   if use acpi; then
      dosbin "${ARCH_DIR}"/usr/sbin/atieventsd
   fi
   # We cleaned out the compilable stuff in src_unpack
   dobin "${ARCH_DIR}"/usr/X11R6/bin/*

   # lib.
   exeinto /usr/$(get_libdir)
   # Everything except for the libGL.so installed in src_install-libs.
   doexe $(find "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR} \
      -maxdepth 1 -type f -name '*.so*' -not -name 'libGL.so*')
   insinto /usr/$(get_libdir)
   doins $(find "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR} \
      -maxdepth 1 -type f -not -name '*.so*')

   # Common files.
   # etc.
   insinto /etc/ati
   # Everything except for the authatieventsd.sh script.
   doins common/etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default}
   if use acpi; then
      doins common/etc/ati/authatieventsd.sh
   fi

   # include.
   insinto /usr
   doins -r common/usr/include
   insinto /usr/include/X11/extensions
   doins common/usr/X11R6/include/X11/extensions/fglrx_gamma.h

   # Just the atigetsysteminfo.sh script.
   into /usr
   dosbin common/usr/sbin/*

   # data files for the control panel.
   insinto /usr/share
   doins -r common/usr/share/ati
   insinto /usr/share/pixmaps
   doins common/usr/share/icons/ccc_{large,small}.xpm
   make_desktop_entry amdcccle 'ATI Catalyst Control Center' \
      ccc_large System

   # doc.
   dohtml -r common/usr/share/doc/fglrx

   if use acpi; then
      doman common/usr/share/man/man8/atieventsd.8

      pushd common/usr/share/doc/fglrx/examples/etc/acpi >/dev/null

      exeinto /etc/acpi
      doexe ati-powermode.sh
      insinto /etc/acpi/events
      doins events/*

      popd >/dev/null
   fi

   # Done with the "source" tree. Install tools we rebuilt:
   dobin extra/fgl_glxgears/fgl_glxgears
   newdoc extra/fgl_glxgears/README README.fgl_glxgears

   dolib extra/lib/fglrx_gamma/*so*
   newdoc extra/lib/fglrx_gamma/README README.libfglrx_gamma

   dobin extra/programs/fglrx_gamma/fglrx_xgamma
   doman extra/programs/fglrx_gamma/fglrx_xgamma.1
   newdoc extra/programs/fglrx_gamma/README README.fglrx_gamma

   # Gentoo-specific stuff:
   if use acpi; then
      newinitd "${FILESDIR}"/atieventsd.init atieventsd \
         || die "Failed to install atieventsd.init.d"
      echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf
      newconfd "${T}"/atieventsd.conf atieventsd
   fi
}

src_install-libs() {
   if [[ "${ABI}" == "amd64" ]]; then
      local pkglibdir=lib64
      local MY_ARCH_DIR="${S}/arch/x86_64"
   else
      local pkglibdir=lib
      local MY_ARCH_DIR="${S}/arch/x86"
   fi
   einfo "ati tree '${pkglibdir}' -> '$(get_libdir)' on system"

   local ATI_ROOT=/usr/$(get_libdir)/opengl/ati
   # To make sure we do not miss a spot when these change.
   local libmajor=1 libminor=2
   local libver=${libmajor}.${libminor}

   # The GLX libraries
   # (yes, this really is "lib" even on amd64/multilib --marienz)
   exeinto ${ATI_ROOT}/lib
   doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/libGL.so.${libver}
   dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so.${libmajor}
   dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so

   # Same as the xorg implementation (eselect opengl does not fall
   # back to xorg-x11 if we omit this symlink, meaning no glx).
   dosym ../xorg-x11/extensions ${ATI_ROOT}/extensions

   # DRI modules, installed into the path used by recent versions of mesa.
   exeinto /usr/$(get_libdir)/dri
   doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so

   # Make up a libGL.la. Ati does not provide one, but mesa does. If
   # a (libtool-based) libfoo is built with libGL.la present a
   # reference to it is put into libfoo.la, and compiling
   # (libtool-based) things that link too libfoo.la will complain if
   # libGL.la disappears. So if we do not make up a libGL.la
   # switching between mesa and ati becomes painful.
   local revision=$(printf '%d%02d%02d' $(get_version_components))
   sed -e "s:\${libmajor}:${libmajor}:g" \
      -e "s:\${libminor}:${libminor}:g" \
      -e "s:\${libdir}:$(get_libdir):g" \
      -e "s:\${revision}:${revision}:g" \
      "${FILESDIR}"/libGL.la.in > "${D}"/${ATI_ROOT}/lib/libGL.la \
      || die "sed failed to make libGL.la"

   local envname="${T}"/04ati-dri-path
   if [[ -n ${ABI} ]]; then
      envname="${envname}-${ABI}"
   fi
   echo "LIBGL_DRIVERS_PATH=/usr/$(get_libdir)/dri" > "${envname}"
   doenvd "${envname}"
}

pkg_postinst() {
   /usr/bin/eselect opengl set --use-old ati

   elog "To switch to ATI OpenGL, run \"eselect opengl set ati\""
   elog "To change your xorg.conf you can use the bundled \"aticonfig\""
   elog
   elog "If you experience unexplained segmentation faults and kernel crashes"
   elog "with this driver and multi-threaded applications such as wine,"
   elog "set UseFastTLS in xorg.conf to either 0 or 1, but not 2."
   elog
   elog "You will have to source /etc/profile (or logout and back in) for dri"
   elog "to work, unless you previously had ati-drivers installed."

   # Workaroud screen corruption
   ewarn "If you experience screen corruption with this driver, try putting"
   ewarn '         Option "XAANoOffscreenPixmaps" "true"'
   ewarn "in the Device Section of /etc/X11/xorg.conf."

   linux-mod_pkg_postinst
}

pkg_postrm() {
   linux-mod_pkg_postrm
   /usr/bin/eselect opengl set --use-old xorg-x11
}

_________________
Only Sith deals in absolutes.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Sat Oct 04, 2008 12:10 pm    Post subject: Reply with quote

It failed to patch;/
Can you post the patch again on pastebin?
Back to top
View user's profile Send private message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Tue Oct 07, 2008 5:57 pm    Post subject: Reply with quote

mieszkoslusarczyk wrote:
It failed to patch;/
Can you post the patch again on pastebin?


Ok

http://pastebin.com/f464567f
_________________
Only Sith deals in absolutes.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Tue Oct 07, 2008 6:15 pm    Post subject: Reply with quote

I've corrected that patch, and I have no idea why this happens:
Code:
 * Applying ati-powermode-opt-path-2.patch ...                           [ ok ]
 * Applying fglrx_8.9_2.6.27.patch ...

 * Failed Patch: fglrx_8.9_2.6.27.patch !
 * ( /home/mieszko/overlay/mieszko/x11-drivers/ati-drivers/files/fglrx_8.9_2.6.27.patch )
 *
 * Include in your bugreport the contents of:
 *
 * /var/tmp/portage/x11-drivers/ati-drivers-8.522-r1/temp/fglrx_8.9_2.6.27.patch-12330.out

 *
 * ERROR: x11-drivers/ati-drivers-8.522-r1 failed.
 * Call stack:
 * ebuild.sh, line   49:  Called src_unpack
 * environment, line 3424:  Called epatch '/home/mieszko/overlay/mieszko/x11-drivers/ati-drivers/files/fglrx_8.9_2.6.27.patch'
 * environment, line 1545:  Called die
 * The specific snippet of code:
 * die "Failed Patch: ${patchname}!";
 * The die message:
 * Failed Patch: fglrx_8.9_2.6.27.patch!
 *
 * 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.522-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/x11-drivers/ati-drivers-8.522-r1/temp/environment'.
 * This ebuild is from an overlay: '/home/mieszko/overlay/mieszko/'


Code:
fglrx_8.9_2.6.27.patch-12330.out
***** fglrx_8.9_2.6.27.patch *****

==================================

PATCH COMMAND:    patch -p0 -g0 -E --no-backup-if-mismatch < /home/mieszko/overlay/mieszko/x11-drivers/ati-drivers/files/fglrx_8.9_2.6.27.patch

==================================
patch: **** Only garbage was found in the patch input.
==================================

PATCH COMMAND:    patch -p1 -g0 -E --no-backup-if-mismatch < /home/mieszko/overlay/mieszko/x11-drivers/ati-drivers/files/fglrx_8.9_2.6.27.patch

==================================
patch: **** Only garbage was found in the patch input.
==================================

PATCH COMMAND:    patch -p2 -g0 -E --no-backup-if-mismatch < /home/mieszko/overlay/mieszko/x11-drivers/ati-drivers/files/fglrx_8.9_2.6.27.patch

==================================
patch: **** Only garbage was found in the patch input.
==================================

PATCH COMMAND:    patch -p3 -g0 -E --no-backup-if-mismatch < /home/mieszko/overlay/mieszko/x11-drivers/ati-drivers/files/fglrx_8.9_2.6.27.patch

==================================
patch: **** Only garbage was found in the patch input.
==================================

PATCH COMMAND:    patch -p4 -g0 -E --no-backup-if-mismatch < /home/mieszko/overlay/mieszko/x11-drivers/ati-drivers/files/fglrx_8.9_2.6.27.patch

==================================
patch: **** Only garbage was found in the patch input.
Back to top
View user's profile Send private message
jancici
Apprentice
Apprentice


Joined: 27 Jan 2004
Posts: 284
Location: Slovakia

PostPosted: Fri Oct 10, 2008 8:18 pm    Post subject: Reply with quote

did you used those last files ?
Code:
http://data.radekdvorak.eu/private/ati-drivers/ati-drivers-8.532.ebuild
http://data.radekdvorak.eu/private/ati-drivers/fglrx_8.9_2.6.27.patch3


those are working for me, problem is that I did replace ebuil so after sync I will lost those file, so I need to overwrite them again ...
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Fri Oct 10, 2008 8:47 pm    Post subject: Reply with quote

These files were added AFTER my last post.
They work great.
Thank you Non_E ;)

jancici wrote:
those are working for me, problem is that I did replace ebuil so after sync I will lost those file, so I need to overwrite them again ...

No, if you place them in your local overlay, and add it to PORTDIR_OVERLAY in /etc/make.conf
Back to top
View user's profile Send private message
Non_E
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 160
Location: Czech Republic

PostPosted: Sat Oct 11, 2008 9:17 am    Post subject: Reply with quote

With pleasure. Thanks for your feedback :-)
_________________
Only Sith deals in absolutes.
Back to top
View user's profile Send private message
mieszkoslusarczyk
Tux's lil' helper
Tux's lil' helper


Joined: 16 Jul 2008
Posts: 92
Location: Kraków/Poland

PostPosted: Sat Oct 11, 2008 9:20 am    Post subject: Reply with quote

Maybe you should tell about it nad give ebuilds to guys who maintain zen-overlay? ;)
====EDIT
Looks like it's in zen-overlay now ;)
====EDIT
x11-drivers/ati-drivers-8.542 from portage compiles with 2.6.27 kernel. Thanks for your help;)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum