On Tue, 19 Jun 2007, Alexander E. Patrakov wrote:

> Alberto Hernando wrote:
> 
> > I'm trying to install the propietary ati drivers with x.org-7.2 to get 
> > tv-out 
> > (GATOS doens't work here). Has anyone been able to do it?
> 
> The proprietary fglrx driver requires libstdc++.so.5. To get this library, 
> install gcc-3.3, as the book says. The ATI site says that fglrx-8.37.6 
> supports Xorg-7.2, but I cannot verify it, because my video card is too old 
> and no longer supported.
> 
> Also, there is an issue with DRI driver directory in the book: everyone else 
> has /usr/lib/dri, and only BLFS uses /usr/lib/X11/modules/dri (and the path 
> is different in Mesa-Lib and Xorg!). I don't know for sure whether this is 
> relevant for the users of fglrx.
> 
> -- 
> Alexander E. Patrakov
> 
> -- 
> http://linuxfromscratch.org/mailman/listinfo/blfs-support
> FAQ: http://www.linuxfromscratch.org/blfs/faq.html
> Unsubscribe: See the above information page


I spent several days tracing through the installer and the replicated its
behavior.

Here is a script and patch that I use for a manual install of the ati closed
source X drivers.  Please note that I use CLFS x86_64 multi-lib, xorg 7.1
installed under /usr.  If you have a pure LFS 32 bit system you will need to
adjust just about all of the source and destination targets, and DO NOT use the
patch.

While this was tested using version 8.36.5 from ati, nothing in the package
layout has really changed between it and the current version.

Also if you are using the current rc kernel then there is a module build error
( with 64bit that I know of ) that is fixed by simply commenting out the
offending include statement.

-- 
Steve Jones
[EMAIL PROTECTED]
#! /bin/bash

# ati closed source X driver manual install by Steve Jones.

# NOTE: these instructions are for a CLFS x86 multilib install with xorg 7.1
# installed under /usr.

# Build Mesa, build xorg with Mesa and without aiglx!

./ati-driver-installer-8.36.5-x86.x86_64.run --extract ati
cd ati

# If your kernel modules are not under /lib64/modules then adjust everything
# including this patch to where they are.  /lib/modules users do not need the
# patch but the config file must be changed.
patch -Np1 -i \
        ../ati-driver-installer-8.36.5-x86.x86_64-lib64-kernel-modules-1.patch

# backup original libGL's, this is what the installer names them!
mv -v /usr/lib/libGL.so.1.2 /usr/lib/FGL.renamed.libGL.so.1.2
mv -v /usr/lib64/libGL.so.1.2 /usr/lib64/FGL.renamed.libGL.so.1.2

# Only make dirs that are needed!
mkdir -vp /lib64/modules/fglrx/build_mod
#mkdir -vp /opt/kde3/share/applnk
mkdir -vp /usr/share/{doc/ati,ati/amdcccle}
#mkdir -vp /usr/share/{applnk,doc/ati,gnome/apps,ati/amdcccle}
mkdir -vp /srv/src/ati
mkdir -vp /etc/ati

# Copy files from installer tree to final locations

# NOTE: comments starting with `###' show the coresponding
# /etc/ati/inst_path_default variable and the value used in this install.

### ATI_XLIB_64=/usr/lib64
cp -vR arch/x86_64/usr/X11R6/lib64/*.* /usr/lib64
### ATI_3D_DRV_64=/usr/lib64/xorg/modules/dri
cp -vR arch/x86_64/usr/X11R6/lib64/modules/dri/*.* /usr/lib64/xorg/modules/dri

### ATI_XLIB_32=/usr/lib
cp -vR arch/x86_64/usr/X11R6/lib/*.* /usr/lib
### ATI_3D_DRV_32=/usr/lib/xorg/modules/dri
cp -vR arch/x86_64/usr/X11R6/lib/modules/dri/*.* /usr/lib/xorg/modules/dri
# ATI_X_BIN=/usr/bin
cp -vR arch/x86_64/usr/X11R6/bin/* /usr/bin
# ATI_SBIN=/usr/sbin
cp -vR arch/x86_64/usr/sbin/* /usr/sbin
### ATI_KERN_MOD=/lib64/modules/fglrx
cp -vR arch/x86_64/lib/modules/fglrx/build_mod/*.* \
        /lib64/modules/fglrx/build_mod 

# ATI_2D_DRV=/usr/lib64/xorg/modules/drivers
cp -vR x710_64a/usr/X11R6/lib64/modules/drivers/*.* \
        /usr/lib64/xorg/modules/drivers
# ATI_X_MODULE=/usr/lib64/xorg/modules
cp -vR x710_64a/usr/X11R6/lib64/modules/*.* /usr/lib64/xorg/modules
# ATI_DRM_LIB=/usr/lib64/xorg/modules/linux
cp -vR x710_64a/usr/X11R6/lib64/modules/linux/*.* /usr/lib64/xorg/modules/linux

# ATI_CONFIG=/etc/ati
cp -vR common/etc/ati/* /etc/ati
### ATI_KERN_MOD=/lib64/modules/fglrx
cp -vR common/lib/modules/fglrx/* /lib64/modules/fglrx
# ATI_CP_KDE3_LNK=/opt/kde3/share/applnk
#cp -vR common/opt/kde3/share/applnk/*.* /opt/kde3/share/applnk

# ATI_GL_INCLUDE=/usr/include/GL
cp -vR common/usr/include/GL/*.* /usr/include/GL
# ATI_CP_KDE_LNK=/usr/share/applnk
#cp -vR common/usr/share/applnk/*.* /usr/share/applnk
# ATI_CP_I18N=/usr/share/ati/amdcccle
cp -vR common/usr/share/ati/amdcccle/*.qm /usr/share/ati/amdcccle
# ATI_DOC=/usr/share/doc/ati
cp -vR common/usr/share/doc/fglrx/* /usr/share/doc/ati
# ATI_CP_GNOME_LNK=/usr/share/gnome/apps
#cp -vR common/usr/share/gnome/apps/*.* /usr/share/gnome/apps
# ATI_ICON=/usr/share/icons
cp -vR common/usr/share/icons/*.* /usr/share/icons
# ATI_MAN=/usr/share/man
cp -vR common/usr/share/man/* /usr/share/man
### ATI_SRC=/srv/src/ati
cp -vR common/usr/src/ati/*.* /srv/src/ati
# ATI_X11_INCLUDE=/usr/include/X11/extensions
cp -vR common/usr/X11R6/include/X11/extensions/*.* /usr/include/X11/extensions

# fix some file permissions
chmod -v 755 /lib64/modules/fglrx/make_install.sh
chmod -v 755 /lib64/modules/fglrx/build_mod/make.sh
chmod -v 755 /etc/ati/authatieventsd.sh

# create some symlinks
# Since we didn't touch the symlinks to libGL.so.1.2 they should point back to
# the new ones.
ln -fsv libGL.so.1.2 /usr/lib/libGL.so.1
ln -fsv libGL.so.1.2 /usr/lib/libGL.so
ln -fsv libGL.so.1.2 /usr/lib64/libGL.so.1
ln -fsv libGL.so.1.2 /usr/lib64/libGL.so
ln -fsv libfglrx_dm.so.1.0 /usr/lib64/libfglrx_dm.so.1
ln -fsv libfglrx_dm.so.1.0 /usr/lib64/libfglrx_dm.so
ln -fsv libfglrx_gamma.so.1.0 /usr/lib64/libfglrx_gamma.so.1
ln -fsv libfglrx_gamma.so.1.0 /usr/lib64/libfglrx_gamma.so
ln -fsv libfglrx_pp.so.1.0 /usr/lib64/libfglrx_pp.so.1
ln -fsv libfglrx_pp.so.1.0 /usr/lib64/libfglrx_pp.so
ln -fsv libfglrx_tvout.so.1.0 /usr/lib64/libfglrx_tvout.so.1
ln -fsv libfglrx_tvout.so.1.0 /usr/lib64/libfglrx_tvout.so

# Create some configuration files that the installer useses ( not that we do
# but this should look complete)
TIMESTAMP=`date`
    cat - > /etc/ati/inst_path_default << INST_PATH_DEFAULT
# /etc/ati/inst_path_default
#
# Created ${TIMESTAMP} with the following configuration:
#
# Driver version: 8.36.5
# Default policy
# Policy version: default:v2:x86_64:lib:x720_64a:none:2.6.20.2-jet-1"

# X_VERSION and _ARCH set by check.sh
       X_VERSION=x720_64a
           _ARCH=x86_64
     ATI_XLIB_32=/usr/lib
     ATI_XLIB_64=/usr/lib64
   ATI_3D_DRV_32=/usr/lib/xorg/modules/dri
   ATI_3D_DRV_64=/usr/lib64/xorg/modules/dri
        ATI_XLIB=/usr/lib64/xorg
       ATI_X_BIN=/usr/bin
        ATI_SBIN=/usr/sbin
    ATI_KERN_MOD=/lib64/modules/fglrx
      ATI_2D_DRV=/usr/lib64/xorg/modules/drivers
    ATI_X_MODULE=/usr/lib64/xorg/modules
     ATI_DRM_LIB=/usr/lib64/xorg/modules/linux
 ATI_CP_KDE3_LNK=/opt/kde3/share/applnk
  ATI_GL_INCLUDE=/usr/include/GL
  ATI_CP_KDE_LNK=/usr/share/applnk
         ATI_DOC=/usr/share/doc/ati
ATI_CP_GNOME_LNK=/usr/share/gnome/apps
        ATI_ICON=/usr/share/icons
         ATI_MAN=/usr/share/man
         ATI_SRC=/srv/src/ati
 ATI_X11_INCLUDE=/usr/include/X11/extensions
      ATI_CP_BIN=/usr/bin
     ATI_CP_I18N=/usr/share/ati/amdcccle
   ATI_KERN_INST=/lib/modules/$(uname -r)/kernel/drivers/char/drm
         ATI_LOG=/usr/share/ati
      ATI_CONFIG=/etc/ati
      ATI_UNINST=/usr/share/ati

INST_PATH_DEFAULT

                cat - > /etc/ati/inst_path_override << INST_PATH_OVERRIDE
# /etc/ati/inst_path_override
#
# Created ${TIMESTAMP} with the following configuration:
#
# Driver version: 8.36.5
# No override policy used because no distributions matched the current distro

INST_PATH_OVERRIDE

# build the kernel module

# manual build of kernel module.

# If SMP then use the following define.
#def_smp=-D__SMP__

# If kernel module versioning is on then add the following define
#def_modversions="-DMODVERSIONS"

# If there is a kernelsym change_page_attr then the following should be set to 1
#PAGE_ATTR_FIX=0

# This the the base make command that the above options apply to.
#make MODFLAGS="-DMODULE  -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX \
#       -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=${PAGE_ATTR_FIX}  ${def_smp} \
#       ${def_modversions}" PAGE_ATTR_FIX=${PAGE_ATTR_FIX}

# Streamlined build of module.

pushd /lib64/modules/fglrx/build_mod/2.6.x
make MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX \
        -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=0 -D__SMP__" PAGE_ATTR_FIX=0
strip -g fglrx.ko
mkdir -vp /lib64/modules/$(uname -r)/kernel/drivers/char/drm
cp -v fglrx.ko /lib64/modules/$(uname -r)/kernel/drivers/char/drm/fglrx.ko
depmod
popd

# This replicates what happens in the automagic module build.
## make.sh
#
#pushd /lib64/modules/fglrx/build_mod/2.6.x
#
#make MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX
#       -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=0 -D__SMP__" PAGE_ATTR_FIX=0
#strip -g fglrx.ko
#cd ..
#ln -vf 2.6.x/fglrx.ko
#cp -vf fglrx.ko ../fglrx.$(uname -r).ko
#
## make_install.sh
#cd ..
#mkdir -pv /lib64/modules/$(uname -r)/kernel/drivers/char/drm
#cp -v fglrx.$(uname -r).ko  \
#       /lib64/modules/$(uname -r)/kernel/drivers/char/drm/fglrx.ko
#depmod
#popd

# The auto magic building for the running kernel should wok withe the applied
# patch.  The file /etc/ati/inst_path_default must exist and match the /lib64
# values for the make_install.sh to work.
# pushd /lib64/modules/fglrx/build_mod
# make.sh
# cd ..
# make_install.sh
# popd

# To build for an installed but not running kernel, set $KVER=$(uname -r of the
# kernel), for a kernel built but not installed use $KDIR pointing to the kernel
# source.
#
#pushd /lib64/modules/fglrx/build_mod/2.6.x
#
#kver="< Kernel version e.g. uname -r >"
#make KVER=${kdir} MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX \
#       -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=0 -D__SMP__" PAGE_ATTR_FIX=0
#
##kdir="< Path to kernel source >"
##make KVER=${kdir} MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX \
##      -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=0 -D__SMP__" PAGE_ATTR_FIX=0
#
#strip -g fglrx.ko
#mkdir -vp /lib64/modules/${kver}/kernel/drivers/char/drm
#cp -v fglrx.ko /lib64/modules/${kver}/kernel/drivers/char/drm/fglrx.ko
#depmod
#popd

# vim: ft=sh
Submitted By: Steve Jones <sljones3 AT arkansas DOT net>
Date: 2007-05-12
Initial Package Version: 8.36.5-x86.x86_64
Upstream Status: Not submitted - CLFS Specific - Closed Source
Origin: Steve Jones
Description: Fixes automagic kernel module build when modules are in
	     /lib64/modules, and a make clean issue on manual builds.

diff -Nuar orig/common/lib/modules/fglrx/build_mod/2.6.x/Makefile fixed/common/lib/modules/fglrx/build_mod/2.6.x/Makefile
--- orig/common/lib/modules/fglrx/build_mod/2.6.x/Makefile	2007-04-17 10:04:29.000000000 -0500
+++ fixed/common/lib/modules/fglrx/build_mod/2.6.x/Makefile	2007-05-12 16:28:24.000000000 -0500
@@ -29,7 +29,7 @@
 # KVER            = 2.6.0-0.test1.1.26custom
 
 ifeq (1,1)
-KDIR            = /lib/modules/$(KVER)/build
+KDIR            = /lib64/modules/$(KVER)/build
 else
 KDIR            = /usr/src/linux-$(KVER)
 endif
@@ -54,7 +54,7 @@
 # distclean:: clean
 
 clean::
-	rm -f *.c *.h *.o *.ko *.GCC* .??*
+	rm -rf *.c *.h *.o *.ko *.GCC* .??*
 
 endif
 
diff -Nuar orig/common/lib/modules/fglrx/build_mod/make.sh fixed/common/lib/modules/fglrx/build_mod/make.sh
--- orig/common/lib/modules/fglrx/build_mod/make.sh	2007-04-17 10:04:29.000000000 -0500
+++ fixed/common/lib/modules/fglrx/build_mod/make.sh	2007-05-12 16:18:55.000000000 -0500
@@ -102,7 +102,7 @@
 # xfree and system locations                                                          
 XF_ROOT=/usr/X11R6                                                                    
 XF_BIN=$XF_ROOT/bin
-OS_MOD=/lib/modules
+OS_MOD=/lib64/modules
 
 
 # ==============================================================
@@ -169,10 +169,10 @@
 
 # in /lib/modules/<kernel-version> there is a symlink for latest kernel
 # which calls "build" and points to the directory where modules were built.
-if [ -d /lib/modules/${uname_r}/build/include ];
+if [ -d /lib64/modules/${uname_r}/build/include ];
 then
   # just comment this line out if you already set an alternative location
-  linuxincludes=/lib/modules/${uname_r}/build/include
+  linuxincludes=/lib64/modules/${uname_r}/build/include
 fi
 
 else
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to